diff --git a/CodeVirtualizer/Main.cpp b/CodeVirtualizer/Main.cpp index 8debe74..ecdee29 100644 --- a/CodeVirtualizer/Main.cpp +++ b/CodeVirtualizer/Main.cpp @@ -27,7 +27,9 @@ PVOID MakeExecutableBuffer(PVOID Buffer, ULONG 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.open("C:\\Users\\James\\Desktop\\fantern\\Test.m", std::ios::binary | std::ios::out); + //fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); fout.write((PCHAR)Buffer, BufferSize); fout.close(); } @@ -91,22 +93,27 @@ int main() XedTablesInit(); srand(time(NULL)); + system("pause"); NATIVE_CODE_BLOCK RetNumBlock; NcDisassemble(&RetNumBlock, RetNumCode, sizeof(RetNumCode)); OBFUSCATOR Obf; Obf.Flags = 0; Obf.MinSizeForOpaqueBranch = 1; - Obf.InstructionMutateChance = 0; + Obf.InstructionMutateChance = 100; Obf.OpaqueBranchChance = 100; Obf.MinDepthForRandomOpaqueBranch = 0; Obf.GlobalBlock = &RetNumBlock; Obf.BlockDivisionFactor = 2; - Obf.InstructionMutateChance = 100; + Obf.MaxDepth = 800000; ObfObfuscate1(&Obf, &RetNumBlock); + Obf.MinSizeForOpaqueBranch = 5; + Obf.InstructionMutateChance = 0; + Obf.OpaqueBranchChance = 100; + ObfObfuscate1(&Obf, &RetNumBlock, 0); Obf.MinSizeForOpaqueBranch = 50; - Obf.InstructionMutateChance = 50; - ObfObfuscate1(&Obf, &RetNumBlock); + ObfObfuscate1(&Obf, &RetNumBlock, 0); + printf("Finished second pas.\n"); //Obf.MinSizeForOpaqueBranch = 200; @@ -114,6 +121,7 @@ int main() //Obf.MinSizeForOpaqueBranch = 30; //ObfObfuscate(&Obf, &RetNumBlock); + NcDebugPrint(&RetNumBlock); ULONG AsmSize; PVOID Asm = NcAssemble(&RetNumBlock, &AsmSize); @@ -129,6 +137,7 @@ int main() PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); typedef ULONG64(*FnRetNum)(ULONG Num); printf("\n\nSize: %u Obfuscated: %llu Original: %llu\n\n", NcCountInstructions(&RetNumBlock), ((FnRetNum)Exec)(1776), RetNum(1776)); + NcDeleteBlock(&RetNumBlock); system("pause"); diff --git a/CodeVirtualizer/NativeCode.cpp b/CodeVirtualizer/NativeCode.cpp index 38c67b3..d5b7781 100644 --- a/CodeVirtualizer/NativeCode.cpp +++ b/CodeVirtualizer/NativeCode.cpp @@ -121,13 +121,15 @@ VOID NcUnlink(PNATIVE_CODE_LINK Link) } } -ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block) +ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block, BOOL CountCombinedAsOne) { ULONG InstructionCount = 0; for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) { if (T->Flags & CODE_FLAG_IS_LABEL) continue; + if (CountCombinedAsOne && T->Next && (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) && !(T->Next->Flags & CODE_FLAG_DO_NOT_DIVIDE)) + continue; ++InstructionCount; } return InstructionCount; diff --git a/CodeVirtualizer/NativeCode.h b/CodeVirtualizer/NativeCode.h index 6f2998c..62c6866 100644 --- a/CodeVirtualizer/NativeCode.h +++ b/CodeVirtualizer/NativeCode.h @@ -41,7 +41,7 @@ VOID NcInsertLinkBefore(PNATIVE_CODE_LINK Link1, PNATIVE_CODE_LINK Link2); VOID NcUnlink(PNATIVE_CODE_LINK Link); -ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block); +ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block, BOOL CountCombinedAsOne = FALSE); ULONG NcCalcBlockSizeInBytes(PNATIVE_CODE_BLOCK Block); diff --git a/CodeVirtualizer/Obfuscator.cpp b/CodeVirtualizer/Obfuscator.cpp index 52357f8..87f88f6 100644 --- a/CodeVirtualizer/Obfuscator.cpp +++ b/CodeVirtualizer/Obfuscator.cpp @@ -5,7 +5,11 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) { - ULONG InstructionCount = NcCountInstructions(Block); + if (Depth > Obf->MaxDepth) + return; + + ULONG InstructionCount = NcCountInstructions(Block, FALSE); + printf("Depth: %u, InstCount: %u\n", Depth, InstructionCount); if (InstructionCount <= Obf->MinSizeForOpaqueBranch) { for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) @@ -23,6 +27,13 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) PNATIVE_CODE_BLOCK PreOp = JitEmitPreRipMov(T); PNATIVE_CODE_BLOCK PostOp = JitEmitPostRipMov(T); + if (T->Prev) + T->Prev->Next = PreOp->Start; + PreOp->End->Next = T; + + + + NcInsertBlockBefore(T, PreOp, FALSE); NcInsertBlockAfter(T, PostOp, FALSE); @@ -31,6 +42,9 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) if (Block->End == T) Block->End = PostOp->End; + delete PreOp; + delete PostOp; + //for (ULONG i = 0; i < T->RawDataSize; i++) // T->RawData[i] = (UCHAR)(rand() % 255); @@ -43,7 +57,8 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) } else { - ULONG TargetCount = max(Obf->MinSizeForOpaqueBranch, InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); + //ULONG TargetCount = max(Obf->MinSizeForOpaqueBranch, InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); + ULONG TargetCount = (InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); ULONG CurrentCount = 0; PNATIVE_CODE_LINK NewBlockStart = Block->Start; for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) @@ -62,9 +77,9 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) continue; } - if (CurrentCount == TargetCount) + if (CurrentCount >= TargetCount) { - if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance) + if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) { NATIVE_CODE_BLOCK NotTaken, Taken; ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); @@ -89,15 +104,27 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) } T = T->Next; } - if (NewBlockStart) + /*if (NewBlockStart && CurrentCount >= Obf->MinSizeForOpaqueBranch) { - NATIVE_CODE_BLOCK NotTaken, Taken; - ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); - ObfObfuscate1(Obf, &NotTaken, Depth + 1); - ObfObfuscate1(Obf, &Taken, Depth + 1); - ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); - ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); - } + if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) + { + NATIVE_CODE_BLOCK NotTaken, Taken; + ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); + ObfObfuscate1(Obf, &NotTaken, Depth + 1); + ObfObfuscate1(Obf, &Taken, Depth + 1); + ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); + ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); + } + else + { + NATIVE_CODE_BLOCK TempBlock; + if (NcDeepCopyPartialBlock(NewBlockStart, Block->End, &TempBlock)) + { + ObfObfuscate1(Obf, &TempBlock, Depth + 1); + ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &TempBlock); + } + } + }*/ } diff --git a/CodeVirtualizer/Obfuscator.h b/CodeVirtualizer/Obfuscator.h index 0ef37b6..c9dce6c 100644 --- a/CodeVirtualizer/Obfuscator.h +++ b/CodeVirtualizer/Obfuscator.h @@ -23,6 +23,7 @@ typedef struct _OBFUSCATOR ULONG Flags; PNATIVE_CODE_BLOCK GlobalBlock; + ULONG MaxDepth; }OBFUSCATOR, *POBFUSCATOR; BOOL ObfJitInst(); diff --git a/CodeVirtualizer/x64/Debug/Assembly.lst b/CodeVirtualizer/x64/Debug/Assembly.lst index 535cd68..9bf8683 100644 --- a/CodeVirtualizer/x64/Debug/Assembly.lst +++ b/CodeVirtualizer/x64/Debug/Assembly.lst @@ -1,4 +1,4 @@ -Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/18/21 14:21:08 +Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/23/21 14:21:58 Assembly.asm Page 1 - 1 @@ -23,7 +23,7 @@ Assembly.asm Page 1 - 1 0000001E NextFunction ENDP END - Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/18/21 14:21:08 + Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/23/21 14:21:58 Assembly.asm Symbols 2 - 1 diff --git a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe index fce1cf4..dfc4423 100644 --- a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe +++ b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe @@ -1,7 +1,11 @@  - C:\$Fanta\code-virtualizer\x64\Debug\CodeVirtualizer.exe - - - + + + C:\@\Work\code-virtualizer\x64\Debug\CodeVirtualizer.exe + + + + + \ No newline at end of file diff --git a/CodeVirtualizer/x64/Debug/Jit.cod b/CodeVirtualizer/x64/Debug/Jit.cod index d4772ff..3d93a55 100644 --- a/CodeVirtualizer/x64/Debug/Jit.cod +++ b/CodeVirtualizer/x64/Debug/Jit.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,58 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__0A045E7B_NativeCode@h DB 01H +__8546B33E_Jit@cpp DB 01H +__092B7E84_vector DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -91,6 +93,8 @@ PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_d PUBLIC wmemcpy PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all +PUBLIC ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked +PUBLIC ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr @@ -132,13 +136,13 @@ PUBLIC __JustMyCode_Default PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -194,133 +198,145 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+476 + DD imagerel $LN21+453 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 - DD imagerel $LN7+233 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+66 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 + DD imagerel $LN6+123 + DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+151 + DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+202 + DD imagerel $LN3+203 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+280 + DD imagerel $LN4+257 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+56 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+278 + DD imagerel $LN6+280 DD imagerel $unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -332,7 +348,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+278 + DD imagerel $LN6+280 DD imagerel $unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -344,49 +360,49 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD imagerel $LN11 - DD imagerel $LN11+399 + DD imagerel $LN11+376 DD imagerel $unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD imagerel $LN9 - DD imagerel $LN9+308 + DD imagerel $LN9+285 DD imagerel $unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN5 - DD imagerel $LN5+234 + DD imagerel $LN5+211 DD imagerel $unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN9 - DD imagerel $LN9+329 + DD imagerel $LN9+331 DD imagerel $unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN7 - DD imagerel $LN7+331 + DD imagerel $LN7+308 DD imagerel $unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3 - DD imagerel $LN3+69 + DD imagerel $LN3+46 DD imagerel $unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3 - DD imagerel $LN3+69 + DD imagerel $LN3+46 DD imagerel $unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 - DD imagerel $LN25+1056 + DD imagerel $LN25+1033 DD imagerel $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -404,7 +420,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 - DD imagerel $LN25+1241 + DD imagerel $LN25+1243 DD imagerel $unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -422,7 +438,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD imagerel $LN29 - DD imagerel $LN29+1132 + DD imagerel $LN29+1109 DD imagerel $unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z pdata ENDS ; COMDAT pdata @@ -434,7 +450,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD imagerel $LN29 - DD imagerel $LN29+1266 + DD imagerel $LN29+1243 DD imagerel $unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z pdata ENDS ; COMDAT pdata @@ -446,61 +462,61 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+197 + DD imagerel $LN8+175 DD imagerel $unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+197 + DD imagerel $LN8+175 DD imagerel $unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+197 + DD imagerel $LN8+175 DD imagerel $unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+84 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+65 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+121 + DD imagerel $LN4+98 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+97 + DD imagerel $LN3+74 DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -521,21 +537,21 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ CONST SEGMENT @@ -554,9 +570,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -569,16 +585,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H + DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -590,11 +606,11 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H @@ -612,7 +628,7 @@ $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@Y xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -632,7 +648,7 @@ $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -641,105 +657,58 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H - DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H - DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H - DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H - DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H +$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H +$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H +$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H @@ -751,7 +720,7 @@ xdata SEGMENT $ip2state$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H DB 00H DB 00H - DB 0a9H, 02H + DB 'M', 02H DB 02H DB 'p' DB 00H @@ -770,13 +739,18 @@ $cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_L xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H +$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025052211H DD 011d2322H DD 070160059H DD 05015H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H @@ -788,7 +762,7 @@ xdata SEGMENT $ip2state$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H DB 00H DB 00H - DB 0a9H, 02H + DB 'M', 02H DB 02H DB 'p' DB 00H @@ -807,13 +781,28 @@ $cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LI xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H +$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025052211H DD 011d2322H DD 070160059H DD 05015H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03aH + DW 04c2H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H @@ -831,7 +820,7 @@ xdata SEGMENT $ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH DB 00H DB 00H - DB 0c1H, 02H + DB 0c9H, 02H DB 02H DB 'p' DB 00H @@ -856,7 +845,7 @@ $cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025053f19H +$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025054119H DD 01122317H DD 0700b007fH DD 0500aH @@ -885,6 +874,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H @@ -902,7 +901,7 @@ xdata SEGMENT $ip2state$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH DB 00H DB 00H - DB '}', 02H + DB '!', 02H DB 02H DB 'p' DB 00H @@ -927,7 +926,7 @@ $cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025052e11H +$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025051711H DD 01122317H DD 0700b007dH DD 0500aH @@ -936,28 +935,33 @@ $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H +$unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H +$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H +$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H DD 01132318H DD 0700c002dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 0132H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053b19H +$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053d19H DD 010e2313H DD 070070031H DD 05006H @@ -984,25 +988,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H +$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025052f01H +$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025052e01H +$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025051701H DD 01122317H DD 0700b001fH DD 0500aH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 0ffH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -1014,7 +1028,7 @@ xdata SEGMENT $ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0b8H + DB 0bcH DB 02H DB 09eH DB 00H @@ -1033,7 +1047,7 @@ $cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H +$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H DD 010e3313H DD 070070031H DD 05006H @@ -1060,6 +1074,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 0ffH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -1071,7 +1095,7 @@ xdata SEGMENT $ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0b8H + DB 0bcH DB 02H DB 09eH DB 00H @@ -1090,7 +1114,7 @@ $cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H +$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H DD 010e3313H DD 070070031H DD 05006H @@ -1119,57 +1143,31 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025052e01H +$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -1184,7 +1182,7 @@ $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H DD 010e2313H DD 07007002fH DD 05006H @@ -1193,31 +1191,24 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 0b2H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ - DD 013bH + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -1236,49 +1227,54 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -1321,137 +1317,92 @@ CONST SEGMENT DD 00H DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H +$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H DD 010e2313H - DD 070070025H + DD 070070021H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ - DD 011bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked DD 04H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked DD 00H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H - DD 01133318H - DD 0700c002fH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$wmemcpy DD 025053401H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H + DD 010e2313H + DD 070070021H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H + DD 01133318H + DD 0700c002fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -1461,15 +1412,15 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z _TEXT SEGMENT -__formal$ = 224 +_Al$ = 224 _Ptr$ = 232 _Count$ = 240 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT -; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { +; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1480,44 +1431,46 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 688 : // no overflow check on the following multiply; we assume _Allocate did that check -; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00040 48 6b 85 f0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 694 : // no overflow check on the following multiply; we assume _Allocate did that check +; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 696 : if (_STD is_constant_evaluated()) { +; 697 : _Al.deallocate(_Ptr, _Count); +; 698 : } else +; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 700 : { +; 701 : (void) _Al; +; 702 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00029 48 6b 85 f0 00 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00048 48 8b d0 mov rdx, rax - 0004b 48 8b 8d e8 00 + 00031 48 8b d0 mov rdx, rax + 00034 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 690 : } +; 703 : } +; 704 : } - 00057 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT -; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1527,52 +1480,46 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // deallocate a plain pointer using an allocator -; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; -; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 0003b 41 b8 01 00 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 986 : // deallocate a plain pointer using an allocator +; 987 : using _Alloc_traits = allocator_traits<_Alloc>; +; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 00024 41 b8 01 00 00 00 mov r8d, 1 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate - 00054 90 npad 1 + 00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 0003d 90 npad 1 -; 1003 : } else { -; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 1006 : } -; 1007 : } +; 990 : } else { +; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 993 : } +; 994 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z _TEXT SEGMENT _Ptr$ = 224 _Bytes$ = 232 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1582,57 +1529,57 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 215 : #if defined(_M_IX86) || defined(_M_X64) -; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0003b 48 81 bd e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 254 : if (_STD is_constant_evaluated()) { +; 255 : ::operator delete(_Ptr); +; 256 : } else +; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 258 : { +; 259 : #if defined(_M_IX86) || defined(_M_X64) +; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00024 48 81 bd e8 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00046 72 13 jb SHORT $LN2@Deallocate + 0002f 72 13 jb SHORT $LN2@Deallocate -; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00048 48 8d 95 e8 00 + 00031 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 0004f 48 8d 8d e0 00 + 00038 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 218 : } -; 219 : #endif // defined(_M_IX86) || defined(_M_X64) -; 220 : -; 221 : ::operator delete(_Ptr, _Bytes); +; 262 : } +; 263 : #endif // defined(_M_IX86) || defined(_M_X64) +; 264 : ::operator delete(_Ptr, _Bytes); - 0005b 48 8b 95 e8 00 + 00044 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 00062 48 8b 8d e0 00 + 0004b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 0006e 90 npad 1 + 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00057 90 npad 1 -; 222 : } +; 265 : } +; 266 : } - 0006f 48 8d a5 c8 00 + 00058 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _First$ = 224 @@ -1640,7 +1587,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1651,42 +1598,35 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - -; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 957 : using _Ty = typename _Alloc::value_type; -; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 959 : for (; _First != _Last; ++_First) { -; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 961 : } -; 962 : } -; 963 : } - - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 947 : using _Ty = typename _Alloc::value_type; +; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 949 : for (; _First != _Last; ++_First) { +; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 951 : } +; 952 : } +; 953 : } + + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT -; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1696,39 +1636,32 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1028 : using _Ty = typename _Alloc::value_type; -; 1029 : _Ptr->~_Ty(); -; 1030 : _Deallocate_plain(_Al, _Ptr); - - 0003b 48 8b 95 e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1000 : using _Ty = typename _Alloc::value_type; +; 1001 : _Ptr->~_Ty(); +; 1002 : _Deallocate_plain(_Al, _Ptr); + + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > - 0004e 90 npad 1 + 00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > -; 1031 : } +; 1003 : } - 0004f 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility ; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT _Old_val$ = 8 @@ -1736,7 +1669,7 @@ _Val$ = 256 _New_val$ = 264 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1746,55 +1679,49 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 598 : // assign _New_val to _Val, return previous _Val -; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 615 : // assign _New_val to _Val, return previous _Val +; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 0003b 48 8b 85 00 01 + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 600 : _Val = static_cast<_Other&&>(_New_val); +; 617 : _Val = static_cast<_Other&&>(_New_val); - 00049 48 8b 85 00 01 + 00032 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00050 48 8b 8d 08 01 + 00039 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00057 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005a 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 8b 09 mov rcx, QWORD PTR [rcx] + 00043 48 89 08 mov QWORD PTR [rax], rcx -; 601 : return _Old_val; +; 618 : return _Old_val; - 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 602 : } +; 619 : } - 00061 48 8d a5 e8 00 + 0004a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1804,26 +1731,20 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1845,83 +1766,77 @@ $LN8: 00015 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8b fc mov rdi, rsp - 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00037 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 287 : switch (OpType) - 00043 8b 85 f0 00 00 + 0002d 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00049 89 85 c0 00 00 + 00033 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 0004f 83 bd c0 00 00 + 00039 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00056 74 14 je SHORT $LN4@JitiEmitWr - 00058 83 bd c0 00 00 + 00040 74 14 je SHORT $LN4@JitiEmitWr + 00042 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 0005f 74 26 je SHORT $LN5@JitiEmitWr - 00061 83 bd c0 00 00 + 00049 74 26 je SHORT $LN5@JitiEmitWr + 0004b 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00068 74 38 je SHORT $LN6@JitiEmitWr - 0006a eb 4f jmp SHORT $LN2@JitiEmitWr + 00052 74 38 je SHORT $LN6@JitiEmitWr + 00054 eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 288 : { ; 289 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorB(Block, RipDelta, Value); - 0006c 44 8b 85 08 01 + 00056 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00073 8b 95 00 01 00 + 0005d 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00079 48 8b 8d f8 00 + 00063 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB - 00085 eb 34 jmp SHORT $LN1@JitiEmitWr + 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB + 0006f eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 290 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndB(Block, RipDelta, Value); - 00087 44 8b 85 08 01 + 00071 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0008e 8b 95 00 01 00 + 00078 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00094 48 8b 8d f8 00 + 0007e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB - 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr + 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB + 0008a eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 291 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrB(Block, RipDelta, Value); - 000a2 44 8b 85 08 01 + 0008c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 000a9 8b 95 00 01 00 + 00093 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000af 48 8b 8d f8 00 + 00099 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB + 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 292 : } ; 293 : } - 000bb 48 8d a5 d8 00 + 000a5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 000ac 5f pop rdi + 000ad 5d pop rbp + 000ae c3 ret 0 ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperB _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1943,83 +1858,77 @@ $LN8: 00015 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8b fc mov rdi, rsp - 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00037 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 278 : switch (OpType) - 00043 8b 85 f0 00 00 + 0002d 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00049 89 85 c0 00 00 + 00033 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 0004f 83 bd c0 00 00 + 00039 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00056 74 14 je SHORT $LN4@JitiEmitWr - 00058 83 bd c0 00 00 + 00040 74 14 je SHORT $LN4@JitiEmitWr + 00042 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 0005f 74 26 je SHORT $LN5@JitiEmitWr - 00061 83 bd c0 00 00 + 00049 74 26 je SHORT $LN5@JitiEmitWr + 0004b 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00068 74 38 je SHORT $LN6@JitiEmitWr - 0006a eb 4f jmp SHORT $LN2@JitiEmitWr + 00052 74 38 je SHORT $LN6@JitiEmitWr + 00054 eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 279 : { ; 280 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorW(Block, RipDelta, Value); - 0006c 44 8b 85 08 01 + 00056 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00073 8b 95 00 01 00 + 0005d 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00079 48 8b 8d f8 00 + 00063 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW - 00085 eb 34 jmp SHORT $LN1@JitiEmitWr + 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW + 0006f eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 281 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndW(Block, RipDelta, Value); - 00087 44 8b 85 08 01 + 00071 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0008e 8b 95 00 01 00 + 00078 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00094 48 8b 8d f8 00 + 0007e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW - 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr + 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW + 0008a eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 282 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrW(Block, RipDelta, Value); - 000a2 44 8b 85 08 01 + 0008c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 000a9 8b 95 00 01 00 + 00093 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000af 48 8b 8d f8 00 + 00099 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW + 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 283 : } ; 284 : } - 000bb 48 8d a5 d8 00 + 000a5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 000ac 5f pop rdi + 000ad 5d pop rbp + 000ae c3 ret 0 ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperW _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -2041,83 +1950,77 @@ $LN8: 00015 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8b fc mov rdi, rsp - 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00037 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 269 : switch (OpType) - 00043 8b 85 f0 00 00 + 0002d 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00049 89 85 c0 00 00 + 00033 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 0004f 83 bd c0 00 00 + 00039 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00056 74 14 je SHORT $LN4@JitiEmitWr - 00058 83 bd c0 00 00 + 00040 74 14 je SHORT $LN4@JitiEmitWr + 00042 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 0005f 74 26 je SHORT $LN5@JitiEmitWr - 00061 83 bd c0 00 00 + 00049 74 26 je SHORT $LN5@JitiEmitWr + 0004b 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00068 74 38 je SHORT $LN6@JitiEmitWr - 0006a eb 4f jmp SHORT $LN2@JitiEmitWr + 00052 74 38 je SHORT $LN6@JitiEmitWr + 00054 eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 270 : { ; 271 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorD(Block, RipDelta, Value); - 0006c 44 8b 85 08 01 + 00056 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00073 8b 95 00 01 00 + 0005d 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00079 48 8b 8d f8 00 + 00063 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD - 00085 eb 34 jmp SHORT $LN1@JitiEmitWr + 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD + 0006f eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 272 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndD(Block, RipDelta, Value); - 00087 44 8b 85 08 01 + 00071 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0008e 8b 95 00 01 00 + 00078 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00094 48 8b 8d f8 00 + 0007e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD - 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr + 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD + 0008a eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 273 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrD(Block, RipDelta, Value); - 000a2 44 8b 85 08 01 + 0008c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 000a9 8b 95 00 01 00 + 00093 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000af 48 8b 8d f8 00 + 00099 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD + 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 274 : } ; 275 : } - 000bb 48 8d a5 d8 00 + 000a5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 000ac 5f pop rdi + 000ad 5d pop rbp + 000ae c3 ret 0 ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperD _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z _TEXT SEGMENT FourByte$ = 4 @@ -2160,405 +2063,399 @@ $LN29: 00016 48 81 ec c8 02 00 00 sub rsp, 712 ; 000002c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 e8 - 02 00 00 mov rcx, QWORD PTR [rsp+744] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 371 : ULONG FourByte = Link->RawDataSize / 4; - 00045 33 d2 xor edx, edx - 00047 48 8b 85 c0 02 + 0002e 33 d2 xor edx, edx + 00030 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] - 00051 b9 04 00 00 00 mov ecx, 4 - 00056 f7 f1 div ecx - 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 00037 8b 40 28 mov eax, DWORD PTR [rax+40] + 0003a b9 04 00 00 00 mov ecx, 4 + 0003f f7 f1 div ecx + 00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 372 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005e c1 e0 02 shl eax, 2 - 00061 48 8b 8d c0 02 + 00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00047 c1 e0 02 shl eax, 2 + 0004a 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0006b 2b c8 sub ecx, eax - 0006d 8b c1 mov eax, ecx - 0006f 33 d2 xor edx, edx - 00071 b9 02 00 00 00 mov ecx, 2 - 00076 f7 f1 div ecx - 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00051 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00054 2b c8 sub ecx, eax + 00056 8b c1 mov eax, ecx + 00058 33 d2 xor edx, edx + 0005a b9 02 00 00 00 mov ecx, 2 + 0005f f7 f1 div ecx + 00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 373 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0007e c1 e0 02 shl eax, 2 - 00081 48 8b 8d c0 02 + 00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00067 c1 e0 02 shl eax, 2 + 0006a 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0008b 2b c8 sub ecx, eax - 0008d 8b c1 mov eax, ecx - 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00092 d1 e1 shl ecx, 1 - 00094 2b c1 sub eax, ecx - 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00071 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00074 2b c8 sub ecx, eax + 00076 8b c1 mov eax, ecx + 00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0007b d1 e1 shl ecx, 1 + 0007d 2b c1 sub eax, ecx + 0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 374 : ; 375 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a3 48 89 85 e8 01 + 00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0008c 48 89 85 e8 01 00 00 mov QWORD PTR $T5[rbp], rax - 000aa 48 83 bd e8 01 + 00093 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 000b2 74 15 je SHORT $LN16@JitEmitPos - 000b4 48 8b 8d e8 01 + 0009b 74 15 je SHORT $LN16@JitEmitPos + 0009d 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c0 48 89 85 98 02 + 000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000a9 48 89 85 98 02 00 00 mov QWORD PTR tv86[rbp], rax - 000c7 eb 0b jmp SHORT $LN17@JitEmitPos + 000b0 eb 0b jmp SHORT $LN17@JitEmitPos $LN16@JitEmitPos: - 000c9 48 c7 85 98 02 + 000b2 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPos: - 000d4 48 8b 85 98 02 + 000bd 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000db 48 89 85 c8 01 + 000c4 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000e2 48 8b 85 c8 01 + 000cb 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 376 : if (!Block) - 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000f2 75 07 jne SHORT $LN4@JitEmitPos + 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000db 75 07 jne SHORT $LN4@JitEmitPos ; 377 : return NULL; - 000f4 33 c0 xor eax, eax - 000f6 e9 ed 03 00 00 jmp $LN1@JitEmitPos + 000dd 33 c0 xor eax, eax + 000df e9 ed 03 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 378 : ; 379 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000fb 83 bd d8 02 00 + 000e4 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00102 74 57 je SHORT $LN5@JitEmitPos - 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 0010d 85 c0 test eax, eax - 0010f 75 4a jne SHORT $LN5@JitEmitPos + 000eb 74 57 je SHORT $LN5@JitEmitPos + 000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst + 000f6 85 c0 test eax, eax + 000f8 75 4a jne SHORT $LN5@JitEmitPos ; 380 : { ; 381 : NcDeleteBlock(Block); - 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 382 : delete Block; - 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0011e 48 89 85 08 02 + 00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00107 48 89 85 08 02 00 00 mov QWORD PTR $T6[rbp], rax - 00125 48 83 bd 08 02 + 0010e 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 0012d 74 1a je SHORT $LN18@JitEmitPos - 0012f ba 01 00 00 00 mov edx, 1 - 00134 48 8b 8d 08 02 + 00116 74 1a je SHORT $LN18@JitEmitPos + 00118 ba 01 00 00 00 mov edx, 1 + 0011d 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T6[rbp] - 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00140 48 89 85 98 02 + 00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00129 48 89 85 98 02 00 00 mov QWORD PTR tv128[rbp], rax - 00147 eb 0b jmp SHORT $LN19@JitEmitPos + 00130 eb 0b jmp SHORT $LN19@JitEmitPos $LN18@JitEmitPos: - 00149 48 c7 85 98 02 + 00132 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPos: ; 383 : return NULL; - 00154 33 c0 xor eax, eax - 00156 e9 8d 03 00 00 jmp $LN1@JitEmitPos + 0013d 33 c0 xor eax, eax + 0013f e9 8d 03 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 384 : } ; 385 : ; 386 : ULONG Count = FourByte; - 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0015e 89 85 84 00 00 + 00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00147 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPos: ; 387 : while (Count) - 00164 83 bd 84 00 00 + 0014d 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0016b 0f 84 11 01 00 + 00154 0f 84 11 01 00 00 je $LN3@JitEmitPos ; 388 : { ; 389 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 00171 8b 85 84 00 00 + 0015a 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00177 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0017a 2b c8 sub ecx, eax - 0017c 8b c1 mov eax, ecx - 0017e c1 e0 02 shl eax, 2 - 00181 48 8b 8d c0 02 + 00160 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00163 2b c8 sub ecx, eax + 00165 8b c1 mov eax, ecx + 00167 c1 e0 02 shl eax, 2 + 0016a 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00188 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0018b 2b c8 sub ecx, eax - 0018d 8b c1 mov eax, ecx - 0018f 89 85 a4 00 00 + 00171 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00174 2b c8 sub ecx, eax + 00176 8b c1 mov eax, ecx + 00178 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 390 : if (SaveFlags) - 00195 83 bd d8 02 00 + 0017e 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0019c 74 0e je SHORT $LN6@JitEmitPos + 00185 74 0e je SHORT $LN6@JitEmitPos ; 391 : RipDelta += 1; - 0019e 8b 85 a4 00 00 + 00187 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 001a4 ff c0 inc eax - 001a6 89 85 a4 00 00 + 0018d ff c0 inc eax + 0018f 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax $LN6@JitEmitPos: ; 392 : RipDelta += (FourByte - (Count - 1)) * DWORD_RIP_INST_LENGTH; - 001ac 8b 85 84 00 00 + 00195 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001b2 ff c8 dec eax - 001b4 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001b7 2b c8 sub ecx, eax - 001b9 8b c1 mov eax, ecx - 001bb 6b c0 0a imul eax, eax, 10 - 001be 8b 8d a4 00 00 + 0019b ff c8 dec eax + 0019d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001a0 2b c8 sub ecx, eax + 001a2 8b c1 mov eax, ecx + 001a4 6b c0 0a imul eax, eax, 10 + 001a7 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001c4 03 c8 add ecx, eax - 001c6 8b c1 mov eax, ecx - 001c8 89 85 a4 00 00 + 001ad 03 c8 add ecx, eax + 001af 8b c1 mov eax, ecx + 001b1 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 393 : RipDelta *= (-1); - 001ce 6b 85 a4 00 00 + 001b7 6b 85 a4 00 00 00 ff imul eax, DWORD PTR RipDelta$1[rbp], -1 - 001d5 89 85 a4 00 00 + 001be 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 394 : RipDelta += Delta; - 001db 8b 85 e0 02 00 + 001c4 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001e1 8b 8d a4 00 00 + 001ca 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001e7 03 c8 add ecx, eax - 001e9 8b c1 mov eax, ecx - 001eb 89 85 a4 00 00 + 001d0 03 c8 add ecx, eax + 001d2 8b c1 mov eax, ecx + 001d4 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 395 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) - 001f1 8b 85 84 00 00 + 001da 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001f7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001fa 2b c8 sub ecx, eax - 001fc 8b c1 mov eax, ecx - 001fe 8b c0 mov eax, eax - 00200 48 8b 8d c8 02 + 001e0 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001e3 2b c8 sub ecx, eax + 001e5 8b c1 mov eax, ecx + 001e7 8b c0 mov eax, eax + 001e9 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00207 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 0020b 44 8b 85 a4 00 + 001f0 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] + 001f4 44 8b 85 a4 00 00 00 mov r8d, DWORD PTR RipDelta$1[rbp] - 00212 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00216 8b 8d d0 02 00 + 001fb 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 001ff 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 0021c e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 00221 85 c0 test eax, eax - 00223 75 4a jne SHORT $LN7@JitEmitPos + 00205 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD + 0020a 85 c0 test eax, eax + 0020c 75 4a jne SHORT $LN7@JitEmitPos ; 396 : { ; 397 : NcDeleteBlock(Block); - 00225 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00229 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0020e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00212 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 398 : delete Block; - 0022e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00232 48 89 85 28 02 + 00217 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0021b 48 89 85 28 02 00 00 mov QWORD PTR $T7[rbp], rax - 00239 48 83 bd 28 02 + 00222 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 00241 74 1a je SHORT $LN20@JitEmitPos - 00243 ba 01 00 00 00 mov edx, 1 - 00248 48 8b 8d 28 02 + 0022a 74 1a je SHORT $LN20@JitEmitPos + 0022c ba 01 00 00 00 mov edx, 1 + 00231 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR $T7[rbp] - 0024f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00254 48 89 85 98 02 + 00238 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0023d 48 89 85 98 02 00 00 mov QWORD PTR tv158[rbp], rax - 0025b eb 0b jmp SHORT $LN21@JitEmitPos + 00244 eb 0b jmp SHORT $LN21@JitEmitPos $LN20@JitEmitPos: - 0025d 48 c7 85 98 02 + 00246 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPos: ; 399 : return NULL; - 00268 33 c0 xor eax, eax - 0026a e9 79 02 00 00 jmp $LN1@JitEmitPos + 00251 33 c0 xor eax, eax + 00253 e9 79 02 00 00 jmp $LN1@JitEmitPos $LN7@JitEmitPos: ; 400 : } ; 401 : --Count; - 0026f 8b 85 84 00 00 + 00258 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00275 ff c8 dec eax - 00277 89 85 84 00 00 + 0025e ff c8 dec eax + 00260 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 402 : } - 0027d e9 e2 fe ff ff jmp $LN2@JitEmitPos + 00266 e9 e2 fe ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 403 : ; 404 : if (TwoByte) - 00282 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00286 0f 84 ef 00 00 + 0026b 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0026f 0f 84 ef 00 00 00 je $LN8@JitEmitPos ; 405 : { ; 406 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - 0028c 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0028f c1 e0 02 shl eax, 2 - 00292 48 8b 8d c0 02 + 00275 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00278 c1 e0 02 shl eax, 2 + 0027b 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00299 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0029c 2b c8 sub ecx, eax - 0029e 8b c1 mov eax, ecx - 002a0 89 85 c4 00 00 + 00282 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00285 2b c8 sub ecx, eax + 00287 8b c1 mov eax, ecx + 00289 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 407 : if (SaveFlags) - 002a6 83 bd d8 02 00 + 0028f 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 002ad 74 0e je SHORT $LN9@JitEmitPos + 00296 74 0e je SHORT $LN9@JitEmitPos ; 408 : RipDelta += 1; - 002af 8b 85 c4 00 00 + 00298 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 002b5 ff c0 inc eax - 002b7 89 85 c4 00 00 + 0029e ff c0 inc eax + 002a0 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax $LN9@JitEmitPos: ; 409 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); - 002bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 002c1 8b 8d c4 00 00 + 002a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 002aa 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002c7 03 c8 add ecx, eax - 002c9 8b c1 mov eax, ecx - 002cb 89 85 c4 00 00 + 002b0 03 c8 add ecx, eax + 002b2 8b c1 mov eax, ecx + 002b4 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 410 : RipDelta += WORD_RIP_INST_LENGTH; - 002d1 8b 85 c4 00 00 + 002ba 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 002d7 83 c0 09 add eax, 9 - 002da 89 85 c4 00 00 + 002c0 83 c0 09 add eax, 9 + 002c3 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 411 : RipDelta *= (-1); - 002e0 6b 85 c4 00 00 + 002c9 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$2[rbp], -1 - 002e7 89 85 c4 00 00 + 002d0 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 412 : RipDelta += Delta; - 002ed 8b 85 e0 02 00 + 002d6 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 002f3 8b 8d c4 00 00 + 002dc 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002f9 03 c8 add ecx, eax - 002fb 8b c1 mov eax, ecx - 002fd 89 85 c4 00 00 + 002e2 03 c8 add ecx, eax + 002e4 8b c1 mov eax, ecx + 002e6 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 413 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) - 00303 b8 04 00 00 00 mov eax, 4 - 00308 48 6b c0 03 imul rax, rax, 3 - 0030c 48 8b 8d c8 02 + 002ec b8 04 00 00 00 mov eax, 4 + 002f1 48 6b c0 03 imul rax, rax, 3 + 002f5 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00313 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00317 44 8b 85 c4 00 + 002fc 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 00300 44 8b 85 c4 00 00 00 mov r8d, DWORD PTR RipDelta$2[rbp] - 0031e 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00322 8b 8d d0 02 00 + 00307 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 0030b 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00328 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 0032d 85 c0 test eax, eax - 0032f 75 4a jne SHORT $LN8@JitEmitPos + 00311 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW + 00316 85 c0 test eax, eax + 00318 75 4a jne SHORT $LN8@JitEmitPos ; 414 : { ; 415 : NcDeleteBlock(Block); - 00331 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00335 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0031a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0031e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 416 : delete Block; - 0033a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0033e 48 89 85 48 02 + 00323 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00327 48 89 85 48 02 00 00 mov QWORD PTR $T8[rbp], rax - 00345 48 83 bd 48 02 + 0032e 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 0034d 74 1a je SHORT $LN22@JitEmitPos - 0034f ba 01 00 00 00 mov edx, 1 - 00354 48 8b 8d 48 02 + 00336 74 1a je SHORT $LN22@JitEmitPos + 00338 ba 01 00 00 00 mov edx, 1 + 0033d 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 0035b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00360 48 89 85 98 02 + 00344 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00349 48 89 85 98 02 00 00 mov QWORD PTR tv185[rbp], rax - 00367 eb 0b jmp SHORT $LN23@JitEmitPos + 00350 eb 0b jmp SHORT $LN23@JitEmitPos $LN22@JitEmitPos: - 00369 48 c7 85 98 02 + 00352 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv185[rbp], 0 $LN23@JitEmitPos: ; 417 : return NULL; - 00374 33 c0 xor eax, eax - 00376 e9 6d 01 00 00 jmp $LN1@JitEmitPos + 0035d 33 c0 xor eax, eax + 0035f e9 6d 01 00 00 jmp $LN1@JitEmitPos $LN8@JitEmitPos: ; 418 : } @@ -2566,132 +2463,132 @@ $LN8@JitEmitPos: ; 420 : ; 421 : if (OneByte) - 0037b 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 0037f 0f 84 02 01 00 + 00364 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00368 0f 84 02 01 00 00 je $LN11@JitEmitPos ; 422 : { ; 423 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - 00385 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00388 c1 e0 02 shl eax, 2 - 0038b 48 8b 8d c0 02 + 0036e 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00371 c1 e0 02 shl eax, 2 + 00374 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00392 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00395 2b c8 sub ecx, eax - 00397 8b c1 mov eax, ecx - 00399 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0039c d1 e1 shl ecx, 1 - 0039e 2b c1 sub eax, ecx - 003a0 89 85 e4 00 00 + 0037b 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0037e 2b c8 sub ecx, eax + 00380 8b c1 mov eax, ecx + 00382 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00385 d1 e1 shl ecx, 1 + 00387 2b c1 sub eax, ecx + 00389 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 424 : if (SaveFlags) - 003a6 83 bd d8 02 00 + 0038f 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 003ad 74 0e je SHORT $LN12@JitEmitPos + 00396 74 0e je SHORT $LN12@JitEmitPos ; 425 : RipDelta += 1; - 003af 8b 85 e4 00 00 + 00398 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003b5 ff c0 inc eax - 003b7 89 85 e4 00 00 + 0039e ff c0 inc eax + 003a0 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax $LN12@JitEmitPos: ; 426 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); - 003bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 003c1 8b 8d e4 00 00 + 003a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 003aa 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 003c7 03 c8 add ecx, eax - 003c9 8b c1 mov eax, ecx - 003cb 89 85 e4 00 00 + 003b0 03 c8 add ecx, eax + 003b2 8b c1 mov eax, ecx + 003b4 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 427 : RipDelta += WORD_RIP_INST_LENGTH; - 003d1 8b 85 e4 00 00 + 003ba 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003d7 83 c0 09 add eax, 9 - 003da 89 85 e4 00 00 + 003c0 83 c0 09 add eax, 9 + 003c3 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 428 : RipDelta += BYTE_RIP_INST_LENGTH; - 003e0 8b 85 e4 00 00 + 003c9 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003e6 83 c0 07 add eax, 7 - 003e9 89 85 e4 00 00 + 003cf 83 c0 07 add eax, 7 + 003d2 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 429 : RipDelta *= (-1); - 003ef 6b 85 e4 00 00 + 003d8 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$3[rbp], -1 - 003f6 89 85 e4 00 00 + 003df 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 430 : RipDelta += Delta; - 003fc 8b 85 e0 02 00 + 003e5 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 00402 8b 8d e4 00 00 + 003eb 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 00408 03 c8 add ecx, eax - 0040a 8b c1 mov eax, ecx - 0040c 89 85 e4 00 00 + 003f1 03 c8 add ecx, eax + 003f3 8b c1 mov eax, ecx + 003f5 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 431 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) - 00412 b8 04 00 00 00 mov eax, 4 - 00417 48 6b c0 04 imul rax, rax, 4 - 0041b 48 8b 8d c8 02 + 003fb b8 04 00 00 00 mov eax, 4 + 00400 48 6b c0 04 imul rax, rax, 4 + 00404 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00422 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00426 44 8b 85 e4 00 + 0040b 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 0040f 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR RipDelta$3[rbp] - 0042d 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00431 8b 8d d0 02 00 + 00416 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 0041a 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00437 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 0043c 85 c0 test eax, eax - 0043e 75 47 jne SHORT $LN11@JitEmitPos + 00420 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB + 00425 85 c0 test eax, eax + 00427 75 47 jne SHORT $LN11@JitEmitPos ; 432 : { ; 433 : NcDeleteBlock(Block); - 00440 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00444 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00429 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0042d e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 434 : delete Block; - 00449 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0044d 48 89 85 68 02 + 00432 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00436 48 89 85 68 02 00 00 mov QWORD PTR $T9[rbp], rax - 00454 48 83 bd 68 02 + 0043d 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 0045c 74 1a je SHORT $LN24@JitEmitPos - 0045e ba 01 00 00 00 mov edx, 1 - 00463 48 8b 8d 68 02 + 00445 74 1a je SHORT $LN24@JitEmitPos + 00447 ba 01 00 00 00 mov edx, 1 + 0044c 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR $T9[rbp] - 0046a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0046f 48 89 85 98 02 + 00453 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00458 48 89 85 98 02 00 00 mov QWORD PTR tv214[rbp], rax - 00476 eb 0b jmp SHORT $LN25@JitEmitPos + 0045f eb 0b jmp SHORT $LN25@JitEmitPos $LN24@JitEmitPos: - 00478 48 c7 85 98 02 + 00461 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN25@JitEmitPos: ; 435 : return NULL; - 00483 33 c0 xor eax, eax - 00485 eb 61 jmp SHORT $LN1@JitEmitPos + 0046c 33 c0 xor eax, eax + 0046e eb 61 jmp SHORT $LN1@JitEmitPos $LN11@JitEmitPos: ; 436 : } @@ -2699,61 +2596,61 @@ $LN11@JitEmitPos: ; 438 : ; 439 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 00487 83 bd d8 02 00 + 00470 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0048e 74 54 je SHORT $LN14@JitEmitPos - 00490 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00494 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 00499 85 c0 test eax, eax - 0049b 75 47 jne SHORT $LN14@JitEmitPos + 00477 74 54 je SHORT $LN14@JitEmitPos + 00479 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0047d e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst + 00482 85 c0 test eax, eax + 00484 75 47 jne SHORT $LN14@JitEmitPos ; 440 : { ; 441 : NcDeleteBlock(Block); - 0049d 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 004a1 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00486 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0048a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 442 : delete Block; - 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 004aa 48 89 85 88 02 + 0048f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00493 48 89 85 88 02 00 00 mov QWORD PTR $T10[rbp], rax - 004b1 48 83 bd 88 02 + 0049a 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 004b9 74 1a je SHORT $LN26@JitEmitPos - 004bb ba 01 00 00 00 mov edx, 1 - 004c0 48 8b 8d 88 02 + 004a2 74 1a je SHORT $LN26@JitEmitPos + 004a4 ba 01 00 00 00 mov edx, 1 + 004a9 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR $T10[rbp] - 004c7 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 004cc 48 89 85 98 02 + 004b0 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 004b5 48 89 85 98 02 00 00 mov QWORD PTR tv224[rbp], rax - 004d3 eb 0b jmp SHORT $LN27@JitEmitPos + 004bc eb 0b jmp SHORT $LN27@JitEmitPos $LN26@JitEmitPos: - 004d5 48 c7 85 98 02 + 004be 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv224[rbp], 0 $LN27@JitEmitPos: ; 443 : return NULL; - 004e0 33 c0 xor eax, eax - 004e2 eb 04 jmp SHORT $LN1@JitEmitPos + 004c9 33 c0 xor eax, eax + 004cb eb 04 jmp SHORT $LN1@JitEmitPos $LN14@JitEmitPos: ; 444 : } ; 445 : ; 446 : return Block; - 004e4 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004cd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 447 : } - 004e8 48 8d a5 a8 02 + 004d1 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 004ef 5f pop rdi - 004f0 5d pop rbp - 004f1 c3 ret 0 + 004d8 5f pop rdi + 004d9 5d pop rbp + 004da c3 ret 0 ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ENDP ; JitEmitPostRipBitwiseOp _TEXT ENDS ; COMDAT text$x @@ -2848,7 +2745,7 @@ Delta$ = 736 ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z _TEXT SEGMENT FourByte$ = 4 @@ -2891,370 +2788,364 @@ $LN29: 00016 48 81 ec c8 02 00 00 sub rsp, 712 ; 000002c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 e8 - 02 00 00 mov rcx, QWORD PTR [rsp+744] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 297 : ULONG FourByte = Link->RawDataSize / 4; - 00045 33 d2 xor edx, edx - 00047 48 8b 85 c0 02 + 0002e 33 d2 xor edx, edx + 00030 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] - 00051 b9 04 00 00 00 mov ecx, 4 - 00056 f7 f1 div ecx - 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 00037 8b 40 28 mov eax, DWORD PTR [rax+40] + 0003a b9 04 00 00 00 mov ecx, 4 + 0003f f7 f1 div ecx + 00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 298 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005e c1 e0 02 shl eax, 2 - 00061 48 8b 8d c0 02 + 00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00047 c1 e0 02 shl eax, 2 + 0004a 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0006b 2b c8 sub ecx, eax - 0006d 8b c1 mov eax, ecx - 0006f 33 d2 xor edx, edx - 00071 b9 02 00 00 00 mov ecx, 2 - 00076 f7 f1 div ecx - 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00051 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00054 2b c8 sub ecx, eax + 00056 8b c1 mov eax, ecx + 00058 33 d2 xor edx, edx + 0005a b9 02 00 00 00 mov ecx, 2 + 0005f f7 f1 div ecx + 00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 299 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0007e c1 e0 02 shl eax, 2 - 00081 48 8b 8d c0 02 + 00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00067 c1 e0 02 shl eax, 2 + 0006a 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0008b 2b c8 sub ecx, eax - 0008d 8b c1 mov eax, ecx - 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00092 03 c9 add ecx, ecx - 00094 2b c1 sub eax, ecx - 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00071 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00074 2b c8 sub ecx, eax + 00076 8b c1 mov eax, ecx + 00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0007b 03 c9 add ecx, ecx + 0007d 2b c1 sub eax, ecx + 0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 300 : ; 301 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a3 48 89 85 e8 01 + 00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0008c 48 89 85 e8 01 00 00 mov QWORD PTR $T5[rbp], rax - 000aa 48 83 bd e8 01 + 00093 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 000b2 74 15 je SHORT $LN16@JitEmitPre - 000b4 48 8b 8d e8 01 + 0009b 74 15 je SHORT $LN16@JitEmitPre + 0009d 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c0 48 89 85 98 02 + 000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000a9 48 89 85 98 02 00 00 mov QWORD PTR tv86[rbp], rax - 000c7 eb 0b jmp SHORT $LN17@JitEmitPre + 000b0 eb 0b jmp SHORT $LN17@JitEmitPre $LN16@JitEmitPre: - 000c9 48 c7 85 98 02 + 000b2 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPre: - 000d4 48 8b 85 98 02 + 000bd 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000db 48 89 85 c8 01 + 000c4 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000e2 48 8b 85 c8 01 + 000cb 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 302 : if (!Block) - 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000f2 75 07 jne SHORT $LN4@JitEmitPre + 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000db 75 07 jne SHORT $LN4@JitEmitPre ; 303 : return NULL; - 000f4 33 c0 xor eax, eax - 000f6 e9 67 03 00 00 jmp $LN1@JitEmitPre + 000dd 33 c0 xor eax, eax + 000df e9 67 03 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 304 : ; 305 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000fb 83 bd d8 02 00 + 000e4 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00102 74 57 je SHORT $LN5@JitEmitPre - 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 0010d 85 c0 test eax, eax - 0010f 75 4a jne SHORT $LN5@JitEmitPre + 000eb 74 57 je SHORT $LN5@JitEmitPre + 000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst + 000f6 85 c0 test eax, eax + 000f8 75 4a jne SHORT $LN5@JitEmitPre ; 306 : { ; 307 : NcDeleteBlock(Block); - 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 308 : delete Block; - 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0011e 48 89 85 08 02 + 00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00107 48 89 85 08 02 00 00 mov QWORD PTR $T6[rbp], rax - 00125 48 83 bd 08 02 + 0010e 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 0012d 74 1a je SHORT $LN18@JitEmitPre - 0012f ba 01 00 00 00 mov edx, 1 - 00134 48 8b 8d 08 02 + 00116 74 1a je SHORT $LN18@JitEmitPre + 00118 ba 01 00 00 00 mov edx, 1 + 0011d 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T6[rbp] - 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00140 48 89 85 98 02 + 00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00129 48 89 85 98 02 00 00 mov QWORD PTR tv128[rbp], rax - 00147 eb 0b jmp SHORT $LN19@JitEmitPre + 00130 eb 0b jmp SHORT $LN19@JitEmitPre $LN18@JitEmitPre: - 00149 48 c7 85 98 02 + 00132 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPre: ; 309 : return NULL; - 00154 33 c0 xor eax, eax - 00156 e9 07 03 00 00 jmp $LN1@JitEmitPre + 0013d 33 c0 xor eax, eax + 0013f e9 07 03 00 00 jmp $LN1@JitEmitPre $LN5@JitEmitPre: ; 310 : } ; 311 : ; 312 : ULONG Count = FourByte; - 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0015e 89 85 84 00 00 + 00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00147 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPre: ; 313 : while (Count) - 00164 83 bd 84 00 00 + 0014d 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0016b 0f 84 f7 00 00 + 00154 0f 84 f7 00 00 00 je $LN3@JitEmitPre ; 314 : { ; 315 : INT32 RipDelta = (((Count - 1) * DWORD_RIP_INST_LENGTH) + (TwoByte * WORD_RIP_INST_LENGTH) + (OneByte * BYTE_RIP_INST_LENGTH)); - 00171 8b 85 84 00 00 + 0015a 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00177 ff c8 dec eax - 00179 6b c0 0a imul eax, eax, 10 - 0017c 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 00180 03 c1 add eax, ecx - 00182 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 00186 03 c1 add eax, ecx - 00188 89 85 a4 00 00 + 00160 ff c8 dec eax + 00162 6b c0 0a imul eax, eax, 10 + 00165 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 + 00169 03 c1 add eax, ecx + 0016b 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 + 0016f 03 c1 add eax, ecx + 00171 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 316 : if (SaveFlags) - 0018e 83 bd d8 02 00 + 00177 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00195 74 0e je SHORT $LN6@JitEmitPre + 0017e 74 0e je SHORT $LN6@JitEmitPre ; 317 : RipDelta += 1; - 00197 8b 85 a4 00 00 + 00180 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 0019d ff c0 inc eax - 0019f 89 85 a4 00 00 + 00186 ff c0 inc eax + 00188 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax $LN6@JitEmitPre: ; 318 : RipDelta += ((FourByte - Count) * 4); - 001a5 8b 85 84 00 00 + 0018e 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001ab 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001ae 2b c8 sub ecx, eax - 001b0 8b c1 mov eax, ecx - 001b2 8b 8d a4 00 00 + 00194 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00197 2b c8 sub ecx, eax + 00199 8b c1 mov eax, ecx + 0019b 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001b8 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 001bb 89 85 a4 00 00 + 001a1 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001a4 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 319 : RipDelta += Delta; - 001c1 8b 85 e0 02 00 + 001aa 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001c7 8b 8d a4 00 00 + 001b0 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001cd 03 c8 add ecx, eax - 001cf 8b c1 mov eax, ecx - 001d1 89 85 a4 00 00 + 001b6 03 c8 add ecx, eax + 001b8 8b c1 mov eax, ecx + 001ba 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 320 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) - 001d7 8b 85 84 00 00 + 001c0 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001dd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001e0 2b c8 sub ecx, eax - 001e2 8b c1 mov eax, ecx - 001e4 8b c0 mov eax, eax - 001e6 48 8b 8d c8 02 + 001c6 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001c9 2b c8 sub ecx, eax + 001cb 8b c1 mov eax, ecx + 001cd 8b c0 mov eax, eax + 001cf 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 001ed 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 001f1 44 8b 85 a4 00 + 001d6 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] + 001da 44 8b 85 a4 00 00 00 mov r8d, DWORD PTR RipDelta$1[rbp] - 001f8 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 001fc 8b 8d d0 02 00 + 001e1 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 001e5 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00202 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 00207 85 c0 test eax, eax - 00209 75 4a jne SHORT $LN7@JitEmitPre + 001eb e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD + 001f0 85 c0 test eax, eax + 001f2 75 4a jne SHORT $LN7@JitEmitPre ; 321 : { ; 322 : NcDeleteBlock(Block); - 0020b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0020f e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001f4 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001f8 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 323 : delete Block; - 00214 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00218 48 89 85 28 02 + 001fd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00201 48 89 85 28 02 00 00 mov QWORD PTR $T7[rbp], rax - 0021f 48 83 bd 28 02 + 00208 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 00227 74 1a je SHORT $LN20@JitEmitPre - 00229 ba 01 00 00 00 mov edx, 1 - 0022e 48 8b 8d 28 02 + 00210 74 1a je SHORT $LN20@JitEmitPre + 00212 ba 01 00 00 00 mov edx, 1 + 00217 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR $T7[rbp] - 00235 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0023a 48 89 85 98 02 + 0021e e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00223 48 89 85 98 02 00 00 mov QWORD PTR tv158[rbp], rax - 00241 eb 0b jmp SHORT $LN21@JitEmitPre + 0022a eb 0b jmp SHORT $LN21@JitEmitPre $LN20@JitEmitPre: - 00243 48 c7 85 98 02 + 0022c 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPre: ; 324 : return NULL; - 0024e 33 c0 xor eax, eax - 00250 e9 0d 02 00 00 jmp $LN1@JitEmitPre + 00237 33 c0 xor eax, eax + 00239 e9 0d 02 00 00 jmp $LN1@JitEmitPre $LN7@JitEmitPre: ; 325 : } ; 326 : --Count; - 00255 8b 85 84 00 00 + 0023e 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0025b ff c8 dec eax - 0025d 89 85 84 00 00 + 00244 ff c8 dec eax + 00246 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 327 : } - 00263 e9 fc fe ff ff jmp $LN2@JitEmitPre + 0024c e9 fc fe ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 328 : ; 329 : if (TwoByte) - 00268 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0026c 0f 84 c1 00 00 + 00251 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00255 0f 84 c1 00 00 00 je $LN8@JitEmitPre ; 330 : { ; 331 : INT32 RipDelta = (OneByte * BYTE_RIP_INST_LENGTH); - 00272 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 00276 89 85 c4 00 00 + 0025b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 0025f 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 332 : if (SaveFlags) - 0027c 83 bd d8 02 00 + 00265 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00283 74 0e je SHORT $LN9@JitEmitPre + 0026c 74 0e je SHORT $LN9@JitEmitPre ; 333 : RipDelta += 1; - 00285 8b 85 c4 00 00 + 0026e 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 0028b ff c0 inc eax - 0028d 89 85 c4 00 00 + 00274 ff c0 inc eax + 00276 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax $LN9@JitEmitPre: ; 334 : RipDelta += (FourByte * 4); - 00293 8b 85 c4 00 00 + 0027c 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00299 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0029c 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 0029f 89 85 c4 00 00 + 00282 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00285 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 00288 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 335 : RipDelta += Delta; - 002a5 8b 85 e0 02 00 + 0028e 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 002ab 8b 8d c4 00 00 + 00294 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002b1 03 c8 add ecx, eax - 002b3 8b c1 mov eax, ecx - 002b5 89 85 c4 00 00 + 0029a 03 c8 add ecx, eax + 0029c 8b c1 mov eax, ecx + 0029e 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 336 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) - 002bb b8 04 00 00 00 mov eax, 4 - 002c0 48 6b c0 03 imul rax, rax, 3 - 002c4 48 8b 8d c8 02 + 002a4 b8 04 00 00 00 mov eax, 4 + 002a9 48 6b c0 03 imul rax, rax, 3 + 002ad 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 002cb 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 002cf 44 8b 85 c4 00 + 002b4 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 002b8 44 8b 85 c4 00 00 00 mov r8d, DWORD PTR RipDelta$2[rbp] - 002d6 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 002da 8b 8d d0 02 00 + 002bf 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 002c3 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 002e0 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 002e5 85 c0 test eax, eax - 002e7 75 4a jne SHORT $LN8@JitEmitPre + 002c9 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW + 002ce 85 c0 test eax, eax + 002d0 75 4a jne SHORT $LN8@JitEmitPre ; 337 : { ; 338 : NcDeleteBlock(Block); - 002e9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002ed e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 002d2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002d6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 339 : delete Block; - 002f2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 002f6 48 89 85 48 02 + 002db 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002df 48 89 85 48 02 00 00 mov QWORD PTR $T8[rbp], rax - 002fd 48 83 bd 48 02 + 002e6 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 00305 74 1a je SHORT $LN22@JitEmitPre - 00307 ba 01 00 00 00 mov edx, 1 - 0030c 48 8b 8d 48 02 + 002ee 74 1a je SHORT $LN22@JitEmitPre + 002f0 ba 01 00 00 00 mov edx, 1 + 002f5 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 00313 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00318 48 89 85 98 02 + 002fc e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00301 48 89 85 98 02 00 00 mov QWORD PTR tv181[rbp], rax - 0031f eb 0b jmp SHORT $LN23@JitEmitPre + 00308 eb 0b jmp SHORT $LN23@JitEmitPre $LN22@JitEmitPre: - 00321 48 c7 85 98 02 + 0030a 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv181[rbp], 0 $LN23@JitEmitPre: ; 340 : return NULL; - 0032c 33 c0 xor eax, eax - 0032e e9 2f 01 00 00 jmp $LN1@JitEmitPre + 00315 33 c0 xor eax, eax + 00317 e9 2f 01 00 00 jmp $LN1@JitEmitPre $LN8@JitEmitPre: ; 341 : } @@ -3262,100 +3153,100 @@ $LN8@JitEmitPre: ; 343 : ; 344 : if (OneByte) - 00333 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00337 0f 84 c4 00 00 + 0031c 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00320 0f 84 c4 00 00 00 je $LN11@JitEmitPre ; 345 : { ; 346 : INT32 RipDelta = 0; - 0033d c7 85 e4 00 00 + 00326 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 347 : if (SaveFlags) - 00347 83 bd d8 02 00 + 00330 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0034e 74 0e je SHORT $LN12@JitEmitPre + 00337 74 0e je SHORT $LN12@JitEmitPre ; 348 : RipDelta += 1; - 00350 8b 85 e4 00 00 + 00339 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 00356 ff c0 inc eax - 00358 89 85 e4 00 00 + 0033f ff c0 inc eax + 00341 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax $LN12@JitEmitPre: ; 349 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 0035e 8b 85 e4 00 00 + 00347 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 00364 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00367 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 0036a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0036d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00370 89 85 e4 00 00 + 0034d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00350 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 00353 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00356 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] + 00359 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 350 : RipDelta += Delta; - 00376 8b 85 e0 02 00 + 0035f 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 0037c 8b 8d e4 00 00 + 00365 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 00382 03 c8 add ecx, eax - 00384 8b c1 mov eax, ecx - 00386 89 85 e4 00 00 + 0036b 03 c8 add ecx, eax + 0036d 8b c1 mov eax, ecx + 0036f 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 351 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) - 0038c b8 04 00 00 00 mov eax, 4 - 00391 48 6b c0 04 imul rax, rax, 4 - 00395 48 8b 8d c8 02 + 00375 b8 04 00 00 00 mov eax, 4 + 0037a 48 6b c0 04 imul rax, rax, 4 + 0037e 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 0039c 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 003a0 44 8b 85 e4 00 + 00385 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 00389 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR RipDelta$3[rbp] - 003a7 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 003ab 8b 8d d0 02 00 + 00390 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00394 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 003b1 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 003b6 85 c0 test eax, eax - 003b8 75 47 jne SHORT $LN11@JitEmitPre + 0039a e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB + 0039f 85 c0 test eax, eax + 003a1 75 47 jne SHORT $LN11@JitEmitPre ; 352 : { ; 353 : NcDeleteBlock(Block); - 003ba 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003be e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 003a3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003a7 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 354 : delete Block; - 003c3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003c7 48 89 85 68 02 + 003ac 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003b0 48 89 85 68 02 00 00 mov QWORD PTR $T9[rbp], rax - 003ce 48 83 bd 68 02 + 003b7 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 003d6 74 1a je SHORT $LN24@JitEmitPre - 003d8 ba 01 00 00 00 mov edx, 1 - 003dd 48 8b 8d 68 02 + 003bf 74 1a je SHORT $LN24@JitEmitPre + 003c1 ba 01 00 00 00 mov edx, 1 + 003c6 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR $T9[rbp] - 003e4 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 003e9 48 89 85 98 02 + 003cd e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 003d2 48 89 85 98 02 00 00 mov QWORD PTR tv204[rbp], rax - 003f0 eb 0b jmp SHORT $LN25@JitEmitPre + 003d9 eb 0b jmp SHORT $LN25@JitEmitPre $LN24@JitEmitPre: - 003f2 48 c7 85 98 02 + 003db 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv204[rbp], 0 $LN25@JitEmitPre: ; 355 : return NULL; - 003fd 33 c0 xor eax, eax - 003ff eb 61 jmp SHORT $LN1@JitEmitPre + 003e6 33 c0 xor eax, eax + 003e8 eb 61 jmp SHORT $LN1@JitEmitPre $LN11@JitEmitPre: ; 356 : } @@ -3363,61 +3254,61 @@ $LN11@JitEmitPre: ; 358 : ; 359 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 00401 83 bd d8 02 00 + 003ea 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00408 74 54 je SHORT $LN14@JitEmitPre - 0040a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0040e e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 00413 85 c0 test eax, eax - 00415 75 47 jne SHORT $LN14@JitEmitPre + 003f1 74 54 je SHORT $LN14@JitEmitPre + 003f3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003f7 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst + 003fc 85 c0 test eax, eax + 003fe 75 47 jne SHORT $LN14@JitEmitPre ; 360 : { ; 361 : NcDeleteBlock(Block); - 00417 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0041b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00400 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00404 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 362 : delete Block; - 00420 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00424 48 89 85 88 02 + 00409 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0040d 48 89 85 88 02 00 00 mov QWORD PTR $T10[rbp], rax - 0042b 48 83 bd 88 02 + 00414 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 00433 74 1a je SHORT $LN26@JitEmitPre - 00435 ba 01 00 00 00 mov edx, 1 - 0043a 48 8b 8d 88 02 + 0041c 74 1a je SHORT $LN26@JitEmitPre + 0041e ba 01 00 00 00 mov edx, 1 + 00423 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR $T10[rbp] - 00441 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00446 48 89 85 98 02 + 0042a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0042f 48 89 85 98 02 00 00 mov QWORD PTR tv214[rbp], rax - 0044d eb 0b jmp SHORT $LN27@JitEmitPre + 00436 eb 0b jmp SHORT $LN27@JitEmitPre $LN26@JitEmitPre: - 0044f 48 c7 85 98 02 + 00438 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN27@JitEmitPre: ; 363 : return NULL; - 0045a 33 c0 xor eax, eax - 0045c eb 04 jmp SHORT $LN1@JitEmitPre + 00443 33 c0 xor eax, eax + 00445 eb 04 jmp SHORT $LN1@JitEmitPre $LN14@JitEmitPre: ; 364 : } ; 365 : ; 366 : return Block; - 0045e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00447 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 367 : } - 00462 48 8d a5 a8 02 + 0044b 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 00469 5f pop rdi - 0046a 5d pop rbp - 0046b c3 ret 0 + 00452 5f pop rdi + 00453 5d pop rbp + 00454 c3 ret 0 ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ENDP ; JitEmitPreRipBitwiseOp _TEXT ENDS ; COMDAT text$x @@ -3512,7 +3403,7 @@ Delta$ = 736 ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -3554,362 +3445,362 @@ $LN25: 0000b 48 81 ec f8 03 00 00 sub rsp, 1016 ; 000003f8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 fe 00 00 00 mov ecx, 254 ; 000000feH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 18 + 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001c b9 96 00 00 00 mov ecx, 150 ; 00000096H + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 48 8b 8c 24 18 04 00 00 mov rcx, QWORD PTR [rsp+1048] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 c0 03 + 00037 48 33 c5 xor rax, rbp + 0003a 48 89 85 c0 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00041 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 200 : ULONG FourByte = Link->RawDataSize / 4; - 0004b 33 d2 xor edx, edx - 0004d 48 8b 85 f0 03 + 0004d 33 d2 xor edx, edx + 0004f 48 8b 85 f0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00054 8b 40 28 mov eax, DWORD PTR [rax+40] - 00057 b9 04 00 00 00 mov ecx, 4 - 0005c f7 f1 div ecx - 0005e 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 00056 8b 40 28 mov eax, DWORD PTR [rax+40] + 00059 b9 04 00 00 00 mov ecx, 4 + 0005e f7 f1 div ecx + 00060 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 201 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00061 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00064 c1 e0 02 shl eax, 2 - 00067 48 8b 8d f0 03 + 00063 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00066 c1 e0 02 shl eax, 2 + 00069 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0006e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00071 2b c8 sub ecx, eax - 00073 8b c1 mov eax, ecx - 00075 33 d2 xor edx, edx - 00077 b9 02 00 00 00 mov ecx, 2 - 0007c f7 f1 div ecx - 0007e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00070 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00073 2b c8 sub ecx, eax + 00075 8b c1 mov eax, ecx + 00077 33 d2 xor edx, edx + 00079 b9 02 00 00 00 mov ecx, 2 + 0007e f7 f1 div ecx + 00080 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 202 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00081 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00084 c1 e0 02 shl eax, 2 - 00087 48 8b 8d f0 03 + 00083 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00086 c1 e0 02 shl eax, 2 + 00089 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0008e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00091 2b c8 sub ecx, eax - 00093 8b c1 mov eax, ecx - 00095 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00098 d1 e1 shl ecx, 1 - 0009a 2b c1 sub eax, ecx - 0009c 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00090 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00093 2b c8 sub ecx, eax + 00095 8b c1 mov eax, ecx + 00097 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0009a d1 e1 shl ecx, 1 + 0009c 2b c1 sub eax, ecx + 0009e 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 203 : ; 204 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 0009f b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000a4 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a9 48 89 85 e8 02 + 000a1 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000a6 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000ab 48 89 85 e8 02 00 00 mov QWORD PTR $T8[rbp], rax - 000b0 48 83 bd e8 02 + 000b2 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 000b8 74 15 je SHORT $LN11@JitEmitPos - 000ba 48 8b 8d e8 02 + 000ba 74 15 je SHORT $LN11@JitEmitPos + 000bc 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 000c1 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c6 48 89 85 b8 03 + 000c3 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c8 48 89 85 b8 03 00 00 mov QWORD PTR tv86[rbp], rax - 000cd eb 0b jmp SHORT $LN12@JitEmitPos + 000cf eb 0b jmp SHORT $LN12@JitEmitPos $LN11@JitEmitPos: - 000cf 48 c7 85 b8 03 + 000d1 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPos: - 000da 48 8b 85 b8 03 + 000dc 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000e1 48 89 85 c8 02 + 000e3 48 89 85 c8 02 00 00 mov QWORD PTR $T7[rbp], rax - 000e8 48 8b 85 c8 02 + 000ea 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T7[rbp] - 000ef 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000f1 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 205 : ; 206 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000f3 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000f8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000fd 48 89 85 28 03 + 000f5 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000fa e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000ff 48 89 85 28 03 00 00 mov QWORD PTR $T10[rbp], rax - 00104 48 83 bd 28 03 + 00106 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0010c 74 15 je SHORT $LN13@JitEmitPos - 0010e 48 8b 8d 28 03 + 0010e 74 15 je SHORT $LN13@JitEmitPos + 00110 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00115 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0011a 48 89 85 b8 03 + 00117 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0011c 48 89 85 b8 03 00 00 mov QWORD PTR tv131[rbp], rax - 00121 eb 0b jmp SHORT $LN14@JitEmitPos + 00123 eb 0b jmp SHORT $LN14@JitEmitPos $LN13@JitEmitPos: - 00123 48 c7 85 b8 03 + 00125 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPos: - 0012e 48 8b 85 b8 03 + 00130 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 00135 48 89 85 08 03 + 00137 48 89 85 08 03 00 00 mov QWORD PTR $T9[rbp], rax - 0013c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00140 48 8b 8d 08 03 + 0013e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00142 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 00147 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0014b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0014f 48 8b 8d 08 03 + 00149 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0014d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00151 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 00156 48 89 08 mov QWORD PTR [rax], rcx + 00158 48 89 08 mov QWORD PTR [rax], rcx ; 207 : ULONG ZeroValue = 0; - 00159 c7 85 84 00 00 + 0015b c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR ZeroValue$[rbp], 0 ; 208 : ULONG Count = FourByte; - 00163 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00166 89 85 a4 00 00 + 00165 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00168 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPos: ; 209 : while (Count) - 0016c 83 bd a4 00 00 + 0016e 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00173 0f 84 ec 00 00 + 00175 0f 84 ec 00 00 00 je $LN3@JitEmitPos ; 210 : { ; 211 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 00179 8b 85 a4 00 00 + 0017b 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0017f 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00182 2b c8 sub ecx, eax - 00184 8b c1 mov eax, ecx - 00186 c1 e0 02 shl eax, 2 - 00189 48 8b 8d f0 03 + 00181 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00184 2b c8 sub ecx, eax + 00186 8b c1 mov eax, ecx + 00188 c1 e0 02 shl eax, 2 + 0018b 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00190 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00193 2b c8 sub ecx, eax - 00195 8b c1 mov eax, ecx - 00197 89 85 c4 00 00 + 00192 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00195 2b c8 sub ecx, eax + 00197 8b c1 mov eax, ecx + 00199 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 212 : RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH; - 0019d 8b 85 a4 00 00 + 0019f 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001a3 ff c8 dec eax - 001a5 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001a8 2b c8 sub ecx, eax - 001aa 8b c1 mov eax, ecx - 001ac 6b c0 0a imul eax, eax, 10 - 001af 8b 8d c4 00 00 + 001a5 ff c8 dec eax + 001a7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001aa 2b c8 sub ecx, eax + 001ac 8b c1 mov eax, ecx + 001ae 6b c0 0a imul eax, eax, 10 + 001b1 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001b5 03 c8 add ecx, eax - 001b7 8b c1 mov eax, ecx - 001b9 89 85 c4 00 00 + 001b7 03 c8 add ecx, eax + 001b9 8b c1 mov eax, ecx + 001bb 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 213 : RipDelta *= (-1); - 001bf 6b 85 c4 00 00 + 001c1 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$4[rbp], -1 - 001c6 89 85 c4 00 00 + 001c8 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 214 : RipDelta += Delta; - 001cc 8b 85 f8 03 00 + 001ce 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 001d2 8b 8d c4 00 00 + 001d4 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001d8 03 c8 add ecx, eax - 001da 8b c1 mov eax, ecx - 001dc 89 85 c4 00 00 + 001da 03 c8 add ecx, eax + 001dc 8b c1 mov eax, ecx + 001de 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 215 : ZeroValue = rand(); - 001e2 ff 15 00 00 00 + 001e4 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 001e8 89 85 84 00 00 + 001ea 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 216 : if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) - 001ee 4c 8d 85 84 00 + 001f0 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 001f5 8b 95 c4 00 00 + 001f7 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$4[rbp] - 001fb 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001ff e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 00204 85 c0 test eax, eax - 00206 75 4a jne SHORT $LN4@JitEmitPos + 001fd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00201 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD + 00206 85 c0 test eax, eax + 00208 75 4a jne SHORT $LN4@JitEmitPos ; 217 : { ; 218 : NcDeleteBlock(Block); - 00208 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0020c e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0020a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0020e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 219 : delete Block; - 00211 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00215 48 89 85 48 03 + 00213 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00217 48 89 85 48 03 00 00 mov QWORD PTR $T11[rbp], rax - 0021c 48 83 bd 48 03 + 0021e 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00224 74 1a je SHORT $LN15@JitEmitPos - 00226 ba 01 00 00 00 mov edx, 1 - 0022b 48 8b 8d 48 03 + 00226 74 1a je SHORT $LN15@JitEmitPos + 00228 ba 01 00 00 00 mov edx, 1 + 0022d 48 8b 8d 48 03 00 00 mov rcx, QWORD PTR $T11[rbp] - 00232 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00237 48 89 85 b8 03 + 00234 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00239 48 89 85 b8 03 00 00 mov QWORD PTR tv153[rbp], rax - 0023e eb 0b jmp SHORT $LN16@JitEmitPos + 00240 eb 0b jmp SHORT $LN16@JitEmitPos $LN15@JitEmitPos: - 00240 48 c7 85 b8 03 + 00242 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPos: ; 220 : return NULL; - 0024b 33 c0 xor eax, eax - 0024d e9 58 02 00 00 jmp $LN1@JitEmitPos + 0024d 33 c0 xor eax, eax + 0024f e9 58 02 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 221 : } ; 222 : --Count; - 00252 8b 85 a4 00 00 + 00254 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00258 ff c8 dec eax - 0025a 89 85 a4 00 00 + 0025a ff c8 dec eax + 0025c 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 223 : } - 00260 e9 07 ff ff ff jmp $LN2@JitEmitPos + 00262 e9 07 ff ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 224 : ; 225 : if (TwoByte) - 00265 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00269 0f 84 d0 00 00 + 00267 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0026b 0f 84 d0 00 00 00 je $LN5@JitEmitPos ; 226 : { ; 227 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - 0026f 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00272 c1 e0 02 shl eax, 2 - 00275 48 8b 8d f0 03 + 00271 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00274 c1 e0 02 shl eax, 2 + 00277 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0027c 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0027f 2b c8 sub ecx, eax - 00281 8b c1 mov eax, ecx - 00283 89 85 e4 00 00 + 0027e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00281 2b c8 sub ecx, eax + 00283 8b c1 mov eax, ecx + 00285 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 228 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - 00289 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 0028d 8b 8d e4 00 00 + 0028b 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 0028f 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 00293 03 c8 add ecx, eax - 00295 8b c1 mov eax, ecx - 00297 89 85 e4 00 00 + 00295 03 c8 add ecx, eax + 00297 8b c1 mov eax, ecx + 00299 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 229 : RipDelta += WORD_MOV_INST_LENGTH; - 0029d 8b 85 e4 00 00 + 0029f 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$5[rbp] - 002a3 83 c0 09 add eax, 9 - 002a6 89 85 e4 00 00 + 002a5 83 c0 09 add eax, 9 + 002a8 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 230 : RipDelta *= (-1); - 002ac 6b 85 e4 00 00 + 002ae 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$5[rbp], -1 - 002b3 89 85 e4 00 00 + 002b5 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 231 : RipDelta += Delta; - 002b9 8b 85 f8 03 00 + 002bb 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 002bf 8b 8d e4 00 00 + 002c1 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 002c5 03 c8 add ecx, eax - 002c7 8b c1 mov eax, ecx - 002c9 89 85 e4 00 00 + 002c7 03 c8 add ecx, eax + 002c9 8b c1 mov eax, ecx + 002cb 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 232 : ZeroValue = rand(); - 002cf ff 15 00 00 00 + 002d1 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 002d5 89 85 84 00 00 + 002d7 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 233 : if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) - 002db 4c 8d 85 84 00 + 002dd 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 002e2 8b 95 e4 00 00 + 002e4 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$5[rbp] - 002e8 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002ec e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 002f1 85 c0 test eax, eax - 002f3 75 4a jne SHORT $LN5@JitEmitPos + 002ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002ee e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW + 002f3 85 c0 test eax, eax + 002f5 75 4a jne SHORT $LN5@JitEmitPos ; 234 : { ; 235 : NcDeleteBlock(Block); - 002f5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002f9 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 002f7 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002fb e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 236 : delete Block; - 002fe 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00302 48 89 85 68 03 + 00300 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00304 48 89 85 68 03 00 00 mov QWORD PTR $T12[rbp], rax - 00309 48 83 bd 68 03 + 0030b 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 00311 74 1a je SHORT $LN17@JitEmitPos - 00313 ba 01 00 00 00 mov edx, 1 - 00318 48 8b 8d 68 03 + 00313 74 1a je SHORT $LN17@JitEmitPos + 00315 ba 01 00 00 00 mov edx, 1 + 0031a 48 8b 8d 68 03 00 00 mov rcx, QWORD PTR $T12[rbp] - 0031f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00324 48 89 85 b8 03 + 00321 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00326 48 89 85 b8 03 00 00 mov QWORD PTR tv175[rbp], rax - 0032b eb 0b jmp SHORT $LN18@JitEmitPos + 0032d eb 0b jmp SHORT $LN18@JitEmitPos $LN17@JitEmitPos: - 0032d 48 c7 85 b8 03 + 0032f 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv175[rbp], 0 $LN18@JitEmitPos: ; 237 : return NULL; - 00338 33 c0 xor eax, eax - 0033a e9 6b 01 00 00 jmp $LN1@JitEmitPos + 0033a 33 c0 xor eax, eax + 0033c e9 6b 01 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 238 : } @@ -3917,121 +3808,121 @@ $LN5@JitEmitPos: ; 240 : ; 241 : if (OneByte) - 0033f 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00343 0f 84 e8 00 00 + 00341 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00345 0f 84 e8 00 00 00 je $LN7@JitEmitPos ; 242 : { ; 243 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - 00349 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0034c c1 e0 02 shl eax, 2 - 0034f 48 8b 8d f0 03 + 0034b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0034e c1 e0 02 shl eax, 2 + 00351 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00356 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00359 2b c8 sub ecx, eax - 0035b 8b c1 mov eax, ecx - 0035d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00360 d1 e1 shl ecx, 1 - 00362 2b c1 sub eax, ecx - 00364 89 85 04 01 00 + 00358 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0035b 2b c8 sub ecx, eax + 0035d 8b c1 mov eax, ecx + 0035f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00362 d1 e1 shl ecx, 1 + 00364 2b c1 sub eax, ecx + 00366 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 244 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - 0036a 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 0036e 8b 8d 04 01 00 + 0036c 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 00370 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 00374 03 c8 add ecx, eax - 00376 8b c1 mov eax, ecx - 00378 89 85 04 01 00 + 00376 03 c8 add ecx, eax + 00378 8b c1 mov eax, ecx + 0037a 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 245 : RipDelta += (TwoByte * WORD_MOV_INST_LENGTH); - 0037e 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 - 00382 8b 8d 04 01 00 + 00380 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 + 00384 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 00388 03 c8 add ecx, eax - 0038a 8b c1 mov eax, ecx - 0038c 89 85 04 01 00 + 0038a 03 c8 add ecx, eax + 0038c 8b c1 mov eax, ecx + 0038e 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 246 : RipDelta += BYTE_MOV_INST_LENGTH; - 00392 8b 85 04 01 00 + 00394 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$6[rbp] - 00398 83 c0 07 add eax, 7 - 0039b 89 85 04 01 00 + 0039a 83 c0 07 add eax, 7 + 0039d 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 247 : RipDelta *= (-1); - 003a1 6b 85 04 01 00 + 003a3 6b 85 04 01 00 00 ff imul eax, DWORD PTR RipDelta$6[rbp], -1 - 003a8 89 85 04 01 00 + 003aa 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 248 : RipDelta += Delta; - 003ae 8b 85 f8 03 00 + 003b0 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 003b4 8b 8d 04 01 00 + 003b6 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 003ba 03 c8 add ecx, eax - 003bc 8b c1 mov eax, ecx - 003be 89 85 04 01 00 + 003bc 03 c8 add ecx, eax + 003be 8b c1 mov eax, ecx + 003c0 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 249 : ZeroValue = rand(); - 003c4 ff 15 00 00 00 + 003c6 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 003ca 89 85 84 00 00 + 003cc 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 250 : if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) - 003d0 4c 8d 85 84 00 + 003d2 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 003d7 8b 95 04 01 00 + 003d9 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$6[rbp] - 003dd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003e1 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 003e6 85 c0 test eax, eax - 003e8 75 47 jne SHORT $LN7@JitEmitPos + 003df 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003e3 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB + 003e8 85 c0 test eax, eax + 003ea 75 47 jne SHORT $LN7@JitEmitPos ; 251 : { ; 252 : NcDeleteBlock(Block); - 003ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003ee e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 003ec 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003f0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 253 : delete Block; - 003f3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003f7 48 89 85 88 03 + 003f5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003f9 48 89 85 88 03 00 00 mov QWORD PTR $T13[rbp], rax - 003fe 48 83 bd 88 03 + 00400 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 00406 74 1a je SHORT $LN19@JitEmitPos - 00408 ba 01 00 00 00 mov edx, 1 - 0040d 48 8b 8d 88 03 + 00408 74 1a je SHORT $LN19@JitEmitPos + 0040a ba 01 00 00 00 mov edx, 1 + 0040f 48 8b 8d 88 03 00 00 mov rcx, QWORD PTR $T13[rbp] - 00414 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00419 48 89 85 b8 03 + 00416 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0041b 48 89 85 b8 03 00 00 mov QWORD PTR tv200[rbp], rax - 00420 eb 0b jmp SHORT $LN20@JitEmitPos + 00422 eb 0b jmp SHORT $LN20@JitEmitPos $LN19@JitEmitPos: - 00422 48 c7 85 b8 03 + 00424 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv200[rbp], 0 $LN20@JitEmitPos: ; 254 : return NULL; - 0042d 33 c0 xor eax, eax - 0042f eb 79 jmp SHORT $LN1@JitEmitPos + 0042f 33 c0 xor eax, eax + 00431 eb 79 jmp SHORT $LN1@JitEmitPos $LN7@JitEmitPos: ; 255 : } @@ -4039,51 +3930,51 @@ $LN7@JitEmitPos: ; 257 : ; 258 : PNATIVE_CODE_LINK StartLink = Block->Start; - 00431 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00435 48 8b 00 mov rax, QWORD PTR [rax] - 00438 48 89 85 28 01 + 00433 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00437 48 8b 00 mov rax, QWORD PTR [rax] + 0043a 48 89 85 28 01 00 00 mov QWORD PTR StartLink$[rbp], rax ; 259 : Block->Start = Block->Start->Next; - 0043f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00443 48 8b 00 mov rax, QWORD PTR [rax] - 00446 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0044a 48 8b 00 mov rax, QWORD PTR [rax] - 0044d 48 89 01 mov QWORD PTR [rcx], rax + 00441 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00445 48 8b 00 mov rax, QWORD PTR [rax] + 00448 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0044c 48 8b 00 mov rax, QWORD PTR [rax] + 0044f 48 89 01 mov QWORD PTR [rcx], rax ; 260 : if (Block->Start) - 00450 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00454 48 83 38 00 cmp QWORD PTR [rax], 0 - 00458 74 0f je SHORT $LN9@JitEmitPos + 00452 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00456 48 83 38 00 cmp QWORD PTR [rax], 0 + 0045a 74 0f je SHORT $LN9@JitEmitPos ; 261 : Block->Start->Prev = NULL; - 0045a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0045e 48 8b 00 mov rax, QWORD PTR [rax] - 00461 48 c7 40 08 00 + 0045c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00460 48 8b 00 mov rax, QWORD PTR [rax] + 00463 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 $LN9@JitEmitPos: ; 262 : delete StartLink; - 00469 48 8b 85 28 01 + 0046b 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 00470 48 89 85 a8 03 + 00472 48 89 85 a8 03 00 00 mov QWORD PTR $T14[rbp], rax - 00477 48 83 bd a8 03 + 00479 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T14[rbp], 0 - 0047f 74 1a je SHORT $LN21@JitEmitPos - 00481 ba 01 00 00 00 mov edx, 1 - 00486 48 8b 8d a8 03 + 00481 74 1a je SHORT $LN21@JitEmitPos + 00483 ba 01 00 00 00 mov edx, 1 + 00488 48 8b 8d a8 03 00 00 mov rcx, QWORD PTR $T14[rbp] - 0048d e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00492 48 89 85 b8 03 + 0048f e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00494 48 89 85 b8 03 00 00 mov QWORD PTR tv213[rbp], rax - 00499 eb 0b jmp SHORT $LN22@JitEmitPos + 0049b eb 0b jmp SHORT $LN22@JitEmitPos $LN21@JitEmitPos: - 0049b 48 c7 85 b8 03 + 0049d 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv213[rbp], 0 $LN22@JitEmitPos: @@ -4091,26 +3982,26 @@ $LN22@JitEmitPos: ; 263 : ; 264 : return Block; - 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004a8 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 265 : } - 004aa 48 8b f8 mov rdi, rax - 004ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 004b1 48 8d 15 00 00 + 004ac 48 8b f8 mov rdi, rax + 004af 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 004b3 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData - 004b8 e8 00 00 00 00 call _RTC_CheckStackVars - 004bd 48 8b c7 mov rax, rdi - 004c0 48 8b 8d c0 03 + 004ba e8 00 00 00 00 call _RTC_CheckStackVars + 004bf 48 8b c7 mov rax, rdi + 004c2 48 8b 8d c0 03 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 004c7 48 33 cd xor rcx, rbp - 004ca e8 00 00 00 00 call __security_check_cookie - 004cf 48 8d a5 d8 03 + 004c9 48 33 cd xor rcx, rbp + 004cc e8 00 00 00 00 call __security_check_cookie + 004d1 48 8d a5 d8 03 00 00 lea rsp, QWORD PTR [rbp+984] - 004d6 5f pop rdi - 004d7 5d pop rbp - 004d8 c3 ret 0 + 004d8 5f pop rdi + 004d9 5d pop rbp + 004da c3 ret 0 ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPostRipMov _TEXT ENDS ; COMDAT text$x @@ -4300,7 +4191,7 @@ Delta$ = 1016 ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -4341,331 +4232,325 @@ $LN25: 0000b 48 81 ec e8 03 00 00 sub rsp, 1000 ; 000003e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 fa 00 00 00 mov ecx, 250 ; 000000faH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 04 00 00 mov rcx, QWORD PTR [rsp+1032] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 135 : ULONG FourByte = Link->RawDataSize / 4; - 0003a 33 d2 xor edx, edx - 0003c 48 8b 85 e0 03 + 00023 33 d2 xor edx, edx + 00025 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00043 8b 40 28 mov eax, DWORD PTR [rax+40] - 00046 b9 04 00 00 00 mov ecx, 4 - 0004b f7 f1 div ecx - 0004d 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 0002c 8b 40 28 mov eax, DWORD PTR [rax+40] + 0002f b9 04 00 00 00 mov ecx, 4 + 00034 f7 f1 div ecx + 00036 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 136 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00050 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00053 c1 e0 02 shl eax, 2 - 00056 48 8b 8d e0 03 + 00039 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0003c c1 e0 02 shl eax, 2 + 0003f 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0005d 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00060 2b c8 sub ecx, eax - 00062 8b c1 mov eax, ecx - 00064 33 d2 xor edx, edx - 00066 b9 02 00 00 00 mov ecx, 2 - 0006b f7 f1 div ecx - 0006d 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00046 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00049 2b c8 sub ecx, eax + 0004b 8b c1 mov eax, ecx + 0004d 33 d2 xor edx, edx + 0004f b9 02 00 00 00 mov ecx, 2 + 00054 f7 f1 div ecx + 00056 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 137 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00070 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00073 c1 e0 02 shl eax, 2 - 00076 48 8b 8d e0 03 + 00059 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005c c1 e0 02 shl eax, 2 + 0005f 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0007d 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00080 2b c8 sub ecx, eax - 00082 8b c1 mov eax, ecx - 00084 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00087 03 c9 add ecx, ecx - 00089 2b c1 sub eax, ecx - 0008b 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00066 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00069 2b c8 sub ecx, eax + 0006b 8b c1 mov eax, ecx + 0006d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00070 03 c9 add ecx, ecx + 00072 2b c1 sub eax, ecx + 00074 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 138 : ; 139 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 0008e b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00093 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00098 48 89 85 e8 02 + 00077 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00081 48 89 85 e8 02 00 00 mov QWORD PTR $T5[rbp], rax - 0009f 48 83 bd e8 02 + 00088 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 000a7 74 15 je SHORT $LN11@JitEmitPre - 000a9 48 8b 8d e8 02 + 00090 74 15 je SHORT $LN11@JitEmitPre + 00092 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b0 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000b5 48 89 85 b8 03 + 00099 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0009e 48 89 85 b8 03 00 00 mov QWORD PTR tv86[rbp], rax - 000bc eb 0b jmp SHORT $LN12@JitEmitPre + 000a5 eb 0b jmp SHORT $LN12@JitEmitPre $LN11@JitEmitPre: - 000be 48 c7 85 b8 03 + 000a7 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPre: - 000c9 48 8b 85 b8 03 + 000b2 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000d0 48 89 85 c8 02 + 000b9 48 89 85 c8 02 00 00 mov QWORD PTR $T4[rbp], rax - 000d7 48 8b 85 c8 02 + 000c0 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T4[rbp] - 000de 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000c7 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 140 : ; 141 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000e2 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000e7 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ec 48 89 85 28 03 + 000cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000d5 48 89 85 28 03 00 00 mov QWORD PTR $T7[rbp], rax - 000f3 48 83 bd 28 03 + 000dc 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 000fb 74 15 je SHORT $LN13@JitEmitPre - 000fd 48 8b 8d 28 03 + 000e4 74 15 je SHORT $LN13@JitEmitPre + 000e6 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T7[rbp] - 00104 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00109 48 89 85 b8 03 + 000ed e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000f2 48 89 85 b8 03 00 00 mov QWORD PTR tv131[rbp], rax - 00110 eb 0b jmp SHORT $LN14@JitEmitPre + 000f9 eb 0b jmp SHORT $LN14@JitEmitPre $LN13@JitEmitPre: - 00112 48 c7 85 b8 03 + 000fb 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPre: - 0011d 48 8b 85 b8 03 + 00106 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 00124 48 89 85 08 03 + 0010d 48 89 85 08 03 00 00 mov QWORD PTR $T6[rbp], rax - 0012b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0012f 48 8b 8d 08 03 + 00114 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00118 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T6[rbp] - 00136 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0013a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0013e 48 8b 8d 08 03 + 0011f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00123 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00127 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T6[rbp] - 00145 48 89 08 mov QWORD PTR [rax], rcx + 0012e 48 89 08 mov QWORD PTR [rax], rcx ; 142 : PUCHAR DataOffset = Link->RawData; - 00148 48 8b 85 e0 03 + 00131 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0014f 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00153 48 89 85 88 00 + 00138 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0013c 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 143 : ULONG Count = FourByte; - 0015a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0015d 89 85 a4 00 00 + 00143 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00146 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPre: ; 144 : while (Count) - 00163 83 bd a4 00 00 + 0014c 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0016a 0f 84 d8 00 00 + 00153 0f 84 d8 00 00 00 je $LN3@JitEmitPre ; 145 : { ; 146 : //Account for remaining MOVs ; 147 : INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH)); - 00170 8b 85 a4 00 00 + 00159 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00176 ff c8 dec eax - 00178 6b c0 0a imul eax, eax, 10 - 0017b 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 0017f 03 c1 add eax, ecx - 00181 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 00185 03 c1 add eax, ecx - 00187 89 85 c4 00 00 + 0015f ff c8 dec eax + 00161 6b c0 0a imul eax, eax, 10 + 00164 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 + 00168 03 c1 add eax, ecx + 0016a 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 + 0016e 03 c1 add eax, ecx + 00170 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 148 : //Account for already MOVd instructions ; 149 : RipDelta += ((FourByte - Count) * 4); - 0018d 8b 85 a4 00 00 + 00176 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00193 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00196 2b c8 sub ecx, eax - 00198 8b c1 mov eax, ecx - 0019a 8b 8d c4 00 00 + 0017c 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 0017f 2b c8 sub ecx, eax + 00181 8b c1 mov eax, ecx + 00183 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001a0 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 001a3 89 85 c4 00 00 + 00189 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 0018c 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 150 : RipDelta += Delta; - 001a9 8b 85 e8 03 00 + 00192 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 001af 8b 8d c4 00 00 + 00198 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001b5 03 c8 add ecx, eax - 001b7 8b c1 mov eax, ecx - 001b9 89 85 c4 00 00 + 0019e 03 c8 add ecx, eax + 001a0 8b c1 mov eax, ecx + 001a2 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 151 : //Add the actual instruction ; 152 : if (!JitEmitRipRelativeMovD(Block, RipDelta, DataOffset)) - 001bf 4c 8b 85 88 00 + 001a8 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 001c6 8b 95 c4 00 00 + 001af 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$1[rbp] - 001cc 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001d0 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 001d5 85 c0 test eax, eax - 001d7 75 4a jne SHORT $LN4@JitEmitPre + 001b5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001b9 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD + 001be 85 c0 test eax, eax + 001c0 75 4a jne SHORT $LN4@JitEmitPre ; 153 : { ; 154 : NcDeleteBlock(Block); - 001d9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001dd e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001c2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001c6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 155 : delete Block; - 001e2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 001e6 48 89 85 48 03 + 001cb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 001cf 48 89 85 48 03 00 00 mov QWORD PTR $T8[rbp], rax - 001ed 48 83 bd 48 03 + 001d6 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 001f5 74 1a je SHORT $LN15@JitEmitPre - 001f7 ba 01 00 00 00 mov edx, 1 - 001fc 48 8b 8d 48 03 + 001de 74 1a je SHORT $LN15@JitEmitPre + 001e0 ba 01 00 00 00 mov edx, 1 + 001e5 48 8b 8d 48 03 00 00 mov rcx, QWORD PTR $T8[rbp] - 00203 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00208 48 89 85 b8 03 + 001ec e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 001f1 48 89 85 b8 03 00 00 mov QWORD PTR tv153[rbp], rax - 0020f eb 0b jmp SHORT $LN16@JitEmitPre + 001f8 eb 0b jmp SHORT $LN16@JitEmitPre $LN15@JitEmitPre: - 00211 48 c7 85 b8 03 + 001fa 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPre: ; 156 : return NULL; - 0021c 33 c0 xor eax, eax - 0021e e9 f3 01 00 00 jmp $LN1@JitEmitPre + 00205 33 c0 xor eax, eax + 00207 e9 f3 01 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 157 : } ; 158 : DataOffset += 4; - 00223 48 8b 85 88 00 + 0020c 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 0022a 48 83 c0 04 add rax, 4 - 0022e 48 89 85 88 00 + 00213 48 83 c0 04 add rax, 4 + 00217 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 159 : --Count; - 00235 8b 85 a4 00 00 + 0021e 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0023b ff c8 dec eax - 0023d 89 85 a4 00 00 + 00224 ff c8 dec eax + 00226 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 160 : } - 00243 e9 1b ff ff ff jmp $LN2@JitEmitPre + 0022c e9 1b ff ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 161 : ; 162 : if (TwoByte) - 00248 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0024c 0f 84 a8 00 00 + 00231 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00235 0f 84 a8 00 00 00 je $LN5@JitEmitPre ; 163 : { ; 164 : INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH); - 00252 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 00256 89 85 e4 00 00 + 0023b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 0023f 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 165 : RipDelta += (FourByte * 4); - 0025c 8b 85 e4 00 00 + 00245 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00262 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00265 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00268 89 85 e4 00 00 + 0024b 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 0024e 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 00251 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 166 : RipDelta += Delta; - 0026e 8b 85 e8 03 00 + 00257 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 00274 8b 8d e4 00 00 + 0025d 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 0027a 03 c8 add ecx, eax - 0027c 8b c1 mov eax, ecx - 0027e 89 85 e4 00 00 + 00263 03 c8 add ecx, eax + 00265 8b c1 mov eax, ecx + 00267 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 167 : if (!JitEmitRipRelativeMovW(Block, RipDelta, DataOffset)) - 00284 4c 8b 85 88 00 + 0026d 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 0028b 8b 95 e4 00 00 + 00274 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$2[rbp] - 00291 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00295 e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 0029a 85 c0 test eax, eax - 0029c 75 4a jne SHORT $LN6@JitEmitPre + 0027a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0027e e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW + 00283 85 c0 test eax, eax + 00285 75 4a jne SHORT $LN6@JitEmitPre ; 168 : { ; 169 : NcDeleteBlock(Block); - 0029e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00287 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0028b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 170 : delete Block; - 002a7 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 002ab 48 89 85 68 03 + 00290 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00294 48 89 85 68 03 00 00 mov QWORD PTR $T9[rbp], rax - 002b2 48 83 bd 68 03 + 0029b 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 002ba 74 1a je SHORT $LN17@JitEmitPre - 002bc ba 01 00 00 00 mov edx, 1 - 002c1 48 8b 8d 68 03 + 002a3 74 1a je SHORT $LN17@JitEmitPre + 002a5 ba 01 00 00 00 mov edx, 1 + 002aa 48 8b 8d 68 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 002c8 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 002cd 48 89 85 b8 03 + 002b1 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 002b6 48 89 85 b8 03 00 00 mov QWORD PTR tv171[rbp], rax - 002d4 eb 0b jmp SHORT $LN18@JitEmitPre + 002bd eb 0b jmp SHORT $LN18@JitEmitPre $LN17@JitEmitPre: - 002d6 48 c7 85 b8 03 + 002bf 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv171[rbp], 0 $LN18@JitEmitPre: ; 171 : return NULL; - 002e1 33 c0 xor eax, eax - 002e3 e9 2e 01 00 00 jmp $LN1@JitEmitPre + 002ca 33 c0 xor eax, eax + 002cc e9 2e 01 00 00 jmp $LN1@JitEmitPre $LN6@JitEmitPre: ; 172 : } ; 173 : DataOffset += 2; - 002e8 48 8b 85 88 00 + 002d1 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 002ef 48 83 c0 02 add rax, 2 - 002f3 48 89 85 88 00 + 002d8 48 83 c0 02 add rax, 2 + 002dc 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax $LN5@JitEmitPre: @@ -4673,80 +4558,80 @@ $LN5@JitEmitPre: ; 175 : ; 176 : if (OneByte) - 002fa 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 002fe 0f 84 99 00 00 + 002e3 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 002e7 0f 84 99 00 00 00 je $LN7@JitEmitPre ; 177 : { ; 178 : INT32 RipDelta = 0; - 00304 c7 85 04 01 00 + 002ed c7 85 04 01 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 179 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 0030e 8b 85 04 01 00 + 002f7 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 00314 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00317 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 0031a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0031d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00320 89 85 04 01 00 + 002fd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00300 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 00303 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00306 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] + 00309 89 85 04 01 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 180 : RipDelta += Delta; - 00326 8b 85 e8 03 00 + 0030f 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 0032c 8b 8d 04 01 00 + 00315 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 00332 03 c8 add ecx, eax - 00334 8b c1 mov eax, ecx - 00336 89 85 04 01 00 + 0031b 03 c8 add ecx, eax + 0031d 8b c1 mov eax, ecx + 0031f 89 85 04 01 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 181 : if (!JitEmitRipRelativeMovB(Block, RipDelta, DataOffset)) - 0033c 4c 8b 85 88 00 + 00325 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 00343 8b 95 04 01 00 + 0032c 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$3[rbp] - 00349 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0034d e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 00352 85 c0 test eax, eax - 00354 75 47 jne SHORT $LN7@JitEmitPre + 00332 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00336 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB + 0033b 85 c0 test eax, eax + 0033d 75 47 jne SHORT $LN7@JitEmitPre ; 182 : { ; 183 : NcDeleteBlock(Block); - 00356 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0035a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0033f 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00343 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 184 : delete Block; - 0035f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00363 48 89 85 88 03 + 00348 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0034c 48 89 85 88 03 00 00 mov QWORD PTR $T10[rbp], rax - 0036a 48 83 bd 88 03 + 00353 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 00372 74 1a je SHORT $LN19@JitEmitPre - 00374 ba 01 00 00 00 mov edx, 1 - 00379 48 8b 8d 88 03 + 0035b 74 1a je SHORT $LN19@JitEmitPre + 0035d ba 01 00 00 00 mov edx, 1 + 00362 48 8b 8d 88 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00380 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00385 48 89 85 b8 03 + 00369 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0036e 48 89 85 b8 03 00 00 mov QWORD PTR tv189[rbp], rax - 0038c eb 0b jmp SHORT $LN20@JitEmitPre + 00375 eb 0b jmp SHORT $LN20@JitEmitPre $LN19@JitEmitPre: - 0038e 48 c7 85 b8 03 + 00377 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv189[rbp], 0 $LN20@JitEmitPre: ; 185 : return NULL; - 00399 33 c0 xor eax, eax - 0039b eb 79 jmp SHORT $LN1@JitEmitPre + 00382 33 c0 xor eax, eax + 00384 eb 79 jmp SHORT $LN1@JitEmitPre $LN7@JitEmitPre: ; 186 : } @@ -4754,51 +4639,51 @@ $LN7@JitEmitPre: ; 188 : ; 189 : PNATIVE_CODE_LINK StartLink = Block->Start; - 0039d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003a1 48 8b 00 mov rax, QWORD PTR [rax] - 003a4 48 89 85 28 01 + 00386 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0038a 48 8b 00 mov rax, QWORD PTR [rax] + 0038d 48 89 85 28 01 00 00 mov QWORD PTR StartLink$[rbp], rax ; 190 : Block->Start = Block->Start->Next; - 003ab 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003af 48 8b 00 mov rax, QWORD PTR [rax] - 003b2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003b6 48 8b 00 mov rax, QWORD PTR [rax] - 003b9 48 89 01 mov QWORD PTR [rcx], rax + 00394 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00398 48 8b 00 mov rax, QWORD PTR [rax] + 0039b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0039f 48 8b 00 mov rax, QWORD PTR [rax] + 003a2 48 89 01 mov QWORD PTR [rcx], rax ; 191 : if (Block->Start) - 003bc 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003c0 48 83 38 00 cmp QWORD PTR [rax], 0 - 003c4 74 0f je SHORT $LN9@JitEmitPre + 003a5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003a9 48 83 38 00 cmp QWORD PTR [rax], 0 + 003ad 74 0f je SHORT $LN9@JitEmitPre ; 192 : Block->Start->Prev = NULL; - 003c6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003ca 48 8b 00 mov rax, QWORD PTR [rax] - 003cd 48 c7 40 08 00 + 003af 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003b3 48 8b 00 mov rax, QWORD PTR [rax] + 003b6 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 $LN9@JitEmitPre: ; 193 : delete StartLink; - 003d5 48 8b 85 28 01 + 003be 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 003dc 48 89 85 a8 03 + 003c5 48 89 85 a8 03 00 00 mov QWORD PTR $T11[rbp], rax - 003e3 48 83 bd a8 03 + 003cc 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 003eb 74 1a je SHORT $LN21@JitEmitPre - 003ed ba 01 00 00 00 mov edx, 1 - 003f2 48 8b 8d a8 03 + 003d4 74 1a je SHORT $LN21@JitEmitPre + 003d6 ba 01 00 00 00 mov edx, 1 + 003db 48 8b 8d a8 03 00 00 mov rcx, QWORD PTR $T11[rbp] - 003f9 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 003fe 48 89 85 b8 03 + 003e2 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 003e7 48 89 85 b8 03 00 00 mov QWORD PTR tv202[rbp], rax - 00405 eb 0b jmp SHORT $LN22@JitEmitPre + 003ee eb 0b jmp SHORT $LN22@JitEmitPre $LN21@JitEmitPre: - 00407 48 c7 85 b8 03 + 003f0 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv202[rbp], 0 $LN22@JitEmitPre: @@ -4806,16 +4691,16 @@ $LN22@JitEmitPre: ; 194 : ; 195 : return Block; - 00412 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003fb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 196 : } - 00416 48 8d a5 c8 03 + 003ff 48 8d a5 c8 03 00 00 lea rsp, QWORD PTR [rbp+968] - 0041d 5f pop rdi - 0041e 5d pop rbp - 0041f c3 ret 0 + 00406 5f pop rdi + 00407 5d pop rbp + 00408 c3 ret 0 ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPreRipMov _TEXT ENDS ; COMDAT text$x @@ -5001,7 +4886,7 @@ Delta$ = 1000 ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 @@ -5018,28 +4903,22 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 130 : ; 131 : } - 0003b 48 8d a5 c8 00 + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00042 5f pop rdi - 00043 5d pop rbp - 00044 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForAnd _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 @@ -5056,28 +4935,22 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 125 : ; 126 : } - 0003b 48 8d a5 c8 00 + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00042 5f pop rdi - 00043 5d pop rbp - 00044 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForOr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT FourByte$ = 4 @@ -5098,163 +4971,157 @@ $LN7: 0000c 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 5a 00 00 00 mov ecx, 90 ; 0000005aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 88 - 01 00 00 mov rcx, QWORD PTR [rsp+392] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 100 : ULONG FourByte = Link->RawDataSize / 4; - 0003b 33 d2 xor edx, edx - 0003d 48 8b 85 60 01 + 00024 33 d2 xor edx, edx + 00026 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00044 8b 40 28 mov eax, DWORD PTR [rax+40] - 00047 b9 04 00 00 00 mov ecx, 4 - 0004c f7 f1 div ecx - 0004e 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 0002d 8b 40 28 mov eax, DWORD PTR [rax+40] + 00030 b9 04 00 00 00 mov ecx, 4 + 00035 f7 f1 div ecx + 00037 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 101 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00051 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00054 c1 e0 02 shl eax, 2 - 00057 48 8b 8d 60 01 + 0003a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0003d c1 e0 02 shl eax, 2 + 00040 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0005e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00061 2b c8 sub ecx, eax - 00063 8b c1 mov eax, ecx - 00065 33 d2 xor edx, edx - 00067 b9 02 00 00 00 mov ecx, 2 - 0006c f7 f1 div ecx - 0006e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00047 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0004a 2b c8 sub ecx, eax + 0004c 8b c1 mov eax, ecx + 0004e 33 d2 xor edx, edx + 00050 b9 02 00 00 00 mov ecx, 2 + 00055 f7 f1 div ecx + 00057 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 102 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00071 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00074 c1 e0 02 shl eax, 2 - 00077 48 8b 8d 60 01 + 0005a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005d c1 e0 02 shl eax, 2 + 00060 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0007e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00081 2b c8 sub ecx, eax - 00083 8b c1 mov eax, ecx - 00085 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00088 d1 e1 shl ecx, 1 - 0008a 2b c1 sub eax, ecx - 0008c 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00067 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0006a 2b c8 sub ecx, eax + 0006c 8b c1 mov eax, ecx + 0006e 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00071 d1 e1 shl ecx, 1 + 00073 2b c1 sub eax, ecx + 00075 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 103 : ; 104 : PUCHAR Buffer = Link->RawData; - 0008f 48 8b 85 60 01 + 00078 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00096 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0009a 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 0007f 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00083 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax $LN2@JitMutateI: ; 105 : while (FourByte) - 0009e 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 - 000a2 74 3a je SHORT $LN3@JitMutateI + 00087 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 + 0008b 74 3a je SHORT $LN3@JitMutateI ; 106 : { ; 107 : *(PULONG)Buffer ^= JitData->Data[2 - FourByte]; - 000a4 b8 02 00 00 00 mov eax, 2 - 000a9 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] - 000ac 8b c0 mov eax, eax - 000ae 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000b2 48 8b 95 68 01 + 0008d b8 02 00 00 00 mov eax, 2 + 00092 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] + 00095 8b c0 mov eax, eax + 00097 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 0009b 48 8b 95 68 01 00 00 mov rdx, QWORD PTR JitData$[rbp] - 000b9 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] - 000bc 8b 09 mov ecx, DWORD PTR [rcx] - 000be 33 c8 xor ecx, eax - 000c0 8b c1 mov eax, ecx - 000c2 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000c6 89 01 mov DWORD PTR [rcx], eax + 000a2 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] + 000a5 8b 09 mov ecx, DWORD PTR [rcx] + 000a7 33 c8 xor ecx, eax + 000a9 8b c1 mov eax, ecx + 000ab 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000af 89 01 mov DWORD PTR [rcx], eax ; 108 : Buffer += 4; - 000c8 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 000cc 48 83 c0 04 add rax, 4 - 000d0 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 000b1 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] + 000b5 48 83 c0 04 add rax, 4 + 000b9 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax ; 109 : FourByte--; - 000d4 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 000d7 ff c8 dec eax - 000d9 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 000bd 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 000c0 ff c8 dec eax + 000c2 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 110 : } - 000dc eb c0 jmp SHORT $LN2@JitMutateI + 000c5 eb c0 jmp SHORT $LN2@JitMutateI $LN3@JitMutateI: ; 111 : ; 112 : if (TwoByte) - 000de 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 000e2 74 32 je SHORT $LN4@JitMutateI + 000c7 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 000cb 74 32 je SHORT $LN4@JitMutateI ; 113 : { ; 114 : *(PUSHORT)Buffer ^= (USHORT)JitData->Data[3]; - 000e4 b8 04 00 00 00 mov eax, 4 - 000e9 48 6b c0 03 imul rax, rax, 3 - 000ed 48 8b 8d 68 01 + 000cd b8 04 00 00 00 mov eax, 4 + 000d2 48 6b c0 03 imul rax, rax, 3 + 000d6 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR JitData$[rbp] - 000f4 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 000f8 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000fc 0f b7 09 movzx ecx, WORD PTR [rcx] - 000ff 33 c8 xor ecx, eax - 00101 8b c1 mov eax, ecx - 00103 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 00107 66 89 01 mov WORD PTR [rcx], ax + 000dd 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] + 000e1 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000e5 0f b7 09 movzx ecx, WORD PTR [rcx] + 000e8 33 c8 xor ecx, eax + 000ea 8b c1 mov eax, ecx + 000ec 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000f0 66 89 01 mov WORD PTR [rcx], ax ; 115 : Buffer += 2; - 0010a 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 0010e 48 83 c0 02 add rax, 2 - 00112 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 000f3 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] + 000f7 48 83 c0 02 add rax, 2 + 000fb 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax $LN4@JitMutateI: ; 116 : } ; 117 : ; 118 : if (OneByte) - 00116 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 0011a 74 25 je SHORT $LN5@JitMutateI + 000ff 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00103 74 25 je SHORT $LN5@JitMutateI ; 119 : *(PUCHAR)Buffer ^= (UCHAR)JitData->Data[3]; - 0011c b8 04 00 00 00 mov eax, 4 - 00121 48 6b c0 03 imul rax, rax, 3 - 00125 48 8b 8d 68 01 + 00105 b8 04 00 00 00 mov eax, 4 + 0010a 48 6b c0 03 imul rax, rax, 3 + 0010e 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR JitData$[rbp] - 0012c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00130 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 00134 0f b6 09 movzx ecx, BYTE PTR [rcx] - 00137 33 c8 xor ecx, eax - 00139 8b c1 mov eax, ecx - 0013b 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 0013f 88 01 mov BYTE PTR [rcx], al + 00115 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 00119 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 0011d 0f b6 09 movzx ecx, BYTE PTR [rcx] + 00120 33 c8 xor ecx, eax + 00122 8b c1 mov eax, ecx + 00124 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 00128 88 01 mov BYTE PTR [rcx], al $LN5@JitMutateI: ; 120 : ; 121 : } - 00141 48 8d a5 48 01 + 0012a 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 00148 5f pop rdi - 00149 5d pop rbp - 0014a c3 ret 0 + 00131 5f pop rdi + 00132 5d pop rbp + 00133 c3 ret 0 ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForXor _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Ledger$ = 4 @@ -5275,176 +5142,176 @@ $LN9: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 58 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 70 : XED_FLAG_SET Ledger; ; 71 : Ledger.s.zf = TRUE; - 00047 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0004a 83 c8 40 or eax, 64 ; 00000040H - 0004d 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00049 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0004c 83 c8 40 or eax, 64 ; 00000040H + 0004f 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 72 : Ledger.s.sf = TRUE; - 00050 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00053 0f ba e8 07 bts eax, 7 - 00057 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00052 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00055 0f ba e8 07 bts eax, 7 + 00059 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 73 : Ledger.s.pf = TRUE; - 0005a 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0005d 83 c8 04 or eax, 4 - 00060 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 0005c 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0005f 83 c8 04 or eax, 4 + 00062 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 74 : Ledger.s.of = TRUE; - 00063 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00066 0f ba e8 0b bts eax, 11 - 0006a 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00065 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00068 0f ba e8 0b bts eax, 11 + 0006c 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 75 : Ledger.s.cf = TRUE; - 0006d 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00070 83 c8 01 or eax, 1 - 00073 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 0006f 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00072 83 c8 01 or eax, 1 + 00075 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 76 : Ledger.s.af = TRUE; - 00076 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00079 83 c8 10 or eax, 16 - 0007c 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00078 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0007b 83 c8 10 or eax, 16 + 0007e 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 77 : ; 78 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - 0007f 48 8b 85 80 01 + 00081 48 8b 85 80 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00086 48 8b 00 mov rax, QWORD PTR [rax] - 00089 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0008d eb 0b jmp SHORT $LN4@JitAreFlag + 00088 48 8b 00 mov rax, QWORD PTR [rax] + 0008b 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0008f eb 0b jmp SHORT $LN4@JitAreFlag $LN2@JitAreFlag: - 0008f 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00093 48 8b 00 mov rax, QWORD PTR [rax] - 00096 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 00091 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00095 48 8b 00 mov rax, QWORD PTR [rax] + 00098 48 89 45 28 mov QWORD PTR T$4[rbp], rax $LN4@JitAreFlag: - 0009a 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 0009f 74 77 je SHORT $LN3@JitAreFlag + 0009c 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 000a1 74 77 je SHORT $LN3@JitAreFlag ; 79 : { ; 80 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000a1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000a5 8b 40 18 mov eax, DWORD PTR [rax+24] - 000a8 83 e0 01 and eax, 1 - 000ab 85 c0 test eax, eax - 000ad 74 02 je SHORT $LN5@JitAreFlag + 000a3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000a7 8b 40 18 mov eax, DWORD PTR [rax+24] + 000aa 83 e0 01 and eax, 1 + 000ad 85 c0 test eax, eax + 000af 74 02 je SHORT $LN5@JitAreFlag ; 81 : continue; - 000af eb de jmp SHORT $LN2@JitAreFlag + 000b1 eb de jmp SHORT $LN2@JitAreFlag $LN5@JitAreFlag: ; 82 : ; 83 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); - 000b1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000b5 48 83 c0 30 add rax, 48 ; 00000030H - 000b9 48 8b c8 mov rcx, rax - 000bc e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 000c1 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax + 000b3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000b7 48 83 c0 30 add rax, 48 ; 00000030H + 000bb 48 8b c8 mov rcx, rax + 000be e8 00 00 00 00 call xed_decoded_inst_get_rflags_info + 000c3 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax ; 84 : CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags); - 000c5 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000c9 e8 00 00 00 00 call xed_simple_flag_get_read_flag_set - 000ce 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax + 000c7 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] + 000cb e8 00 00 00 00 call xed_simple_flag_get_read_flag_set + 000d0 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax ; 85 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - 000d2 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000d6 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 000db 48 89 85 88 00 + 000d4 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] + 000d8 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set + 000dd 48 89 85 88 00 00 00 mov QWORD PTR FlagsWritten$7[rbp], rax ; 86 : ; 87 : if (JitCheckFlagCollisions(FlagsRead, Ledger)) - 000e2 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] - 000e5 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] - 000e9 e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions - 000ee 85 c0 test eax, eax - 000f0 74 04 je SHORT $LN6@JitAreFlag + 000e4 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] + 000e7 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] + 000eb e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions + 000f0 85 c0 test eax, eax + 000f2 74 04 je SHORT $LN6@JitAreFlag ; 88 : return FALSE; - 000f2 33 c0 xor eax, eax - 000f4 eb 24 jmp SHORT $LN1@JitAreFlag + 000f4 33 c0 xor eax, eax + 000f6 eb 24 jmp SHORT $LN1@JitAreFlag $LN6@JitAreFlag: ; 89 : ; 90 : JitUpdateConFlagsLedger(FlagsWritten, &Ledger); - 000f6 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] - 000fa 48 8b 8d 88 00 + 000f8 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] + 000fc 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR FlagsWritten$7[rbp] - 00101 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger + 00103 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger ; 91 : ; 92 : if (Ledger.flat == 0) - 00106 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 - 0010a 75 07 jne SHORT $LN7@JitAreFlag + 00108 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 + 0010c 75 07 jne SHORT $LN7@JitAreFlag ; 93 : return TRUE; - 0010c b8 01 00 00 00 mov eax, 1 - 00111 eb 07 jmp SHORT $LN1@JitAreFlag + 0010e b8 01 00 00 00 mov eax, 1 + 00113 eb 07 jmp SHORT $LN1@JitAreFlag $LN7@JitAreFlag: ; 94 : } - 00113 e9 77 ff ff ff jmp $LN2@JitAreFlag + 00115 e9 77 ff ff ff jmp $LN2@JitAreFlag $LN3@JitAreFlag: ; 95 : return FALSE; - 00118 33 c0 xor eax, eax + 0011a 33 c0 xor eax, eax $LN1@JitAreFlag: ; 96 : } - 0011a 48 8b f8 mov rdi, rax - 0011d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00121 48 8d 15 00 00 + 0011c 48 8b f8 mov rdi, rax + 0011f 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00123 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcFrameData - 00128 e8 00 00 00 00 call _RTC_CheckStackVars - 0012d 48 8b c7 mov rax, rdi - 00130 48 8b 8d 58 01 + 0012a e8 00 00 00 00 call _RTC_CheckStackVars + 0012f 48 8b c7 mov rax, rdi + 00132 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00137 48 33 cd xor rcx, rbp - 0013a e8 00 00 00 00 call __security_check_cookie - 0013f 48 8d a5 68 01 + 00139 48 33 cd xor rcx, rbp + 0013c e8 00 00 00 00 call __security_check_cookie + 00141 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00146 5f pop rdi - 00147 5d pop rbp - 00148 c3 ret 0 + 00148 5f pop rdi + 00149 5d pop rbp + 0014a c3 ret 0 ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitAreFlagsClobberedBeforeUse _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT SimpleFlags$ = 8 @@ -5463,83 +5330,77 @@ $LN5: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 55 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction); - 00036 48 8b 85 40 01 + 0001f 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0003d 48 83 c0 30 add rax, 48 ; 00000030H - 00041 48 8b c8 mov rcx, rax - 00044 e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 00049 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax + 00026 48 83 c0 30 add rax, 48 ; 00000030H + 0002a 48 8b c8 mov rcx, rax + 0002d e8 00 00 00 00 call xed_decoded_inst_get_rflags_info + 00032 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax ; 56 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - 0004d 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 00051 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 00056 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax + 00036 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] + 0003a e8 00 00 00 00 call xed_simple_flag_get_written_flag_set + 0003f 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax ; 57 : CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); - 0005a 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 0005e e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set - 00063 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax + 00043 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] + 00047 e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set + 0004c 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax ; 58 : ; 59 : return (FlagsWritten->s.zf && - 00067 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0006b 8b 00 mov eax, DWORD PTR [rax] - 0006d c1 e8 06 shr eax, 6 - 00070 83 e0 01 and eax, 1 - 00073 85 c0 test eax, eax - 00075 74 59 je SHORT $LN3@JitDoesIns - 00077 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0007b 8b 00 mov eax, DWORD PTR [rax] - 0007d c1 e8 07 shr eax, 7 - 00080 83 e0 01 and eax, 1 - 00083 85 c0 test eax, eax - 00085 74 49 je SHORT $LN3@JitDoesIns - 00087 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0008b 8b 00 mov eax, DWORD PTR [rax] - 0008d c1 e8 02 shr eax, 2 - 00090 83 e0 01 and eax, 1 - 00093 85 c0 test eax, eax - 00095 74 39 je SHORT $LN3@JitDoesIns - 00097 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0009b 8b 00 mov eax, DWORD PTR [rax] - 0009d c1 e8 0b shr eax, 11 - 000a0 83 e0 01 and eax, 1 - 000a3 85 c0 test eax, eax - 000a5 74 29 je SHORT $LN3@JitDoesIns - 000a7 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 000ab 8b 00 mov eax, DWORD PTR [rax] - 000ad 83 e0 01 and eax, 1 - 000b0 85 c0 test eax, eax - 000b2 74 1c je SHORT $LN3@JitDoesIns - 000b4 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] - 000b8 8b 00 mov eax, DWORD PTR [rax] - 000ba c1 e8 04 shr eax, 4 - 000bd 83 e0 01 and eax, 1 - 000c0 85 c0 test eax, eax - 000c2 74 0c je SHORT $LN3@JitDoesIns - 000c4 c7 85 14 01 00 + 00050 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 00054 8b 00 mov eax, DWORD PTR [rax] + 00056 c1 e8 06 shr eax, 6 + 00059 83 e0 01 and eax, 1 + 0005c 85 c0 test eax, eax + 0005e 74 59 je SHORT $LN3@JitDoesIns + 00060 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 00064 8b 00 mov eax, DWORD PTR [rax] + 00066 c1 e8 07 shr eax, 7 + 00069 83 e0 01 and eax, 1 + 0006c 85 c0 test eax, eax + 0006e 74 49 je SHORT $LN3@JitDoesIns + 00070 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 00074 8b 00 mov eax, DWORD PTR [rax] + 00076 c1 e8 02 shr eax, 2 + 00079 83 e0 01 and eax, 1 + 0007c 85 c0 test eax, eax + 0007e 74 39 je SHORT $LN3@JitDoesIns + 00080 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 00084 8b 00 mov eax, DWORD PTR [rax] + 00086 c1 e8 0b shr eax, 11 + 00089 83 e0 01 and eax, 1 + 0008c 85 c0 test eax, eax + 0008e 74 29 je SHORT $LN3@JitDoesIns + 00090 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 00094 8b 00 mov eax, DWORD PTR [rax] + 00096 83 e0 01 and eax, 1 + 00099 85 c0 test eax, eax + 0009b 74 1c je SHORT $LN3@JitDoesIns + 0009d 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] + 000a1 8b 00 mov eax, DWORD PTR [rax] + 000a3 c1 e8 04 shr eax, 4 + 000a6 83 e0 01 and eax, 1 + 000a9 85 c0 test eax, eax + 000ab 74 0c je SHORT $LN3@JitDoesIns + 000ad c7 85 14 01 00 00 01 00 00 00 mov DWORD PTR tv132[rbp], 1 - 000ce eb 0a jmp SHORT $LN4@JitDoesIns + 000b7 eb 0a jmp SHORT $LN4@JitDoesIns $LN3@JitDoesIns: - 000d0 c7 85 14 01 00 + 000b9 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv132[rbp], 0 $LN4@JitDoesIns: - 000da 8b 85 14 01 00 + 000c3 8b 85 14 01 00 00 mov eax, DWORD PTR tv132[rbp] ; 60 : FlagsWritten->s.sf && @@ -5550,15 +5411,15 @@ $LN4@JitDoesIns: ; 65 : ); ; 66 : } - 000e0 48 8d a5 28 01 + 000c9 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000e7 5f pop rdi - 000e8 5d pop rbp - 000e9 c3 ret 0 + 000d0 5f pop rdi + 000d1 5d pop rbp + 000d2 c3 ret 0 ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitDoesInstOverriteConditionFlags _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z _TEXT SEGMENT FlagsWritten$ = 224 @@ -5575,152 +5436,146 @@ $LN9: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 39 : if (FlagsWritten->s.zf) - 0003b 48 8b 85 e0 00 + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00042 8b 00 mov eax, DWORD PTR [rax] - 00044 c1 e8 06 shr eax, 6 - 00047 83 e0 01 and eax, 1 - 0004a 85 c0 test eax, eax - 0004c 74 15 je SHORT $LN2@JitUpdateC + 0002b 8b 00 mov eax, DWORD PTR [rax] + 0002d c1 e8 06 shr eax, 6 + 00030 83 e0 01 and eax, 1 + 00033 85 c0 test eax, eax + 00035 74 15 je SHORT $LN2@JitUpdateC ; 40 : Ledger->s.zf = FALSE; - 0004e 48 8b 85 e8 00 + 00037 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 00055 8b 00 mov eax, DWORD PTR [rax] - 00057 83 e0 bf and eax, -65 ; ffffffbfH - 0005a 48 8b 8d e8 00 + 0003e 8b 00 mov eax, DWORD PTR [rax] + 00040 83 e0 bf and eax, -65 ; ffffffbfH + 00043 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00061 89 01 mov DWORD PTR [rcx], eax + 0004a 89 01 mov DWORD PTR [rcx], eax $LN2@JitUpdateC: ; 41 : if (FlagsWritten->s.sf) - 00063 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 0006a 8b 00 mov eax, DWORD PTR [rax] - 0006c c1 e8 07 shr eax, 7 - 0006f 83 e0 01 and eax, 1 - 00072 85 c0 test eax, eax - 00074 74 16 je SHORT $LN3@JitUpdateC + 00053 8b 00 mov eax, DWORD PTR [rax] + 00055 c1 e8 07 shr eax, 7 + 00058 83 e0 01 and eax, 1 + 0005b 85 c0 test eax, eax + 0005d 74 16 je SHORT $LN3@JitUpdateC ; 42 : Ledger->s.sf = FALSE; - 00076 48 8b 85 e8 00 + 0005f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0007d 8b 00 mov eax, DWORD PTR [rax] - 0007f 0f ba f0 07 btr eax, 7 - 00083 48 8b 8d e8 00 + 00066 8b 00 mov eax, DWORD PTR [rax] + 00068 0f ba f0 07 btr eax, 7 + 0006c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 0008a 89 01 mov DWORD PTR [rcx], eax + 00073 89 01 mov DWORD PTR [rcx], eax $LN3@JitUpdateC: ; 43 : if (FlagsWritten->s.pf) - 0008c 48 8b 85 e0 00 + 00075 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00093 8b 00 mov eax, DWORD PTR [rax] - 00095 c1 e8 02 shr eax, 2 - 00098 83 e0 01 and eax, 1 - 0009b 85 c0 test eax, eax - 0009d 74 15 je SHORT $LN4@JitUpdateC + 0007c 8b 00 mov eax, DWORD PTR [rax] + 0007e c1 e8 02 shr eax, 2 + 00081 83 e0 01 and eax, 1 + 00084 85 c0 test eax, eax + 00086 74 15 je SHORT $LN4@JitUpdateC ; 44 : Ledger->s.pf = FALSE; - 0009f 48 8b 85 e8 00 + 00088 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000a6 8b 00 mov eax, DWORD PTR [rax] - 000a8 83 e0 fb and eax, -5 ; fffffffbH - 000ab 48 8b 8d e8 00 + 0008f 8b 00 mov eax, DWORD PTR [rax] + 00091 83 e0 fb and eax, -5 ; fffffffbH + 00094 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 000b2 89 01 mov DWORD PTR [rcx], eax + 0009b 89 01 mov DWORD PTR [rcx], eax $LN4@JitUpdateC: ; 45 : if (FlagsWritten->s.of) - 000b4 48 8b 85 e0 00 + 0009d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000bb 8b 00 mov eax, DWORD PTR [rax] - 000bd c1 e8 0b shr eax, 11 - 000c0 83 e0 01 and eax, 1 - 000c3 85 c0 test eax, eax - 000c5 74 16 je SHORT $LN5@JitUpdateC + 000a4 8b 00 mov eax, DWORD PTR [rax] + 000a6 c1 e8 0b shr eax, 11 + 000a9 83 e0 01 and eax, 1 + 000ac 85 c0 test eax, eax + 000ae 74 16 je SHORT $LN5@JitUpdateC ; 46 : Ledger->s.of = FALSE; - 000c7 48 8b 85 e8 00 + 000b0 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000ce 8b 00 mov eax, DWORD PTR [rax] - 000d0 0f ba f0 0b btr eax, 11 - 000d4 48 8b 8d e8 00 + 000b7 8b 00 mov eax, DWORD PTR [rax] + 000b9 0f ba f0 0b btr eax, 11 + 000bd 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 000db 89 01 mov DWORD PTR [rcx], eax + 000c4 89 01 mov DWORD PTR [rcx], eax $LN5@JitUpdateC: ; 47 : if (FlagsWritten->s.cf) - 000dd 48 8b 85 e0 00 + 000c6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000e4 8b 00 mov eax, DWORD PTR [rax] - 000e6 83 e0 01 and eax, 1 - 000e9 85 c0 test eax, eax - 000eb 74 15 je SHORT $LN6@JitUpdateC + 000cd 8b 00 mov eax, DWORD PTR [rax] + 000cf 83 e0 01 and eax, 1 + 000d2 85 c0 test eax, eax + 000d4 74 15 je SHORT $LN6@JitUpdateC ; 48 : Ledger->s.cf = FALSE; - 000ed 48 8b 85 e8 00 + 000d6 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000f4 8b 00 mov eax, DWORD PTR [rax] - 000f6 83 e0 fe and eax, -2 ; fffffffeH - 000f9 48 8b 8d e8 00 + 000dd 8b 00 mov eax, DWORD PTR [rax] + 000df 83 e0 fe and eax, -2 ; fffffffeH + 000e2 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00100 89 01 mov DWORD PTR [rcx], eax + 000e9 89 01 mov DWORD PTR [rcx], eax $LN6@JitUpdateC: ; 49 : if (FlagsWritten->s.af) - 00102 48 8b 85 e0 00 + 000eb 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00109 8b 00 mov eax, DWORD PTR [rax] - 0010b c1 e8 04 shr eax, 4 - 0010e 83 e0 01 and eax, 1 - 00111 85 c0 test eax, eax - 00113 74 15 je SHORT $LN7@JitUpdateC + 000f2 8b 00 mov eax, DWORD PTR [rax] + 000f4 c1 e8 04 shr eax, 4 + 000f7 83 e0 01 and eax, 1 + 000fa 85 c0 test eax, eax + 000fc 74 15 je SHORT $LN7@JitUpdateC ; 50 : Ledger->s.af = FALSE; - 00115 48 8b 85 e8 00 + 000fe 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0011c 8b 00 mov eax, DWORD PTR [rax] - 0011e 83 e0 ef and eax, -17 ; ffffffefH - 00121 48 8b 8d e8 00 + 00105 8b 00 mov eax, DWORD PTR [rax] + 00107 83 e0 ef and eax, -17 ; ffffffefH + 0010a 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00128 89 01 mov DWORD PTR [rcx], eax + 00111 89 01 mov DWORD PTR [rcx], eax $LN7@JitUpdateC: ; 51 : } - 0012a 48 8d a5 c8 00 + 00113 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00131 5f pop rdi - 00132 5d pop rbp - 00133 c3 ret 0 + 0011a 5f pop rdi + 0011b 5d pop rbp + 0011c c3 ret 0 ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ENDP ; JitUpdateConFlagsLedger _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z _TEXT SEGMENT tv165 = 192 @@ -5738,140 +5593,134 @@ $LN11: 0000b 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 28 : return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) || - 0003a 48 8b 85 f0 00 + 00023 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00041 8b 00 mov eax, DWORD PTR [rax] - 00043 c1 e8 06 shr eax, 6 - 00046 83 e0 01 and eax, 1 - 00049 85 c0 test eax, eax - 0004b 74 23 je SHORT $LN3@JitCheckFl - 0004d 48 8b 85 f0 00 + 0002a 8b 00 mov eax, DWORD PTR [rax] + 0002c c1 e8 06 shr eax, 6 + 0002f 83 e0 01 and eax, 1 + 00032 85 c0 test eax, eax + 00034 74 23 je SHORT $LN3@JitCheckFl + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00054 8b 00 mov eax, DWORD PTR [rax] - 00056 c1 e8 06 shr eax, 6 - 00059 83 e0 01 and eax, 1 - 0005c 8b 8d f8 00 00 + 0003d 8b 00 mov eax, DWORD PTR [rax] + 0003f c1 e8 06 shr eax, 6 + 00042 83 e0 01 and eax, 1 + 00045 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00062 c1 e9 06 shr ecx, 6 - 00065 83 e1 01 and ecx, 1 - 00068 3b c1 cmp eax, ecx - 0006a 0f 84 05 01 00 + 0004b c1 e9 06 shr ecx, 6 + 0004e 83 e1 01 and ecx, 1 + 00051 3b c1 cmp eax, ecx + 00053 0f 84 05 01 00 00 je $LN5@JitCheckFl $LN3@JitCheckFl: - 00070 48 8b 85 f0 00 + 00059 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00077 8b 00 mov eax, DWORD PTR [rax] - 00079 c1 e8 07 shr eax, 7 - 0007c 83 e0 01 and eax, 1 - 0007f 85 c0 test eax, eax - 00081 74 23 je SHORT $LN4@JitCheckFl - 00083 48 8b 85 f0 00 + 00060 8b 00 mov eax, DWORD PTR [rax] + 00062 c1 e8 07 shr eax, 7 + 00065 83 e0 01 and eax, 1 + 00068 85 c0 test eax, eax + 0006a 74 23 je SHORT $LN4@JitCheckFl + 0006c 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0008a 8b 00 mov eax, DWORD PTR [rax] - 0008c c1 e8 07 shr eax, 7 - 0008f 83 e0 01 and eax, 1 - 00092 8b 8d f8 00 00 + 00073 8b 00 mov eax, DWORD PTR [rax] + 00075 c1 e8 07 shr eax, 7 + 00078 83 e0 01 and eax, 1 + 0007b 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00098 c1 e9 07 shr ecx, 7 - 0009b 83 e1 01 and ecx, 1 - 0009e 3b c1 cmp eax, ecx - 000a0 0f 84 cf 00 00 + 00081 c1 e9 07 shr ecx, 7 + 00084 83 e1 01 and ecx, 1 + 00087 3b c1 cmp eax, ecx + 00089 0f 84 cf 00 00 00 je $LN5@JitCheckFl $LN4@JitCheckFl: - 000a6 48 8b 85 f0 00 + 0008f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000ad 8b 00 mov eax, DWORD PTR [rax] - 000af c1 e8 02 shr eax, 2 - 000b2 83 e0 01 and eax, 1 - 000b5 85 c0 test eax, eax - 000b7 74 23 je SHORT $LN6@JitCheckFl - 000b9 48 8b 85 f0 00 + 00096 8b 00 mov eax, DWORD PTR [rax] + 00098 c1 e8 02 shr eax, 2 + 0009b 83 e0 01 and eax, 1 + 0009e 85 c0 test eax, eax + 000a0 74 23 je SHORT $LN6@JitCheckFl + 000a2 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000c0 8b 00 mov eax, DWORD PTR [rax] - 000c2 c1 e8 02 shr eax, 2 - 000c5 83 e0 01 and eax, 1 - 000c8 8b 8d f8 00 00 + 000a9 8b 00 mov eax, DWORD PTR [rax] + 000ab c1 e8 02 shr eax, 2 + 000ae 83 e0 01 and eax, 1 + 000b1 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 000ce c1 e9 02 shr ecx, 2 - 000d1 83 e1 01 and ecx, 1 - 000d4 3b c1 cmp eax, ecx - 000d6 0f 84 99 00 00 + 000b7 c1 e9 02 shr ecx, 2 + 000ba 83 e1 01 and ecx, 1 + 000bd 3b c1 cmp eax, ecx + 000bf 0f 84 99 00 00 00 je $LN5@JitCheckFl $LN6@JitCheckFl: - 000dc 48 8b 85 f0 00 + 000c5 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000e3 8b 00 mov eax, DWORD PTR [rax] - 000e5 c1 e8 0b shr eax, 11 - 000e8 83 e0 01 and eax, 1 - 000eb 85 c0 test eax, eax - 000ed 74 1f je SHORT $LN7@JitCheckFl - 000ef 48 8b 85 f0 00 + 000cc 8b 00 mov eax, DWORD PTR [rax] + 000ce c1 e8 0b shr eax, 11 + 000d1 83 e0 01 and eax, 1 + 000d4 85 c0 test eax, eax + 000d6 74 1f je SHORT $LN7@JitCheckFl + 000d8 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000f6 8b 00 mov eax, DWORD PTR [rax] - 000f8 c1 e8 0b shr eax, 11 - 000fb 83 e0 01 and eax, 1 - 000fe 8b 8d f8 00 00 + 000df 8b 00 mov eax, DWORD PTR [rax] + 000e1 c1 e8 0b shr eax, 11 + 000e4 83 e0 01 and eax, 1 + 000e7 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00104 c1 e9 0b shr ecx, 11 - 00107 83 e1 01 and ecx, 1 - 0010a 3b c1 cmp eax, ecx - 0010c 74 67 je SHORT $LN5@JitCheckFl + 000ed c1 e9 0b shr ecx, 11 + 000f0 83 e1 01 and ecx, 1 + 000f3 3b c1 cmp eax, ecx + 000f5 74 67 je SHORT $LN5@JitCheckFl $LN7@JitCheckFl: - 0010e 48 8b 85 f0 00 + 000f7 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00115 8b 00 mov eax, DWORD PTR [rax] - 00117 83 e0 01 and eax, 1 - 0011a 85 c0 test eax, eax - 0011c 74 19 je SHORT $LN8@JitCheckFl - 0011e 48 8b 85 f0 00 + 000fe 8b 00 mov eax, DWORD PTR [rax] + 00100 83 e0 01 and eax, 1 + 00103 85 c0 test eax, eax + 00105 74 19 je SHORT $LN8@JitCheckFl + 00107 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00125 8b 00 mov eax, DWORD PTR [rax] - 00127 83 e0 01 and eax, 1 - 0012a 8b 8d f8 00 00 + 0010e 8b 00 mov eax, DWORD PTR [rax] + 00110 83 e0 01 and eax, 1 + 00113 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00130 83 e1 01 and ecx, 1 - 00133 3b c1 cmp eax, ecx - 00135 74 3e je SHORT $LN5@JitCheckFl + 00119 83 e1 01 and ecx, 1 + 0011c 3b c1 cmp eax, ecx + 0011e 74 3e je SHORT $LN5@JitCheckFl $LN8@JitCheckFl: - 00137 48 8b 85 f0 00 + 00120 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0013e 8b 00 mov eax, DWORD PTR [rax] - 00140 c1 e8 04 shr eax, 4 - 00143 83 e0 01 and eax, 1 - 00146 85 c0 test eax, eax - 00148 74 1f je SHORT $LN9@JitCheckFl - 0014a 48 8b 85 f0 00 + 00127 8b 00 mov eax, DWORD PTR [rax] + 00129 c1 e8 04 shr eax, 4 + 0012c 83 e0 01 and eax, 1 + 0012f 85 c0 test eax, eax + 00131 74 1f je SHORT $LN9@JitCheckFl + 00133 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00151 8b 00 mov eax, DWORD PTR [rax] - 00153 c1 e8 04 shr eax, 4 - 00156 83 e0 01 and eax, 1 - 00159 8b 8d f8 00 00 + 0013a 8b 00 mov eax, DWORD PTR [rax] + 0013c c1 e8 04 shr eax, 4 + 0013f 83 e0 01 and eax, 1 + 00142 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 0015f c1 e9 04 shr ecx, 4 - 00162 83 e1 01 and ecx, 1 - 00165 3b c1 cmp eax, ecx - 00167 74 0c je SHORT $LN5@JitCheckFl + 00148 c1 e9 04 shr ecx, 4 + 0014b 83 e1 01 and ecx, 1 + 0014e 3b c1 cmp eax, ecx + 00150 74 0c je SHORT $LN5@JitCheckFl $LN9@JitCheckFl: - 00169 c7 85 c0 00 00 + 00152 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 - 00173 eb 0a jmp SHORT $LN10@JitCheckFl + 0015c eb 0a jmp SHORT $LN10@JitCheckFl $LN5@JitCheckFl: - 00175 c7 85 c0 00 00 + 0015e c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 $LN10@JitCheckFl: - 0017f 8b 85 c0 00 00 + 00168 8b 85 c0 00 00 00 mov eax, DWORD PTR tv165[rbp] ; 29 : (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || @@ -5882,15 +5731,15 @@ $LN10@JitCheckFl: ; 34 : ); ; 35 : } - 00185 48 8d a5 d8 00 + 0016e 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0018c 5f pop rdi - 0018d 5d pop rbp - 0018e c3 ret 0 + 00175 5f pop rdi + 00176 5d pop rbp + 00177 c3 ret 0 ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ENDP ; JitCheckFlagCollisions _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -5911,98 +5760,98 @@ $LN6: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00018 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 40 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 19 : UCHAR RawData[] = { 0x9D }; - 00047 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH + 00049 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH ; 20 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, 1); - 0004b b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00055 48 89 85 28 01 + 0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00057 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0005c 48 83 bd 28 01 + 0005e 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00064 74 2c je SHORT $LN3@JitEmitPop - 00066 c7 44 24 20 00 + 00066 74 2c je SHORT $LN3@JitEmitPop + 00068 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0006e 41 b9 01 00 00 + 00070 41 b9 01 00 00 00 mov r9d, 1 - 00074 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00078 ba 0c 00 00 00 mov edx, 12 - 0007d 48 8b 8d 28 01 + 00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0007a ba 0c 00 00 00 mov edx, 12 + 0007f 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00084 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00089 48 89 85 38 01 + 00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0008b 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00090 eb 0b jmp SHORT $LN4@JitEmitPop + 00092 eb 0b jmp SHORT $LN4@JitEmitPop $LN3@JitEmitPop: - 00092 48 c7 85 38 01 + 00094 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPop: - 0009d 48 8b 85 38 01 + 0009f 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a4 48 89 85 08 01 + 000a6 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ab 48 8b 85 08 01 + 000ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 21 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b6 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000ba 48 83 c0 30 add rax, 48 ; 00000030H - 000be 41 b8 01 00 00 + 000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000bc 48 83 c0 30 add rax, 48 ; 00000030H + 000c0 41 b8 01 00 00 00 mov r8d, 1 - 000c4 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000c8 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000cc 48 8b c8 mov rcx, rax - 000cf e8 00 00 00 00 call xed_decode + 000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000ce 48 8b c8 mov rcx, rax + 000d1 e8 00 00 00 00 call xed_decode ; 22 : NcAppendToBlock(Block, Link); - 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000d8 48 8b 8d 70 01 + 000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000da 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 23 : return TRUE; - 000e4 b8 01 00 00 00 mov eax, 1 + 000e6 b8 01 00 00 00 mov eax, 1 ; 24 : } - 000e9 8b f8 mov edi, eax - 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000ef 48 8d 15 00 00 + 000eb 8b f8 mov edi, eax + 000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000f1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 000f6 e8 00 00 00 00 call _RTC_CheckStackVars - 000fb 8b c7 mov eax, edi - 000fd 48 8b 8d 40 01 + 000f8 e8 00 00 00 00 call _RTC_CheckStackVars + 000fd 8b c7 mov eax, edi + 000ff 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00104 48 33 cd xor rcx, rbp - 00107 e8 00 00 00 00 call __security_check_cookie - 0010c 48 8d a5 58 01 + 00106 48 33 cd xor rcx, rbp + 00109 e8 00 00 00 00 call __security_check_cookie + 0010e 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00113 5f pop rdi - 00114 5d pop rbp - 00115 c3 ret 0 + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPopfqInst _TEXT ENDS ; COMDAT text$x @@ -6059,7 +5908,7 @@ Block$ = 368 ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPopfqInst'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -6080,98 +5929,98 @@ $LN6: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00018 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 40 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 10 : UCHAR RawData[] = { 0x9C }; - 00047 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH + 00049 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH ; 11 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, 1); - 0004b b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00055 48 89 85 28 01 + 0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00057 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0005c 48 83 bd 28 01 + 0005e 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00064 74 2c je SHORT $LN3@JitEmitPus - 00066 c7 44 24 20 00 + 00066 74 2c je SHORT $LN3@JitEmitPus + 00068 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0006e 41 b9 01 00 00 + 00070 41 b9 01 00 00 00 mov r9d, 1 - 00074 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00078 ba 0c 00 00 00 mov edx, 12 - 0007d 48 8b 8d 28 01 + 00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0007a ba 0c 00 00 00 mov edx, 12 + 0007f 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00084 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00089 48 89 85 38 01 + 00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0008b 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00090 eb 0b jmp SHORT $LN4@JitEmitPus + 00092 eb 0b jmp SHORT $LN4@JitEmitPus $LN3@JitEmitPus: - 00092 48 c7 85 38 01 + 00094 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPus: - 0009d 48 8b 85 38 01 + 0009f 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a4 48 89 85 08 01 + 000a6 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ab 48 8b 85 08 01 + 000ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 12 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b6 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000ba 48 83 c0 30 add rax, 48 ; 00000030H - 000be 41 b8 01 00 00 + 000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000bc 48 83 c0 30 add rax, 48 ; 00000030H + 000c0 41 b8 01 00 00 00 mov r8d, 1 - 000c4 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000c8 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000cc 48 8b c8 mov rcx, rax - 000cf e8 00 00 00 00 call xed_decode + 000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000ce 48 8b c8 mov rcx, rax + 000d1 e8 00 00 00 00 call xed_decode ; 13 : NcAppendToBlock(Block, Link); - 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000d8 48 8b 8d 70 01 + 000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000da 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 14 : return TRUE; - 000e4 b8 01 00 00 00 mov eax, 1 + 000e6 b8 01 00 00 00 mov eax, 1 ; 15 : } - 000e9 8b f8 mov edi, eax - 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000ef 48 8d 15 00 00 + 000eb 8b f8 mov edi, eax + 000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000f1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 000f6 e8 00 00 00 00 call _RTC_CheckStackVars - 000fb 8b c7 mov eax, edi - 000fd 48 8b 8d 40 01 + 000f8 e8 00 00 00 00 call _RTC_CheckStackVars + 000fd 8b c7 mov eax, edi + 000ff 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00104 48 33 cd xor rcx, rbp - 00107 e8 00 00 00 00 call __security_check_cookie - 0010c 48 8d a5 58 01 + 00106 48 33 cd xor rcx, rbp + 00109 e8 00 00 00 00 call __security_check_cookie + 0010e 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00113 5f pop rdi - 00114 5d pop rbp - 00115 c3 ret 0 + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPushfqInst _TEXT ENDS ; COMDAT text$x @@ -6241,32 +6090,26 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 30 00 00 00 mov edx, 48 ; 00000030H - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6281,32 +6124,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 83 c0 10 add rax, 16 - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > - 0003d 48 8d a5 c8 00 + 0001a 48 83 c0 10 add rax, 16 + 0001e 48 8b c8 mov rcx, rax + 00021 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1343 : constexpr _Ty1& _Get_first() noexcept { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6315,38 +6152,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; - - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1731 : _Alty& _Getal() noexcept { +; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6355,35 +6186,28 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1732 : return _Mypair._Get_first(); - - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1818 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first -; 1733 : } +; 1819 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -6396,7 +6220,7 @@ tv86 = 328 this$ = 368 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 1685 : void _Tidy() noexcept { // free all storage +; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6405,123 +6229,117 @@ $LN4: 00007 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1686 : auto& _My_data = _Mypair._Myval2; - - 00036 48 8b 85 70 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1756 : auto& _My_data = _Mypair._Myval2; + + 0001f 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1687 : pointer& _Myfirst = _My_data._Myfirst; +; 1757 : pointer& _Myfirst = _My_data._Myfirst; - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 83 c0 08 add rax, 8 - 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 83 c0 08 add rax, 8 + 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1688 : pointer& _Mylast = _My_data._Mylast; +; 1758 : pointer& _Mylast = _My_data._Mylast; - 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00051 48 83 c0 10 add rax, 16 - 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003a 48 83 c0 10 add rax, 16 + 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1689 : pointer& _Myend = _My_data._Myend; +; 1759 : pointer& _Myend = _My_data._Myend; - 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005d 48 83 c0 18 add rax, 24 - 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00046 48 83 c0 18 add rax, 24 + 0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1690 : -; 1691 : _My_data._Orphan_all(); +; 1760 : +; 1761 : _My_data._Orphan_all(); - 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1692 : -; 1693 : if (_Myfirst) { // destroy and deallocate old array +; 1762 : +; 1763 : if (_Myfirst) { // destroy and deallocate old array - 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00072 48 83 38 00 cmp QWORD PTR [rax], 0 - 00076 0f 84 92 00 00 + 00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0005b 48 83 38 00 cmp QWORD PTR [rax], 0 + 0005f 0f 84 92 00 00 00 je $LN2@Tidy -; 1694 : _Destroy(_Myfirst, _Mylast); +; 1764 : _Destroy(_Myfirst, _Mylast); - 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00080 4c 8b 00 mov r8, QWORD PTR [rax] - 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00087 48 8b 10 mov rdx, QWORD PTR [rax] - 0008a 48 8b 8d 70 01 + 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00069 4c 8b 00 mov r8, QWORD PTR [rax] + 0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00070 48 8b 10 mov rdx, QWORD PTR [rax] + 00073 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 00096 48 8b 8d 70 01 + 0007f 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 000a2 48 89 85 38 01 + 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0008b 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] - 000b4 48 8b 00 mov rax, QWORD PTR [rax] - 000b7 48 2b c1 sub rax, rcx - 000ba 48 c1 f8 02 sar rax, 2 - 000be 48 89 85 40 01 + 00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0009d 48 8b 00 mov rax, QWORD PTR [rax] + 000a0 48 2b c1 sub rax, rcx + 000a3 48 c1 f8 02 sar rax, 2 + 000a7 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000c9 48 8b 00 mov rax, QWORD PTR [rax] - 000cc 48 89 85 48 01 + 000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000b2 48 8b 00 mov rax, QWORD PTR [rax] + 000b5 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000d3 4c 8b 85 40 01 + 000bc 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000da 48 8b 95 48 01 + 000c3 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000e1 48 8b 8d 38 01 + 000ca 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1696 : -; 1697 : _Myfirst = pointer(); +; 1766 : +; 1767 : _Myfirst = nullptr; - 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000f1 48 c7 00 00 00 + 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000da 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1698 : _Mylast = pointer(); +; 1768 : _Mylast = nullptr; - 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000fc 48 c7 00 00 00 + 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000e5 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1699 : _Myend = pointer(); +; 1769 : _Myend = nullptr; - 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00107 48 c7 00 00 00 + 000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000f0 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN2@Tidy: -; 1700 : } -; 1701 : } +; 1770 : } +; 1771 : } - 0010e 48 8d a5 58 01 + 000f7 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 000fe 5f pop rdi + 000ff 5d pop rbp + 00100 c3 ret 0 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -6529,7 +6347,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator +; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6540,39 +6358,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1612 : _Destroy_range(_First, _Last, _Getal()); - - 00040 48 8b 8d e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1679 : // destroy [_First, _Last) using allocator +; 1680 : _Destroy_range(_First, _Last, _Getal()); + + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 4c 8b c0 mov r8, rax - 0004f 48 8b 95 f0 00 + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 4c 8b c0 mov r8, rax + 00038 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d e8 00 + 0003f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1613 : } +; 1681 : } - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -6582,7 +6395,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 672 : ~vector() noexcept { +; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6591,75 +6404,74 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 1a 00 00 00 mov ecx, 26 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 18 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 673 : _Tidy(); +; 712 : _Tidy(); - 00047 48 8b 8d 40 01 + 00049 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00053 48 8b 8d 40 01 + 00055 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0005f 48 8b d0 mov rdx, rax - 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] - 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] - 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00061 48 8b d0 mov rdx, rax + 00064 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00068 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00073 48 c7 85 04 01 + 00075 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 0007e 48 8b 85 40 01 + 00080 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00085 48 8d 95 04 01 + 00087 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00094 48 8b d0 mov rdx, rax - 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 0008e 48 8b c8 mov rcx, rax + 00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00096 48 8b d0 mov rdx, rax + 00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 678 : } +; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 717 : } - 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a4 48 8d 15 00 00 + 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData - 000ab e8 00 00 00 00 call _RTC_CheckStackVars - 000b0 90 npad 1 - 000b1 48 8b 8d 18 01 + 000ad e8 00 00 00 00 call _RTC_CheckStackVars + 000b2 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b8 48 33 cd xor rcx, rbp - 000bb e8 00 00 00 00 call __security_check_cookie - 000c0 48 8d a5 28 01 + 000b9 48 33 cd xor rcx, rbp + 000bc e8 00 00 00 00 call __security_check_cookie + 000c1 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c7 5f pop rdi - 000c8 5d pop rbp - 000c9 c3 ret 0 + 000c8 5f pop rdi + 000c9 5d pop rbp + 000ca c3 ret 0 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -6667,7 +6479,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6678,34 +6490,28 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 802 : // no overflow check on the following multiply; we assume _Allocate did that check -; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00040 48 8b 85 f0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 834 : // no overflow check on the following multiply; we assume _Allocate did that check +; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Count$[rbp] - 00047 48 c1 e0 02 shl rax, 2 - 0004b 48 8b d0 mov rdx, rax - 0004e 48 8b 8d e8 00 + 00030 48 c1 e0 02 shl rax, 2 + 00034 48 8b d0 mov rdx, rax + 00037 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6722,36 +6528,30 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -6762,7 +6562,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6774,147 +6574,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -6925,7 +6719,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6937,147 +6731,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -7088,7 +6876,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7099,104 +6887,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -7213,79 +6995,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -7304,7 +7080,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7315,371 +7091,443 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ _TEXT SEGMENT -_Lock$4 = 4 -_Pnext$5 = 40 -__$ArrayPad$ = 248 -this$ = 288 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 1205 : inline void _Container_base12::_Orphan_all() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { -$LN7: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8b 05 00 00 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 0a 00 00 00 mov ecx, 10 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 f8 00 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1207 : if (_Myproxy) { // proxy allocated, drain it +; 1096 : _Lockit _Lock(_LOCK_DEBUG); - 00047 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00052 74 6b je SHORT $LN5@Orphan_all + 00049 ba 03 00 00 00 mov edx, 3 + 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00052 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1208 : _Lockit _Lock(_LOCK_DEBUG); +; 1097 : _Orphan_all_unlocked(); - 00054 ba 03 00 00 00 mov edx, 3 - 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 0005d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00058 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked + +; 1098 : } -; 1209 : -; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { + 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00068 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData + 00079 e8 00 00 00 00 call _RTC_CheckStackVars + 0007e 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00085 48 33 cd xor rcx, rbp + 00088 e8 00 00 00 00 call __security_check_cookie + 0008d 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +_TEXT SEGMENT +_Pnext$1 = 8 +this$ = 256 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + +; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { + +$LN6: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00063 48 8b 85 20 01 +; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 + + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 83 c0 08 add rax, 8 - 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax - 00075 eb 12 jmp SHORT $LN4@Orphan_all + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 83 c0 08 add rax, 8 + 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + 00031 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0007b 48 8b 00 mov rax, QWORD PTR [rax] - 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] - 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00086 48 89 01 mov QWORD PTR [rcx], rax + 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] + 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00042 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00091 74 10 je SHORT $LN3@Orphan_all + 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00049 48 83 38 00 cmp QWORD PTR [rax], 0 + 0004d 74 10 je SHORT $LN3@Orphan_all -; 1211 : (*_Pnext)->_Myproxy = nullptr; +; 1222 : _Pnext->_Myproxy = nullptr; - 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 c7 00 00 00 + 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1212 : } +; 1223 : } - 000a1 eb d4 jmp SHORT $LN2@Orphan_all + 0005d eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1213 : -; 1214 : _Myproxy->_Myfirstiter = nullptr; +; 1224 : _Myproxy->_Myfirstiter = nullptr; - 000a3 48 8b 85 20 01 + 0005f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 8b 00 mov rax, QWORD PTR [rax] - 000ad 48 c7 40 08 00 + 00066 48 8b 00 mov rax, QWORD PTR [rax] + 00069 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1215 : } +; 1225 : } - 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000b9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ -$LN5@Orphan_all: + 00071 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1217 : } +; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c3 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData - 000ca e8 00 00 00 00 call _RTC_CheckStackVars - 000cf 90 npad 1 - 000d0 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d7 48 33 cd xor rcx, rbp - 000da e8 00 00 00 00 call __security_check_cookie - 000df 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e6 5f pop rdi - 000e7 5d pop rbp - 000e8 c3 ret 0 +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1229 : if (_Myproxy) { // proxy allocated, drain it + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0c je SHORT $LN2@Orphan_all + +; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1231 : if (_STD is_constant_evaluated()) { +; 1232 : _Orphan_all_unlocked(); +; 1233 : } else +; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1235 : { +; 1236 : _Orphan_all_locked(); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked +$LN2@Orphan_all: + +; 1237 : } +; 1238 : } +; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1240 : } + + 00038 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -7690,7 +7538,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7700,192 +7548,186 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 134 : _Bytes += _Non_user_size; - - 0003b 48 8b 85 68 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 155 : _Bytes += _Non_user_size; + + 00024 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 83 c0 2f add rax, 47 ; 0000002fH - 00049 48 8b 8d 68 01 + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 83 c0 2f add rax, 47 ; 0000002fH + 00032 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00050 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 89 01 mov QWORD PTR [rcx], rax -; 135 : -; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 156 : +; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00053 48 8b 85 60 01 + 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0005a 48 8b 00 mov rax, QWORD PTR [rax] - 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00061 b8 08 00 00 00 mov eax, 8 - 00066 48 6b c0 ff imul rax, rax, -1 - 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 0004a b8 08 00 00 00 mov eax, 8 + 0004f 48 6b c0 ff imul rax, rax, -1 + 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 138 : -; 139 : // If the following asserts, it likely means that we are performing -; 140 : // an aligned delete on memory coming from an unaligned allocation. -; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - - 00076 b8 08 00 00 00 mov eax, 8 - 0007b 48 6b c0 fe imul rax, rax, -2 - 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00083 48 ba fa fa fa +; 159 : +; 160 : // If the following asserts, it likely means that we are performing +; 161 : // an aligned delete on memory coming from an unaligned allocation. +; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); + + 0005f b8 08 00 00 00 mov eax, 8 + 00064 48 6b c0 fe imul rax, rax, -2 + 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006c 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 00091 75 02 jne SHORT $LN14@Adjust_man - 00093 eb 77 jmp SHORT $LN15@Adjust_man + 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 0007a 75 02 jne SHORT $LN14@Adjust_man + 0007c eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 00095 8b 05 00 00 00 + 0007e 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0009b 83 c0 09 add eax, 9 - 0009e 48 8d 0d 00 00 + 00084 83 c0 09 add eax, 9 + 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 000aa 48 8d 0d 00 00 + 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00093 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 000b6 45 33 c9 xor r9d, r9d - 000b9 44 8b c0 mov r8d, eax - 000bc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000c3 b9 02 00 00 00 mov ecx, 2 - 000c8 ff 15 00 00 00 + 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0009f 45 33 c9 xor r9d, r9d + 000a2 44 8b c0 mov r8d, eax + 000a5 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000ac b9 02 00 00 00 mov ecx, 2 + 000b1 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000ce 83 f8 01 cmp eax, 1 - 000d1 75 03 jne SHORT $LN19@Adjust_man - 000d3 cc int 3 - 000d4 33 c0 xor eax, eax + 000b7 83 f8 01 cmp eax, 1 + 000ba 75 03 jne SHORT $LN19@Adjust_man + 000bc cc int 3 + 000bd 33 c0 xor eax, eax $LN19@Adjust_man: - 000d6 8b 05 00 00 00 + 000bf 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000dc 83 c0 09 add eax, 9 - 000df 48 c7 44 24 20 + 000c5 83 c0 09 add eax, 9 + 000c8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000e8 44 8b c8 mov r9d, eax - 000eb 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000f2 48 8d 15 00 00 + 000d1 44 8b c8 mov r9d, eax + 000d4 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000db 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000f9 48 8d 0d 00 00 + 000e2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00100 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00106 33 c0 xor eax, eax - 00108 85 c0 test eax, eax - 0010a 75 89 jne SHORT $LN7@Adjust_man + 000ef 33 c0 xor eax, eax + 000f1 85 c0 test eax, eax + 000f3 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 0010c 33 c0 xor eax, eax - 0010e 85 c0 test eax, eax - 00110 0f 85 60 ff ff + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 142 : -; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 144 : // in range [_Min_back_shift, _Non_user_size] -; 145 : #ifdef _DEBUG -; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 163 : +; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 165 : // in range [_Min_back_shift, _Non_user_size] +; 166 : #ifdef _DEBUG +; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 00116 48 c7 45 48 10 + 000ff 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 149 : #endif // _DEBUG -; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 170 : #endif // _DEBUG +; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 0011e 48 8b 85 60 01 + 00107 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00129 48 8b 00 mov rax, QWORD PTR [rax] - 0012c 48 2b c1 sub rax, rcx - 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00112 48 8b 00 mov rax, QWORD PTR [rax] + 00115 48 2b c1 sub rax, rcx + 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00138 72 09 jb SHORT $LN16@Adjust_man - 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 0013f 77 02 ja SHORT $LN16@Adjust_man - 00141 eb 77 jmp SHORT $LN17@Adjust_man + 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00121 72 09 jb SHORT $LN16@Adjust_man + 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 00128 77 02 ja SHORT $LN16@Adjust_man + 0012a eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 00143 8b 05 00 00 00 + 0012c 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00149 83 c0 13 add eax, 19 - 0014c 48 8d 0d 00 00 + 00132 83 c0 13 add eax, 19 + 00135 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00158 48 8d 0d 00 00 + 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00141 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00164 45 33 c9 xor r9d, r9d - 00167 44 8b c0 mov r8d, eax - 0016a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00171 b9 02 00 00 00 mov ecx, 2 - 00176 ff 15 00 00 00 + 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0014d 45 33 c9 xor r9d, r9d + 00150 44 8b c0 mov r8d, eax + 00153 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0015a b9 02 00 00 00 mov ecx, 2 + 0015f ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0017c 83 f8 01 cmp eax, 1 - 0017f 75 03 jne SHORT $LN20@Adjust_man - 00181 cc int 3 - 00182 33 c0 xor eax, eax + 00165 83 f8 01 cmp eax, 1 + 00168 75 03 jne SHORT $LN20@Adjust_man + 0016a cc int 3 + 0016b 33 c0 xor eax, eax $LN20@Adjust_man: - 00184 8b 05 00 00 00 + 0016d 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0018a 83 c0 13 add eax, 19 - 0018d 48 c7 44 24 20 + 00173 83 c0 13 add eax, 19 + 00176 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00196 44 8b c8 mov r9d, eax - 00199 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 001a0 48 8d 15 00 00 + 0017f 44 8b c8 mov r9d, eax + 00182 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00189 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 001a7 48 8d 0d 00 00 + 00190 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 001ae ff 15 00 00 00 + 00197 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 001b4 33 c0 xor eax, eax - 001b6 85 c0 test eax, eax - 001b8 75 89 jne SHORT $LN13@Adjust_man + 0019d 33 c0 xor eax, eax + 0019f 85 c0 test eax, eax + 001a1 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001ba 33 c0 xor eax, eax - 001bc 85 c0 test eax, eax - 001be 0f 85 6f ff ff + 001a3 33 c0 xor eax, eax + 001a5 85 c0 test eax, eax + 001a7 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 152 : _Ptr = reinterpret_cast(_Ptr_container); +; 173 : _Ptr = reinterpret_cast(_Ptr_container); - 001c4 48 8b 85 60 01 + 001ad 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001cf 48 89 08 mov QWORD PTR [rax], rcx + 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001b8 48 89 08 mov QWORD PTR [rax], rcx -; 153 : } +; 174 : } - 001d2 48 8d a5 48 01 + 001bb 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001d9 5f pop rdi - 001da 5d pop rbp - 001db c3 ret 0 + 001c2 5f pop rdi + 001c3 5d pop rbp + 001c4 c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -7908,40 +7750,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7958,25 +7794,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7991,25 +7820,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -8024,25 +7846,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -8055,21 +7870,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Junk.cod b/CodeVirtualizer/x64/Debug/Junk.cod index 91469f3..63c27c4 100644 --- a/CodeVirtualizer/x64/Debug/Junk.cod +++ b/CodeVirtualizer/x64/Debug/Junk.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__74DFB793_Junk@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -94,9 +95,9 @@ PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -114,68 +115,67 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -196,53 +196,58 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -287,90 +292,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -380,7 +333,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -391,7 +344,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -403,147 +356,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -554,7 +501,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -566,147 +513,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -717,7 +658,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -728,104 +669,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -842,79 +777,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -933,7 +862,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -944,251 +873,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1211,40 +1140,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1261,25 +1184,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1294,25 +1210,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1327,25 +1236,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1358,21 +1260,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Main.cod b/CodeVirtualizer/x64/Debug/Main.cod index c711024..666c8c0 100644 --- a/CodeVirtualizer/x64/Debug/Main.cod +++ b/CodeVirtualizer/x64/Debug/Main.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -31,64 +31,66 @@ __A118E6DC_stralign@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__0A4FAB91_cmath DB 01H +__80A05712_cstdlib DB 01H +__6D66DEAE_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 -__5DDA4519_cstddef DB 01H -__85A9AA98_type_traits DB 01H -__4324C6B3_xutility DB 01H +__256B8DBF_cstddef DB 01H +__D1154D4E_type_traits DB 01H +__7CE971A6_xutility DB 01H __20BB4341_malloc@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 +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__44860E64_limits DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h 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 -__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 -__8266A2FD_iomanip DB 01H +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__F05DDCE0_fstream DB 01H +__8CFB8476_string 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 +__B7ADD299_utility 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 +__40B2458B_xstddef DB 01H +__FAD76A5B_iomanip DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS _DATA SEGMENT ?TestBuffer@@3PAEA DB 048H ; TestBuffer @@ -240,12 +242,14 @@ 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 ??$_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 ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy +PUBLIC ?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_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 @@ -265,7 +269,8 @@ PUBLIC ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_Stri 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 ?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::_Erase_noexcept +PUBLIC ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@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 @@ -308,11 +313,11 @@ 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 ?PrintByteArr@@YAXPEAXK@Z ; PrintByteArr -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 ?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 > @@ -364,7 +369,7 @@ PUBLIC ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple 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 ??R@@QEBA@QEADQEBD_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 @@ -375,6 +380,7 @@ PUBLIC ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@ 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 ??$_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 ??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 > @@ -384,9 +390,10 @@ PUBLIC ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Face 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 ??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z ; std::_Voidify_iter 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 ??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@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 @@ -409,8 +416,8 @@ PUBLIC _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' PUBLIC ??_C@_0BA@JFNIOLAK@string?5too?5long@ ; `string' @@ -420,20 +427,20 @@ 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 ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_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@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ ; `string' +PUBLIC ??_C@_05PDJBBECF@pause@ ; `string' PUBLIC ??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ ; `string' PUBLIC ??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ ; `string' -PUBLIC ??_C@_05PDJBBECF@pause@ ; `string' PUBLIC ??_C@_0DC@MEGCPGB@?6?6Size?3?5?$CFu?5?5?5Obfuscated?3?5?$CFllu?5?5@ ; `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 ??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@LAIGCHJK@?$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' @@ -531,6 +538,7 @@ 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 __imp__time64:PROC 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 @@ -588,13 +596,14 @@ EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z:PROC EXTRN __imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z:PROC EXTRN __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ:PROC EXTRN ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z:PROC ; std::_Fiopen -EXTRN __imp__time64:PROC EXTRN ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z:PROC ; std::setw EXTRN xed_tables_init:PROC EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK -EXTRN ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcCountInstructions +EXTRN ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcCountInstructions EXTRN ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z:PROC ; NcDisassemble EXTRN ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z:PROC ; NcAssemble +EXTRN ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDeleteBlock +EXTRN ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDebugPrint EXTRN ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z:PROC ; ObfObfuscate1 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' @@ -628,643 +637,661 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+59 + DD imagerel $LN3+44 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+126 + DD imagerel $LN3+103 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+214 + DD imagerel $LN3+216 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 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 $LN3+116 DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+146 + DD imagerel $LN3+123 DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+101 + DD imagerel $LN3+77 DD imagerel $unwind$??1exception@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+96 DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 - DD imagerel $LN3+118 + DD imagerel $LN3+95 DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+84 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+68 DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+47 DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+476 + DD imagerel $LN21+453 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+62 DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 - DD imagerel $LN7+233 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+66 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 + DD imagerel $LN6+123 + DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+151 + DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD imagerel $LN3 - DD imagerel $LN3+143 + DD imagerel $LN3+127 DD imagerel $unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$allocator@D@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??0?$allocator@D@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD imagerel $LN3 - DD imagerel $LN3+93 + DD imagerel $LN3+70 DD imagerel $unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+66 DD imagerel $unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$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$?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 + DD imagerel $LN3+84 + DD imagerel $unwind$?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$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$?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 + DD imagerel $LN3+84 + DD imagerel $unwind$?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD imagerel $LN3 - DD imagerel $LN3+88 + DD imagerel $LN3+65 DD imagerel $unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+51 DD imagerel $unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+51 DD imagerel $unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 - DD imagerel $LN5+118 + DD imagerel $LN5+95 DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD imagerel $LN7 - DD imagerel $LN7+146 + DD imagerel $LN7+123 DD imagerel $unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 - DD imagerel $LN3+57 + DD imagerel $LN3+42 DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xlen_string@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+49 DD imagerel $unwind$?_Xlen_string@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $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 $LN3+48 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$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+132 +$pdata$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+109 DD imagerel $unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD imagerel $LN4 - DD imagerel $LN4+122 + DD imagerel $LN4+99 DD imagerel $unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD imagerel $LN5 - DD imagerel $LN5+107 + DD imagerel $LN5+84 DD imagerel $unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+94 + DD imagerel $LN4+71 DD imagerel $unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+49 DD imagerel $unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $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 $LN3+101 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$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+62 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 $LN3+41 DD imagerel $unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $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 $LN3+149 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$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+213 + DD imagerel $LN3+214 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$?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$?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z DD imagerel $LN3 + DD imagerel $LN3+248 + DD imagerel $unwind$?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z DD imagerel $LN3 + DD imagerel $LN3+110 + DD imagerel $unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z pdata ENDS ; 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 $LN4+232 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 $LN12+201 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 $LN3+56 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 $LN3+52 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 $LN3+226 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 $LN5+271 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 $LN3+109 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 $LN3+116 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 $LN4+232 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 $LN3+56 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 $LN3+56 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 $LN3+48 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 $LN3+48 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 $LN3+44 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$time DD imagerel time + DD imagerel time+54 + DD imagerel $unwind$time +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??0bad_cast@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+113 + DD imagerel $LN3+90 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 $LN3+41 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 $LN3+77 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 $LN4+82 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 $LN3+68 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 $LN6+158 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 $LN8+208 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 $LN12+586 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 $LN3+108 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 $LN3+108 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 $LN3+74 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 $LN3+62 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 $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD imagerel $LN5 - DD imagerel $LN5+112 + DD imagerel $LN5+89 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 $LN5+101 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 $LN5+105 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 $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+202 + DD imagerel $LN3+203 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+280 + DD imagerel $LN4+257 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+56 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?PrintByteArr@@YAXPEAXK@Z DD imagerel $LN6 - DD imagerel $LN6+278 + DD imagerel $LN6+255 DD imagerel $unwind$?PrintByteArr@@YAXPEAXK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 - DD imagerel $LN23+1095 - DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 + DD imagerel $LN3+117 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 - DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 - DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 + DD imagerel $LN3+68 + DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 - DD imagerel $LN3+140 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 + DD imagerel $LN3+110 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 - DD imagerel $LN3+94 - DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 + DD imagerel $LN23+1097 + DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 - DD imagerel $LN3+91 - DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 - DD imagerel $LN3+133 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 + DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD imagerel $LN4 - DD imagerel $LN4+136 + DD imagerel $LN4+113 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 $LN4+220 DD imagerel $unwind$?PutToFile@@YAXPEAXK@Z pdata ENDS ; COMDAT pdata @@ -1276,7 +1303,7 @@ 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 $LN8+265 DD imagerel $unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata @@ -1294,25 +1321,25 @@ 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 $LN3+180 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 $LN5+226 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 $LN4+120 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 $LN4+97 DD imagerel $unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata @@ -1324,13 +1351,13 @@ 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 $LN5+128 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 $LN6+230 DD imagerel $unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z pdata ENDS ; COMDAT pdata @@ -1342,43 +1369,43 @@ 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 $LN7+162 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 $LN4+78 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 $LN4+78 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 +$pdata$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD imagerel $LN19 + DD imagerel $LN19+799 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 $LN13+489 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 $LN7+312 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 +$pdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN22 + DD imagerel $LN22+918 DD imagerel $unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ pdata ENDS ; COMDAT pdata @@ -1390,103 +1417,103 @@ 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 $LN11+629 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 $LN7+365 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 $LN8+399 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 $LN5+322 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 $LN7+197 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 $LN5+185 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 $LN3+73 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 $LN6+376 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 $LN15+526 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 $LN5+119 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 $LN4+125 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 $LN4+176 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 $LN4+82 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 $LN3+50 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 $LN4+106 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 $LN3+72 DD imagerel $unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$main DD imagerel $LN7 - DD imagerel $LN7+527 + DD imagerel $LN7+592 DD imagerel $unwind$main pdata ENDS ; COMDAT pdata @@ -1498,7 +1525,7 @@ 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 $LN11+395 DD imagerel $unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z pdata ENDS ; COMDAT pdata @@ -1516,55 +1543,55 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 - DD imagerel $LN5+142 + DD imagerel $LN5+119 DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$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 $LN3+48 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 $LN3+66 DD imagerel $unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+84 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+65 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 - DD imagerel $LN4+171 + DD imagerel $LN4+148 DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+143 + DD imagerel $LN4+120 DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 - DD imagerel $LN7+284 + DD imagerel $LN7+261 DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata @@ -1576,205 +1603,217 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+139 + DD imagerel $LN6+116 DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD imagerel $LN3 - DD imagerel $LN3+156 + DD imagerel $LN3+133 DD imagerel $unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 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 +$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 $LN3 + DD imagerel $LN3+79 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 $LN3+48 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 $LN3+48 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 $LN3+41 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$??R@@QEBA@QEADQEBD_KD@Z DD imagerel $LN3 + DD imagerel $LN3+158 + DD imagerel $unwind$??R@@QEBA@QEADQEBD_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 $LN6+554 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 $LN3+111 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 $LN3+48 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 $LN5+119 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 $LN4+91 DD imagerel $unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 - DD imagerel $LN5+117 + DD imagerel $LN5+94 DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+121 + DD imagerel $LN4+98 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 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 $LN3+48 DD imagerel $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD imagerel $LN5 - DD imagerel $LN5+151 + DD imagerel $LN5+128 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 $LN4+112 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 $LN3+74 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 $LN3+48 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 $LN3+50 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 $LN3+93 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 $LN3+72 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 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 $LN13+277 DD imagerel $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$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$??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z DD imagerel $LN3 + DD imagerel $LN3+84 + DD imagerel $unwind$??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@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 $LN3+82 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 $LN3+74 DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT 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 $LN3+48 DD imagerel $unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -1956,11 +1995,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$_Iosb@H@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$_Iosb@H@std@@@8 -data$r SEGMENT +data$rs 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 +data$rs 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)' @@ -1985,11 +2024,11 @@ rdata$r SEGMENT DD imagerel ??_R2ios_base@std@@8 rdata$r ENDS ; COMDAT ??_R0?AVios_base@std@@@8 -data$r SEGMENT +data$rs 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 +data$rs 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)' @@ -2025,11 +2064,11 @@ rdata$r SEGMENT 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 +data$rs 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 +data$rs 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)' @@ -2056,11 +2095,11 @@ rdata$r SEGMENT 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 +data$rs 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 +data$rs 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)' @@ -2098,11 +2137,11 @@ rdata$r SEGMENT 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 +data$rs 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 +data$rs 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' @@ -2125,11 +2164,11 @@ rdata$r SEGMENT 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 +data$rs 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 +data$rs 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)' @@ -2164,11 +2203,11 @@ rdata$r SEGMENT 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 +data$rs 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 +data$rs 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' @@ -2231,9 +2270,9 @@ 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@ +; COMDAT ??_C@_1NA@LAIGCHJK@?$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' +??_C@_1NA@LAIGCHJK@?$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 @@ -2246,16 +2285,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H + DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, '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@ +; COMDAT ??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@FKEOHBGC@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' + DB 'ols\MSVC\14.29.30037\include\xstring', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ CONST SEGMENT @@ -2267,10 +2306,6 @@ CONST SEGMENT DB 0aH, 'Size: %u Obfuscated: %llu Original: %llu', 0aH, 0aH DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_05PDJBBECF@pause@ -CONST SEGMENT -??_C@_05PDJBBECF@pause@ DB 'pause', 00H ; `string' -CONST ENDS ; COMDAT ??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ CONST SEGMENT ??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ DB 'failed to assemble', 0aH, 00H ; `string' @@ -2280,10 +2315,14 @@ CONST SEGMENT ??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ DB 'Finished second pas.', 0aH DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ +; COMDAT ??_C@_05PDJBBECF@pause@ +CONST SEGMENT +??_C@_05PDJBBECF@pause@ DB 'pause', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ 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' +??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ DB 'C:\Users\Ja' + DB 'mes\Desktop\fantern\Test.m', 00H ; `string' CONST ENDS ; COMDAT ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ CONST SEGMENT @@ -2314,21 +2353,21 @@ CONST SEGMENT 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@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT _CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -2390,9 +2429,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -2405,16 +2444,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H + DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -2426,7 +2465,7 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -2518,117 +2557,59 @@ CONST SEGMENT 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 +$unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DD 025051301H 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 +$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$??$?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 +$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 025051c01H 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 +$unwind$??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z DD 025051801H 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 +$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 -$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 +$unwind$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD 025051301H 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 +$unwind$??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD 025052a19H +$unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -2643,7 +2624,7 @@ $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@Y xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -2652,172 +2633,88 @@ $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAX 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 +$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 025051801H 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 +$unwind$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z DD 05051601H 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 +$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 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H 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 +$unwind$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DD 025051301H DD 010e2313H - DD 07007001dH + DD 070070021H 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 +$unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001fH + DD 05006H 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 +$unwind$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD 025051801H + DD 01132318H + DD 0700c0023H + DD 0500bH 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 +$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025051301H DD 010e2313H - DD 070070021H + DD 07007001dH 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 +$unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD 025052a19H +$unwind$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD 025051301H DD 010e2313H - DD 07007001fH + DD 070070021H 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 +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@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 +$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$??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 +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -2826,101 +2723,54 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H - DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025051301H 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 +$unwind$??$max@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H 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 +$unwind$??$_Unfancy@D@std@@YAPEADPEAD@Z DD 025051301H 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 +$unwind$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 045H + DW 0211H +voltbl 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 +$unwind$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z DD 035054c19H DD 011d3322H DD 070160043H DD 05015H @@ -2949,108 +2799,56 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??R@@QEBAXQEADQEBD_KD@Z DD 025053901H +$unwind$??R@@QEBA@QEADQEBD_KD@Z DD 025052201H 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 +$unwind$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DD 025051301H 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 +$unwind$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DD 025051301H 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 +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$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 025051701H 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 +$unwind$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD 025051801H 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 +$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025051801H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H +$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H @@ -3068,13 +2866,18 @@ $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070021H DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H @@ -3086,7 +2889,7 @@ xdata SEGMENT $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H DB 00H DB 00H - DB 09eH + DB 'p' DB 02H DB 0f1H, 02H DB 00H @@ -3105,7 +2908,7 @@ $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051811H DD 01132318H DD 0700c0021H DD 0500bH @@ -3125,7 +2928,7 @@ $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070021H DD 05006H @@ -3134,118 +2937,68 @@ $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H +$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H - DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H - DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H - DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT 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 +$unwind$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DD 025051301H 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 +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS +; COMDAT 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 036H + DW 0172H +voltbl 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 @@ -3263,7 +3016,7 @@ 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 0acH DB 02H DB 'y', 02H DB 04H @@ -3288,7 +3041,7 @@ $cppxdata$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_ 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 +$unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DD 025053d19H DD 010e2313H DD 070070039H DD 05006H @@ -3341,6 +3094,16 @@ CONST SEGMENT DD 00H DQ FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 02aH + DW 0237H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$main$dtor$0 DD 031001H @@ -3352,13 +3115,13 @@ xdata SEGMENT $ip2state$main DB 0aH DB 00H DB 00H - DB 0b2H + DB 0d0H DB 02H - DB 0f9H, 02H + DB 095H, 03H DB 00H DB '(' DB 02H - DB 099H, 02H + DB 0c5H, 02H DB 00H xdata ENDS ; COMDAT xdata @@ -3375,13 +3138,13 @@ $cppxdata$main DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$main DD 025052f19H +$unwind$main DD 025053119H DD 010a230fH - DD 070030041H + DD 070030043H DD 05002H DD imagerel __GSHandlerCheck_EH4 DD imagerel $cppxdata$main - DD 01faH + DD 020aH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -3410,11 +3173,11 @@ main$rtcName$2 DB 041H DB 065H DB 00H ORG $+8 -main$rtcVarDesc DD 0a4H +main$rtcVarDesc DD 0b4H DD 04H DQ FLAT:main$rtcName$2 DD 078H - DD 018H + DD 020H DQ FLAT:main$rtcName$1 DD 028H DD 030H @@ -3426,56 +3189,61 @@ main$rtcFrameData DD 03H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025052a01H +$unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025051301H 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 +$unwind$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025051701H 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 +$unwind$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z DD 05051601H 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 +$unwind$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025051701H 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 +$unwind$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025051301H 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 +$unwind$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025051301H 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 +$unwind$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 01f5H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD 035053b19H +$unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD 035053d19H DD 010e3313H DD 07007003dH DD 05006H @@ -3508,9 +3276,14 @@ CONST SEGMENT DD 00H DQ FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 015fH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD 045054519H +$unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD 045054719H DD 0118431dH DD 070110031H DD 05010H @@ -3548,28 +3321,33 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD 025052f01H +$unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD 025051801H 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 +$unwind$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025051301H 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 +$unwind$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z DD 025051d01H DD 0118231dH DD 070110025H DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 045H + DW 0129H +voltbl 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 +$unwind$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z DD 025054c19H DD 011d2322H DD 070160025H DD 05015H @@ -3592,9 +3370,14 @@ CONST SEGMENT 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 voltbl +voltbl SEGMENT +_volmd DW 045H + DW 0176H +voltbl 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 +$unwind$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z DD 025054c19H DD 011d2322H DD 070160021H DD 05015H @@ -3628,14 +3411,19 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD 025053401H +$unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD 025051d01H DD 0118231dH DD 070110025H DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 025cH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD 025054519H +$unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD 025054719H DD 0118231dH DD 070110037H DD 05010H @@ -3677,6 +3465,16 @@ CONST SEGMENT DD 00H DQ FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 037dH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA DD 031001H @@ -3688,13 +3486,13 @@ xdata SEGMENT $ip2state$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 016H DB 00H DB 00H - DB 091H, 04H + DB 099H, 04H DB 02H DB '\' DB 00H DB '(' DB 02H - DB 05H, 06H + DB 0f5H, 05H DB 00H DB '"' DB 02H @@ -3723,7 +3521,7 @@ $cppxdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 045053b19H +$unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 045053d19H DD 010e4313H DD 070070057H DD 05006H @@ -3780,9 +3578,14 @@ CONST SEGMENT DD 00H DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 011fH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025053b19H +$unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025053d19H DD 010e2313H DD 070070027H DD 05006H @@ -3808,14 +3611,19 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 025052e01H +$unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 025051701H DD 01122317H DD 0700b002dH DD 0500aH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03aH + DW 0306H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 045053f19H +$unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 045054119H DD 01124317H DD 0700b0043H DD 0500aH @@ -3866,25 +3674,30 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025052a01H +$unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025051301H 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 +$unwind$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025051301H 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 +$unwind$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA DD 031001H @@ -3896,7 +3709,7 @@ 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 0b5H, 02H DB 02H DB '8' DB 00H @@ -3915,7 +3728,7 @@ $cppxdata$?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 +$unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DD 025052211H DD 011d2322H DD 070160029H DD 05015H @@ -3935,13 +3748,18 @@ $cppxdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025052a19H +$unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025051319H 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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H @@ -3953,7 +3771,7 @@ xdata SEGMENT $ip2state$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 06H DB 00H DB 00H - DB 088H + DB 'Z' DB 02H DB 'F' DB 00H @@ -3972,7 +3790,7 @@ $cppxdata$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a11H +$unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051311H DD 010e2313H DD 07007001dH DD 05006H @@ -3981,38 +3799,35 @@ $unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a11H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025052a01H +$unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025051301H 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 +$unwind$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z DD 025052201H 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 +$unwind$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025051301H 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 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???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H @@ -4030,7 +3845,7 @@ xdata SEGMENT $ip2state$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 08H DB 00H DB 00H - DB 0eaH + DB 0bcH DB 02H DB 'r' DB 04H @@ -4053,13 +3868,23 @@ $cppxdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052e11H +$unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051711H 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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 03aH + DB 0c3H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA DD 031001H @@ -4071,7 +3896,7 @@ xdata SEGMENT $ip2state$?PutToFile@@YAXPEAXK@Z DB 06H DB 00H DB 00H - DB 0d0H + DB 0d4H DB 02H DB 080H DB 00H @@ -4090,7 +3915,7 @@ $cppxdata$?PutToFile@@YAXPEAXK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?PutToFile@@YAXPEAXK@Z DD 025053f19H +$unwind$?PutToFile@@YAXPEAXK@Z DD 025054119H DD 01122317H DD 0700b0043H DD 0500aH @@ -4116,39 +3941,26 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025052e01H +$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH 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 @@ -4166,7 +3978,7 @@ xdata SEGMENT $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH DB 00H DB 00H - DB 0c6H + DB 0caH DB 02H DB 011H, 02H DB 04H @@ -4207,7 +4019,7 @@ $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H +$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025054119H DD 01122317H DD 0700b004bH DD 0500aH @@ -4232,57 +4044,59 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?PrintByteArr@@YAXPEAXK@Z DD 025052e01H +$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 0700b0031H + DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H - DD 010e2313H - DD 07007001dH - DD 05006H +$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025051701H + DD 01122317H + DD 0700b001dH + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025051801H + DD 01132318H + DD 0700c001fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$unwind$?PrintByteArr@@YAXPEAXK@Z DD 025051701H + DD 01122317H + DD 0700b0031H + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_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 +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -4297,7 +4111,7 @@ $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H DD 010e2313H DD 07007002fH DD 05006H @@ -4306,31 +4120,24 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 0b2H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ - DD 013bH + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4349,105 +4156,103 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$time DD 025052a01H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD 025052f01H +$unwind$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD 025052e01H +$unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD 025051701H DD 01122317H DD 0700b001fH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD 025052f01H +$unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H +$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD 025052a01H +$unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD 025052f01H +$unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD 025051801H 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 +$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD 025052f01H +$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -4492,165 +4297,94 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD 025052f01H +$unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD 025051801H 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 +$unwind$??1locale@std@@QEAA@XZ DD 025051301H 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 +$unwind$?_Throw_bad_cast@std@@YAXXZ DD 025050f01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_cast@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_cast@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_cast@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_cast@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_cast@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_cast@std@@UEAA@XZ DD 025051301H 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 +$unwind$??0bad_cast@std@@QEAA@XZ DD 025051301H 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 +$unwind$time DD 025051301H 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 +$unwind$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ DD 025051301H 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 +$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 025051301H 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 +$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 025051301H 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 +$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H 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 +$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DD 025051301H 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 @@ -4665,7 +4399,7 @@ $cppxdata$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025052a19H +$unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025051319H DD 010e2313H DD 070070029H DD 05006H @@ -4674,64 +4408,31 @@ $unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2 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 +$unwind$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025051301H DD 010e2313H - DD 070070021H + DD 070070025H 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 +$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DD 025051801H 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 voltbl +voltbl SEGMENT +_volmd DB 040H + DB 0f6H +voltbl 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 +$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DD 025054719H 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 + DD imagerel __GSHandlerCheck + DD 0118H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4752,26 +4453,19 @@ CONST SEGMENT 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 voltbl +voltbl SEGMENT +_volmd DB 036H + DB 0c9H +voltbl 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 +$unwind$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025053d19H 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 + DD imagerel __GSHandlerCheck + DD 0178H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4797,98 +4491,59 @@ CONST SEGMENT 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 +$unwind$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025051301H 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 +$unwind$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DD 025051301H 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 +$unwind$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DD 035051301H 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 +$unwind$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z DD 025051701H 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 +$unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z DD 025051d01H DD 0118231dH - DD 07011002dH + DD 07011001fH 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 +$unwind$?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z DD 025051d01H + DD 0118231dH + DD 07011002dH + DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 0bdH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025053b19H +$unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025053d19H 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 + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4918,7 +4573,7 @@ $cppxdata$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@X xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025052a19H +$unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070025H DD 05006H @@ -4927,665 +4582,365 @@ $unwind$??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 +$unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H 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 +$unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H 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 +$unwind$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H 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 +$unwind$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DD 025051d01H 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 +$unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD 025050f01H 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 +$unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD 025051801H 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 +$unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD 025051301H 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 +$unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - 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 +$unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H 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 +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DD 025051301H 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 +$unwind$?_Xlen_string@std@@YAXXZ DD 025050f01H 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 +$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?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 +$unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD 025051301H 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 +$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?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 +$unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD 025051301H 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 +$unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD 025051301H 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 +$unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD 025051801H 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 +$unwind$?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025051d01H 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 -$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 +$unwind$?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025051d01H 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$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD 025052f01H +$unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD 025053401H +$unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD 025051d01H 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 +$unwind$??0?$allocator@D@std@@QEAA@XZ DD 025051301H 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 +$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Orphan_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 voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H +$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H DD 010e2313H - DD 070070025H + DD 070070021H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ - DD 011bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked DD 04H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked DD 00H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0_Container_base12@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0_Container_base12@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0_Container_base12@std@@QEAA@XZ +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H + DD 010e2313H + DD 070070021H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_base12@std@@QEAA@XZ DD 025052a19H +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 060H - DD imagerel $ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ DB 060H - DD imagerel $ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025050f01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0bad_array_new_length@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0bad_array_new_length@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0bad_array_new_length@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025052a19H +$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0bad_array_new_length@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z DB 060H - DD imagerel $ip2state$??0bad_alloc@std@@AEAA@QEBD@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1exception@std@@UEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1exception@std@@UEAA@XZ DB 060H - DD imagerel $ip2state$??1exception@std@@UEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1exception@std@@UEAA@XZ DD 025052a19H +$unwind$??1exception@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1exception@std@@UEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H - DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H - DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??2@YAPEAX_KPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H - DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H +$unwind$??2@YAPEAX_KPEAX@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 045H + DB 0bfH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054a19H +$unwind$printf DD 025054c19H DD 011d2322H DD 07016002bH DD 05015H @@ -5614,97 +4969,45 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035053901H +$unwind$_vfprintf_l DD 035052201H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025051e01H +$unwind$__local_stdio_printf_options DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -5723,13 +5026,13 @@ _TEXT SEGMENT ??_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 +; 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 @@ -5738,40 +5041,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1444 : return static_cast<_Ty&&>(_Arg); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1456 : } +; 1445 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z _TEXT SEGMENT -__formal$ = 224 +_Al$ = 224 _Ptr$ = 232 _Count$ = 240 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT -; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { +; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -5782,37 +5079,39 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 688 : // no overflow check on the following multiply; we assume _Allocate did that check -; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00040 48 6b 85 f0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 694 : // no overflow check on the following multiply; we assume _Allocate did that check +; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 696 : if (_STD is_constant_evaluated()) { +; 697 : _Al.deallocate(_Ptr, _Count); +; 698 : } else +; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 700 : { +; 701 : (void) _Al; +; 702 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00029 48 6b 85 f0 00 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00048 48 8b d0 mov rdx, rax - 0004b 48 8b 8d e8 00 + 00031 48 8b d0 mov rdx, rax + 00034 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 690 : } +; 703 : } +; 704 : } - 00057 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?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 @@ -5820,7 +5119,7 @@ __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)...) {} +; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -5831,41 +5130,35 @@ $LN3: 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 + 0001c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00028 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 + 0002f e8 00 00 00 00 call ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ; std::forward + 00034 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 + 0003b 48 8b 00 mov rax, QWORD PTR [rax] + 0003e 48 89 01 mov QWORD PTR [rcx], rax + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??$?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility +; COMDAT ??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@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 +??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5875,48 +5168,42 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 598 : // assign _New_val to _Val, return previous _Val -; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 615 : // assign _New_val to _Val, return previous _Val +; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 0003b 48 8b 85 00 01 + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 600 : _Val = static_cast<_Other&&>(_New_val); +; 617 : _Val = static_cast<_Other&&>(_New_val); - 00049 48 8b 85 00 01 + 00032 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00050 48 8b 8d 08 01 + 00039 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00057 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005a 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 8b 09 mov rcx, QWORD PTR [rcx] + 00043 48 89 08 mov QWORD PTR [rax], rcx -; 601 : return _Old_val; +; 618 : return _Old_val; - 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 602 : } +; 619 : } - 00061 48 8d a5 e8 00 + 0004a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 -??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z ENDP ; std::exchange + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 +??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z _TEXT SEGMENT _Block_size$ = 8 @@ -5925,7 +5212,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 -; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { +; 134 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { $LN13: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5934,140 +5221,134 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a 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; +; 135 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 136 : const size_t _Block_size = _Non_user_size + _Bytes; - 00036 48 8b 85 40 01 + 0001f 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 + 00026 48 83 c0 2f add rax, 47 ; 0000002fH + 0002a 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax -; 116 : if (_Block_size <= _Bytes) { +; 137 : if (_Block_size <= _Bytes) { - 00045 48 8b 85 40 01 + 0002e 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 + 00035 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00039 77 05 ja SHORT $LN8@Allocate_m -; 117 : _Throw_bad_array_new_length(); // add overflow +; 138 : _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 + 0003b 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)); +; 139 : } +; 140 : +; 141 : 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 + 00040 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] + 00044 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00049 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Allocate_m: -; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] +; 142 : _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 + 0004d 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 + 00052 74 02 je SHORT $LN9@Allocate_m + 00054 eb 6b jmp SHORT $LN10@Allocate_m $LN9@Allocate_m: $LN7@Allocate_m: - 0006d 48 8d 05 00 00 + 00056 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 + 0005d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00062 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 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 + 00069 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0006e 45 33 c9 xor r9d, r9d + 00071 41 b8 8e 00 00 + 00 mov r8d, 142 ; 0000008eH + 00077 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0007e b9 02 00 00 00 mov ecx, 2 + 00083 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 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 + 00089 83 f8 01 cmp eax, 1 + 0008c 75 03 jne SHORT $LN12@Allocate_m + 0008e cc int 3 + 0008f 33 c0 xor eax, eax $LN12@Allocate_m: - 000a8 48 c7 44 24 20 + 00091 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 + 0009a 41 b9 8e 00 00 + 00 mov r9d, 142 ; 0000008eH + 000a0 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000a7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ - 000c5 48 8d 0d 00 00 + 000ae 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000cc ff 15 00 00 00 + 000b5 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 + 000bb 33 c0 xor eax, eax + 000bd 85 c0 test eax, eax + 000bf 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 + 000c1 33 c0 xor eax, eax + 000c3 85 c0 test eax, eax + 000c5 75 86 jne SHORT $LN4@Allocate_m -; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); +; 143 : 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 + 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 -; 123 : static_cast(_Ptr)[-1] = _Ptr_container; +; 144 : 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 + 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 -; 124 : -; 125 : #ifdef _DEBUG -; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; +; 145 : +; 146 : #ifdef _DEBUG +; 147 : 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 + 000ec b8 08 00 00 00 mov eax, 8 + 000f1 48 6b c0 fe imul rax, rax, -2 + 000f5 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000f9 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 00103 48 89 14 01 mov QWORD PTR [rcx+rax], rdx -; 127 : #endif // _DEBUG -; 128 : return _Ptr; +; 148 : #endif // _DEBUG +; 149 : return _Ptr; - 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] + 00107 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] $LN11@Allocate_m: -; 129 : } +; 150 : } - 00122 48 8d a5 28 01 + 0010b 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00129 5f pop rdi - 0012a 5d pop rbp - 0012b c3 ret 0 + 00112 5f pop rdi + 00113 5d pop rbp + 00114 c3 ret 0 ??$_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 +; 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 @@ -6076,32 +5357,64 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1444 : return static_cast<_Ty&&>(_Arg); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1456 : } +; 1445 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z +_TEXT SEGMENT +_It$ = 224 +??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@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@PEAPEAD@std@@YAPEAXPEAPEAD@Z ENDP ; std::_Voidify_iter +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z _TEXT SEGMENT _Val$ = 224 @@ -6116,39 +5429,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT -; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6158,45 +5465,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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // deallocate a plain pointer using an allocator -; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; -; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 0003b 41 b8 01 00 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 986 : // deallocate a plain pointer using an allocator +; 987 : using _Alloc_traits = allocator_traits<_Alloc>; +; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 00024 41 b8 01 00 00 00 mov r8d, 1 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate - 00054 90 npad 1 + 00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 0003d 90 npad 1 -; 1003 : } else { -; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 1006 : } -; 1007 : } +; 990 : } else { +; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 993 : } +; 994 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\memory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 @@ -6205,7 +5506,7 @@ 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) {} +; 3173 : 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 @@ -6215,33 +5516,27 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E2906A2_memory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 85 d8 00 + 0002b 48 89 85 d8 00 00 00 mov QWORD PTR tv70[rbp], rax - 00049 4c 8d 85 08 01 + 00032 4c 8d 85 08 01 00 00 lea r8, QWORD PTR _Ptr$[rbp] - 00050 0f b6 95 c4 00 + 00039 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 00057 48 8b 8d d8 00 + 00040 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 + 00047 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> + 0004c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8d a5 e8 00 + 00053 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 + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c 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 @@ -6258,33 +5553,27 @@ $LN3: 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 + 00016 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 + 0001d 33 c0 xor eax, eax + 0001f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR classSize$[rbp] - 0003d f3 aa rep stosb - 0003f 48 8d a5 c8 00 + 00026 f3 aa rep stosb + 00028 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 + 0002f 5f pop rdi + 00030 5d pop rbp + 00031 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6293,39 +5582,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 +$T1 = 196 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 { +; 3258 : pointer release() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6334,40 +5617,33 @@ $LN3: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E2906A2_memory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2541 : return _STD exchange(_Mypair._Myval2, pointer()); +; 3259 : return _STD exchange(_Mypair._Myval2, nullptr); - 00036 48 c7 85 c8 00 + 0001f 48 c7 85 c4 00 00 00 00 00 00 00 mov QWORD PTR $T1[rbp], 0 - 00041 48 8b 85 00 01 + 0002a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d 95 c8 00 + 00031 48 8d 95 c4 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 + 00038 48 8b c8 mov rcx, rax + 0003b e8 00 00 00 00 call ??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z ; std::exchange -; 2542 : } +; 3260 : } - 00058 48 8d a5 e8 00 + 00040 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 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 @@ -6375,7 +5651,7 @@ 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 { +; 3228 : ~unique_ptr() noexcept { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6384,56 +5660,49 @@ $LN4: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3229 : if (_Mypair._Myval2) { + + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 74 3b je SHORT $LN2@unique_ptr + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 3a je SHORT $LN2@unique_ptr -; 2512 : _Mypair._Get_first()(_Mypair._Myval2); +; 3230 : _Mypair._Get_first()(_Mypair._Myval2); - 00043 48 8b 85 f0 00 + 0002c 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 + 00033 48 8b c8 mov rcx, rax + 00036 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 + 0003b 48 89 85 c0 00 00 00 mov QWORD PTR tv77[rbp], rax - 00059 48 8b 85 f0 00 + 00042 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 + 00049 48 8b 00 mov rax, QWORD PTR [rax] + 0004c 48 89 85 c8 00 00 00 mov QWORD PTR tv75[rbp], rax - 0006a 48 8b 95 c8 00 + 00053 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR tv75[rbp] - 00071 48 8b 8d c0 00 + 0005a 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 + 00061 e8 00 00 00 00 call ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ; std::default_delete::operator() $LN2@unique_ptr: -; 2513 : } -; 2514 : } +; 3231 : } +; 3232 : } - 0007e 48 8d a5 d8 00 + 00066 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 + 0006d 5f pop rdi + 0006e 5d pop rbp + 0006f 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\memory ; COMDAT ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z _TEXT SEGMENT $T1 = 200 @@ -6443,7 +5712,7 @@ 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 +; 3118 : void operator()(_Ty* _Ptr) const noexcept /* strengthened */ { // delete a pointer $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6453,63 +5722,57 @@ $LN5: 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3119 : static_assert(0 < sizeof(_Ty), "can't delete an incomplete type"); +; 3120 : delete _Ptr; + + 00024 48 8b 85 18 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00042 48 89 85 c8 00 + 0002b 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00049 48 83 bd c8 00 + 00032 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 + 0003a 74 2f je SHORT $LN3@operator + 0003c 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 + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 8b 00 mov rax, QWORD PTR [rax] + 00049 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 + 00050 ba 01 00 00 00 mov edx, 1 + 00055 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00073 ff 95 d8 00 00 + 0005c ff 95 d8 00 00 00 call QWORD PTR tv71[rbp] - 00079 48 89 85 e0 00 + 00062 48 89 85 e0 00 00 00 mov QWORD PTR tv72[rbp], rax - 00080 eb 0b jmp SHORT $LN4@operator + 00069 eb 0b jmp SHORT $LN4@operator $LN3@operator: - 00082 48 c7 85 e0 00 + 0006b 48 c7 85 e0 00 00 00 00 00 00 00 mov QWORD PTR tv72[rbp], 0 $LN4@operator: -; 2403 : } +; 3121 : } - 0008d 48 8d a5 f8 00 + 00076 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() + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f 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 +; 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 -; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 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 @@ -6518,32 +5781,64 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1444 : return static_cast<_Ty&&>(_Arg); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1456 : } +; 1445 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z PROC ; std::_Voidify_iter, COMDAT + +; 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@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ENDP ; std::_Voidify_iter +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z _TEXT SEGMENT _Val$ = 224 @@ -6558,39 +5853,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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) { +; 59 : _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 @@ -6599,51 +5888,45 @@ $LN3: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 00036 c6 45 04 00 mov BYTE PTR _Overflow_is_possible$[rbp], 0 + 0001f 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; +; 61 : +; 62 : if constexpr (_Overflow_is_possible) { +; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; +; 64 : if (_Count > _Max_possible) { +; 65 : _Throw_bad_array_new_length(); // multiply overflow +; 66 : } +; 67 : } +; 68 : +; 69 : return _Count * _Ty_size; - 0003a 48 8b 85 00 01 + 00023 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Count$[rbp] -; 66 : } +; 70 : } - 00041 48 8d a5 e8 00 + 0002a 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 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z _TEXT SEGMENT _Ptr$ = 224 _Bytes$ = 232 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6653,57 +5936,57 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 215 : #if defined(_M_IX86) || defined(_M_X64) -; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0003b 48 81 bd e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 254 : if (_STD is_constant_evaluated()) { +; 255 : ::operator delete(_Ptr); +; 256 : } else +; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 258 : { +; 259 : #if defined(_M_IX86) || defined(_M_X64) +; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00024 48 81 bd e8 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00046 72 13 jb SHORT $LN2@Deallocate + 0002f 72 13 jb SHORT $LN2@Deallocate -; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00048 48 8d 95 e8 00 + 00031 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 0004f 48 8d 8d e0 00 + 00038 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 218 : } -; 219 : #endif // defined(_M_IX86) || defined(_M_X64) -; 220 : -; 221 : ::operator delete(_Ptr, _Bytes); +; 262 : } +; 263 : #endif // defined(_M_IX86) || defined(_M_X64) +; 264 : ::operator delete(_Ptr, _Bytes); - 0005b 48 8b 95 e8 00 + 00044 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 00062 48 8b 8d e0 00 + 0004b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 0006e 90 npad 1 + 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00057 90 npad 1 -; 222 : } +; 265 : } +; 266 : } - 0006f 48 8d a5 c8 00 + 00058 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _First$ = 224 @@ -6711,7 +5994,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6722,41 +6005,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - -; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 957 : using _Ty = typename _Alloc::value_type; -; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 959 : for (; _First != _Last; ++_First) { -; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 961 : } -; 962 : } -; 963 : } - - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 947 : using _Ty = typename _Alloc::value_type; +; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 949 : for (; _First != _Last; ++_First) { +; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 951 : } +; 952 : } +; 953 : } + + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_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) { +; 230 : __declspec(allocator) _CONSTEXPR20_DYNALLOC void* _Allocate(const size_t _Bytes) { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6765,68 +6041,67 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 231 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 232 : #if defined(_M_IX86) || defined(_M_X64) +; 233 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 234 : if (!_STD is_constant_evaluated()) +; 235 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 236 : { +; 237 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0001f 48 81 bd e0 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00041 72 0e jb SHORT $LN2@Allocate + 0002a 72 0e jb SHORT $LN2@Allocate -; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); +; 238 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); - 00043 48 8b 8d e0 00 + 0002c 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 + 00033 e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned + 00038 eb 1a jmp SHORT $LN1@Allocate $LN2@Allocate: -; 202 : } -; 203 : #endif // defined(_M_IX86) || defined(_M_X64) -; 204 : -; 205 : if (_Bytes != 0) { +; 239 : } +; 240 : } +; 241 : #endif // defined(_M_IX86) || defined(_M_X64) +; 242 : +; 243 : if (_Bytes != 0) { - 00051 48 83 bd e0 00 + 0003a 48 83 bd e0 00 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 - 00059 74 0e je SHORT $LN3@Allocate + 00042 74 0e je SHORT $LN3@Allocate -; 206 : return _Traits::_Allocate(_Bytes); +; 244 : return _Traits::_Allocate(_Bytes); - 0005b 48 8b 8d e0 00 + 00044 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 + 0004b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00050 eb 02 jmp SHORT $LN1@Allocate $LN3@Allocate: -; 207 : } -; 208 : -; 209 : return nullptr; +; 245 : } +; 246 : +; 247 : return nullptr; - 00069 33 c0 xor eax, eax + 00052 33 c0 xor eax, eax $LN1@Allocate: -; 210 : } +; 248 : } - 0006b 48 8d a5 c8 00 + 00054 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ??$_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z _TEXT SEGMENT _Overflow_is_possible$ = 4 @@ -6834,7 +6109,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 -; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6843,61 +6118,55 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 0001f 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; +; 61 : +; 62 : if constexpr (_Overflow_is_possible) { +; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 0003a 48 b8 ff ff ff + 00023 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 + 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 60 : if (_Count > _Max_possible) { +; 64 : if (_Count > _Max_possible) { - 00048 48 b8 ff ff ff + 00031 48 b8 ff ff ff ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 00052 48 39 85 20 01 + 0003b 48 39 85 20 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 00059 76 05 jbe SHORT $LN2@Get_size_o + 00042 76 05 jbe SHORT $LN2@Get_size_o -; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 65 : _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 + 00044 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; +; 66 : } +; 67 : } +; 68 : +; 69 : return _Count * _Ty_size; - 00060 48 6b 85 20 01 + 00049 48 6b 85 20 01 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 $LN3@Get_size_o: -; 66 : } +; 70 : } - 00068 48 8d a5 08 01 + 00051 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 + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility ; COMDAT ??$max@_K@std@@YAAEB_KAEB_K0@Z _TEXT SEGMENT $T1 = 200 @@ -6916,55 +6185,49 @@ $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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 43 : // return larger of _Left and _Right ; 44 : return _Left < _Right ? _Right : _Left; - 0003b 48 8b 85 00 01 + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00042 48 8b 8d 08 01 + 0002b 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 + 00032 48 8b 09 mov rcx, QWORD PTR [rcx] + 00035 48 39 08 cmp QWORD PTR [rax], rcx + 00038 73 10 jae SHORT $LN3@max + 0003a 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00058 48 89 85 d8 00 + 00041 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax - 0005f eb 0e jmp SHORT $LN4@max + 00048 eb 0e jmp SHORT $LN4@max $LN3@max: - 00061 48 8b 85 00 01 + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00068 48 89 85 d8 00 + 00051 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax $LN4@max: - 0006f 48 8b 85 d8 00 + 00058 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv65[rbp] - 00076 48 89 85 c8 00 + 0005f 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0007d 48 8b 85 c8 00 + 00066 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] ; 45 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$_Unfancy@D@std@@YAPEADPEAD@Z _TEXT SEGMENT _Ptr$ = 224 @@ -6979,32 +6242,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$_Unfancy@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z _TEXT SEGMENT $T1 = 200 @@ -7012,7 +6269,7 @@ _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...>) { +; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7022,44 +6279,46 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 8d 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 00042 e8 00 00 00 00 call ??$addressof@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 + 0002b e8 00 00 00 00 call ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ; std::addressof + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z ; std::_Voidify_iter + 00038 48 8b d0 mov rdx, rax + 0003b b9 08 00 00 00 mov ecx, 8 + 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00045 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0005b 48 8b 8d 08 01 + 0004c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00062 e8 00 00 00 00 call ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward - 00067 48 8b 8d c8 00 + 00053 e8 00 00 00 00 call ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward + 00058 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 + 0005f 48 8b 00 mov rax, QWORD PTR [rax] + 00062 48 89 01 mov QWORD PTR [rcx], rax + +; 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 : } + + 00065 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 + 0006c 5f pop rdi + 0006d 5d pop rbp + 0006e 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 @@ -7078,7 +6337,7 @@ _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) { +; 4538 : const size_type _Size_increase, _Fty _Fn, _ArgTys... _Args) { $LN6: 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b @@ -7090,231 +6349,237 @@ $LN6: 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 + 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00027 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 d8 01 + 00042 48 33 c5 xor rax, rbp + 00045 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 + 0004c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00053 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; +; 4539 : // reallocate to increase size by _Size_increase elements, new buffer prepared by +; 4540 : // _Fn(_New_ptr, _Old_ptr, _Old_size, _Args...) +; 4541 : auto& _My_data = _Mypair._Myval2; - 00056 48 8b 85 00 02 + 00058 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 + 0005f 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 4248 : const size_type _Old_size = _My_data._Mysize; +; 4542 : 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 + 00063 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00067 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0006b 48 89 45 28 mov QWORD PTR _Old_size$[rbp], rax -; 4249 : if (max_size() - _Old_size < _Size_increase) { +; 4543 : if (max_size() - _Old_size < _Size_increase) { - 0006d 48 8b 8d 00 02 + 0006f 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 + 00076 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 + 0007b 48 2b 45 28 sub rax, QWORD PTR _Old_size$[rbp] + 0007f 48 3b 85 08 02 00 00 cmp rax, QWORD PTR _Size_increase$[rbp] - 00084 73 05 jae SHORT $LN2@Reallocate + 00086 73 05 jae SHORT $LN2@Reallocate -; 4250 : _Xlen_string(); // result too long +; 4544 : _Xlen_string(); // result too long - 00086 e8 00 00 00 00 call ?_Xlen_string@std@@YAXXZ ; std::_Xlen_string + 00088 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; +; 4545 : } +; 4546 : +; 4547 : const size_type _New_size = _Old_size + _Size_increase; - 0008b 48 8b 85 08 02 + 0008d 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 + 00094 48 8b 4d 28 mov rcx, QWORD PTR _Old_size$[rbp] + 00098 48 03 c8 add rcx, rax + 0009b 48 8b c1 mov rax, rcx + 0009e 48 89 45 48 mov QWORD PTR _New_size$[rbp], rax -; 4254 : const size_type _Old_capacity = _My_data._Myres; +; 4548 : 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 + 000a2 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 000a6 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 000aa 48 89 45 68 mov QWORD PTR _Old_capacity$[rbp], rax -; 4255 : const size_type _New_capacity = _Calculate_growth(_New_size); +; 4549 : 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 + 000ae 48 8b 55 48 mov rdx, QWORD PTR _New_size$[rbp] + 000b2 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 + 000b9 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 + 000be 48 89 85 88 00 00 00 mov QWORD PTR _New_capacity$[rbp], rax -; 4256 : auto& _Al = _Getal(); +; 4550 : auto& _Al = _Getal(); - 000c3 48 8b 8d 00 02 + 000c5 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 + 000cc 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 + 000d1 48 89 85 a8 00 00 00 mov QWORD PTR _Al$[rbp], rax -; 4257 : const pointer _New_ptr = _Al.allocate(_New_capacity + 1); // throws +; 4551 : const pointer _New_ptr = _Al.allocate(_New_capacity + 1); // throws - 000d6 48 8b 85 88 00 + 000d8 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 + 000df 48 83 c0 01 add rax, 1 + 000e3 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 + 000ea 48 0f 42 c1 cmovb rax, rcx + 000ee 48 8b d0 mov rdx, rax + 000f1 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 + 000f8 e8 00 00 00 00 call ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z ; std::allocator::allocate + 000fd 48 89 85 c8 00 00 00 mov QWORD PTR _New_ptr$[rbp], rax -; 4258 : _My_data._Orphan_all(); +; 4552 : +; 4553 : #ifdef __cpp_lib_constexpr_string +; 4554 : if (_STD is_constant_evaluated()) { // Begin the lifetimes of the objects before copying to avoid UB +; 4555 : _Traits::assign(_Unfancy(_New_ptr), _New_capacity + 1, _Elem()); +; 4556 : } +; 4557 : #endif // __cpp_lib_constexpr_string +; 4558 : _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 + 00104 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00108 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 4259 : _My_data._Mysize = _New_size; +; 4559 : _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 + 0010d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00111 48 8b 4d 48 mov rcx, QWORD PTR _New_size$[rbp] + 00115 48 89 48 18 mov QWORD PTR [rax+24], rcx -; 4260 : _My_data._Myres = _New_capacity; +; 4560 : _My_data._Myres = _New_capacity; - 00117 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0011b 48 8b 8d 88 00 + 00119 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0011d 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 + 00124 48 89 48 20 mov QWORD PTR [rax+32], rcx -; 4261 : _Elem* const _Raw_new = _Unfancy(_New_ptr); +; 4561 : _Elem* const _Raw_new = _Unfancy(_New_ptr); - 00126 48 8b 8d c8 00 + 00128 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 + 0012f e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 00134 48 89 85 e8 00 00 00 mov QWORD PTR _Raw_new$[rbp], rax -; 4262 : if (_BUF_SIZE <= _Old_capacity) { +; 4562 : 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 + 0013b 48 83 7d 68 10 cmp QWORD PTR _Old_capacity$[rbp], 16 + 00140 72 6e jb SHORT $LN3@Reallocate -; 4263 : const pointer _Old_ptr = _My_data._Bx._Ptr; +; 4563 : 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 + 00142 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00146 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0014a 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...); +; 4564 : _Fn(_Raw_new, _Unfancy(_Old_ptr), _Old_size, _Args...); - 0014f 48 8b 8d 08 01 + 00151 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 + 00158 e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 0015d 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 + 00164 88 4c 24 20 mov BYTE PTR [rsp+32], cl + 00168 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] + 0016c 4c 8b c0 mov r8, rax + 0016f 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Raw_new$[rbp] - 00174 48 8d 8d 10 02 + 00176 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() + 0017d e8 00 00 00 00 call ??R@@QEBA@QEADQEBD_KD@Z ; ::operator() -; 4265 : _Al.deallocate(_Old_ptr, _Old_capacity + 1); +; 4565 : _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 + 00182 48 8b 45 68 mov rax, QWORD PTR _Old_capacity$[rbp] + 00186 48 ff c0 inc rax + 00189 4c 8b c0 mov r8, rax + 0018c 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Old_ptr$4[rbp] - 00191 48 8b 8d a8 00 + 00193 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 + 0019a e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate -; 4266 : _My_data._Bx._Ptr = _New_ptr; +; 4566 : _My_data._Bx._Ptr = _New_ptr; - 0019d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 001a1 48 8b 8d c8 00 + 0019f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001a3 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 + 001aa 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 4267 : } else { +; 4567 : } else { - 001ac eb 44 jmp SHORT $LN4@Reallocate + 001ae eb 44 jmp SHORT $LN4@Reallocate $LN3@Reallocate: -; 4268 : _Fn(_Raw_new, _My_data._Bx._Buf, _Old_size, _Args...); +; 4568 : _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 + 001b0 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001b4 48 83 c0 08 add rax, 8 + 001b8 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 + 001bf 88 4c 24 20 mov BYTE PTR [rsp+32], cl + 001c3 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] + 001c7 4c 8b c0 mov r8, rax + 001ca 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Raw_new$[rbp] - 001cf 48 8d 8d 10 02 + 001d1 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() + 001d8 e8 00 00 00 00 call ??R@@QEBA@QEADQEBD_KD@Z ; ::operator() -; 4269 : _Construct_in_place(_My_data._Bx._Ptr, _New_ptr); +; 4569 : _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 + 001dd 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001e1 48 83 c0 08 add rax, 8 + 001e5 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 + 001ec 48 8b c8 mov rcx, rax + 001ef e8 00 00 00 00 call ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ; std::_Construct_in_place $LN4@Reallocate: -; 4270 : } -; 4271 : -; 4272 : return *this; +; 4570 : } +; 4571 : +; 4572 : return *this; - 001f2 48 8b 85 00 02 + 001f4 48 8b 85 00 02 00 00 mov rax, QWORD PTR this$[rbp] $LN5@Reallocate: -; 4273 : } +; 4573 : } - 001f9 48 8b f8 mov rdi, rax - 001fc 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00200 48 8d 15 00 00 + 001fb 48 8b f8 mov rdi, rax + 001fe 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00202 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 + 00209 e8 00 00 00 00 call _RTC_CheckStackVars + 0020e 48 8b c7 mov rax, rdi + 00211 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 + 00218 48 33 cd xor rcx, rbp + 0021b e8 00 00 00 00 call __security_check_cookie + 00220 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 + 00227 5f pop rdi + 00228 5d pop rbp + 00229 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; COMDAT ??R@@QEBA@QEADQEBD_KD@Z _TEXT SEGMENT $T1 = 196 this$ = 256 @@ -7322,9 +6587,9 @@ _New_ptr$ = 264 _Old_ptr$ = 272 _Old_size$ = 280 _Ch$ = 288 -??R@@QEBAXQEADQEBD_KD@Z PROC ; ::operator(), COMDAT +??R@@QEBA@QEADQEBD_KD@Z PROC ; ::operator(), COMDAT -; 3619 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { +; 3873 : [](_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 @@ -7336,70 +6601,64 @@ $LN3: 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 + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3620 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); +; 3874 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); - 00045 4c 8b 85 18 01 + 0002e 4c 8b 85 18 01 00 00 mov r8, QWORD PTR _Old_size$[rbp] - 0004c 48 8b 95 10 01 + 00035 48 8b 95 10 01 00 00 mov rdx, QWORD PTR _Old_ptr$[rbp] - 00053 48 8b 8d 08 01 + 0003c 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 + 00043 e8 00 00 00 00 call ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy -; 3621 : _Traits::assign(_New_ptr[_Old_size], _Ch); +; 3875 : _Traits::assign(_New_ptr[_Old_size], _Ch); - 0005f 48 8b 85 18 01 + 00048 48 8b 85 18 01 00 00 mov rax, QWORD PTR _Old_size$[rbp] - 00066 48 8b 8d 08 01 + 0004f 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 + 00056 48 03 c8 add rcx, rax + 00059 48 8b c1 mov rax, rcx + 0005c 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 + 00063 48 8b c8 mov rcx, rax + 00066 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()); +; 3876 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); - 00082 c6 85 c4 00 00 + 0006b c6 85 c4 00 00 00 00 mov BYTE PTR $T1[rbp], 0 - 00089 48 8b 85 08 01 + 00072 48 8b 85 08 01 00 00 mov rax, QWORD PTR _New_ptr$[rbp] - 00090 48 8b 8d 18 01 + 00079 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 + 00080 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] + 00085 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 + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 3623 : }, +; 3877 : }, - 000ab 48 8d a5 e8 00 + 00094 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() + 0009b 5f pop rdi + 0009c 5d pop rbp + 0009d c3 ret 0 +??R@@QEBA@QEADQEBD_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 { +; 307 : _CONSTEXPR20_DYNALLOC void _Destroy_in_place(_Ty& _Obj) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -7408,29 +6667,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 308 : if constexpr (is_array_v<_Ty>) { +; 309 : _Destroy_range(_Obj, _Obj + extent_v<_Ty>); +; 310 : } else { +; 311 : _Obj.~_Ty(); +; 312 : } +; 313 : } + + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??$_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z _TEXT SEGMENT _Val$ = 224 @@ -7445,32 +6701,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z _TEXT SEGMENT _Ptr$ = 224 @@ -7485,41 +6735,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$_Unfancy@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@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)...) {} +; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} -$LN4: +$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 @@ -7527,40 +6771,34 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003a 48 8b 8d e0 00 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00041 e8 00 00 00 00 call ??0?$allocator@D@std@@QEAA@XZ ; std::allocator::allocator - 00046 48 8b 85 e0 00 + 0002a e8 00 00 00 00 call ??0?$allocator@D@std@@QEAA@XZ ; std::allocator::allocator + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 48 8b c8 mov rcx, rax - 00050 e8 00 00 00 00 call ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_String_val > - 00055 48 8b 85 e0 00 + 00036 48 8b c8 mov rcx, rax + 00039 e8 00 00 00 00 call ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_String_val > + 0003e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005c 48 8d a5 c8 00 + 00045 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 + 0004c 5f pop rdi + 0004d 5d pop rbp + 0004e c3 ret 0 ??$?0$$V@?$_Compressed_pair@V?$allocator@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7570,26 +6808,20 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??$?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z _TEXT SEGMENT _New_proxy$ = 8 @@ -7598,7 +6830,7 @@ this$ = 288 _Al$ = 296 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT -; 1101 : void _Alloc_proxy(_Alloc&& _Al) { +; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7608,68 +6840,62 @@ $LN3: 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1102 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); +; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); - 0003b ba 01 00 00 00 mov edx, 1 - 00040 48 8b 8d 28 01 + 00024 ba 01 00 00 00 mov edx, 1 + 00029 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00047 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate - 0004c 48 8b c8 mov rcx, rax - 0004f e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy - 00054 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax + 00030 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy + 0003d 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax -; 1103 : _Construct_in_place(*_New_proxy, this); +; 1075 : _Construct_in_place(*_New_proxy, this); - 00058 48 8b 85 20 01 + 00041 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 89 85 e8 00 + 00048 48 89 85 e8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8d 95 e8 00 + 0004f 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 00071 e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place + 00056 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 0005a e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place -; 1104 : _Myproxy = _New_proxy; +; 1076 : _Myproxy = _New_proxy; - 00076 48 8b 85 20 01 + 0005f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 00081 48 89 08 mov QWORD PTR [rax], rcx + 00066 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 0006a 48 89 08 mov QWORD PTR [rax], rcx -; 1105 : _New_proxy->_Mycont = this; +; 1077 : _New_proxy->_Mycont = this; - 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] - 00088 48 8b 8d 20 01 + 0006d 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00071 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008f 48 89 08 mov QWORD PTR [rax], rcx + 00078 48 89 08 mov QWORD PTR [rax], rcx -; 1106 : } +; 1078 : } - 00092 48 8d a5 08 01 + 0007b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00099 5f pop rdi - 0009a 5d pop rbp - 0009b c3 ret 0 + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ _TEXT SEGMENT this$ = 224 ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT -; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { +; 124 : explicit __CLR_OR_THIS_CALL operator bool() const { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -7678,33 +6904,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 126 : return _Ok; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 125 : return _Ok; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] + 00026 0f b6 40 08 movzx eax, BYTE PTR [rax+8] -; 127 : } +; 126 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ??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.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Zero_uncaught_exceptions$ = 4 @@ -7712,7 +6932,7 @@ tv72 = 212 this$ = 256 ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT -; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { +; 109 : __CLR_OR_THIS_CALL ~sentry() noexcept { $LN6: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -7721,71 +6941,65 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 110 : #if !_HAS_EXCEPTIONS +; 111 : const bool _Zero_uncaught_exceptions = true; +; 112 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 113 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 + + 0001f e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception + 00024 0f b6 c0 movzx eax, al + 00027 85 c0 test eax, eax + 00029 75 09 jne SHORT $LN4@sentry + 0002b c6 85 d4 00 00 00 01 mov BYTE PTR tv72[rbp], 1 - 00049 eb 07 jmp SHORT $LN5@sentry + 00032 eb 07 jmp SHORT $LN5@sentry $LN4@sentry: - 0004b c6 85 d4 00 00 + 00034 c6 85 d4 00 00 00 00 mov BYTE PTR tv72[rbp], 0 $LN5@sentry: - 00052 0f b6 85 d4 00 + 0003b 0f b6 85 d4 00 00 00 movzx eax, BYTE PTR tv72[rbp] - 00059 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al + 00042 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al -; 115 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv -; 116 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; -; 117 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 118 : -; 119 : if (_Zero_uncaught_exceptions) { +; 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) { - 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 + 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 -; 120 : this->_Myostr._Osfx(); +; 119 : this->_Myostr._Osfx(); - 00064 48 8b 85 00 01 + 0004d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ $LN2@sentry: -; 121 : } -; 122 : } +; 120 : } +; 121 : } - 00074 48 8b 8d 00 01 + 0005d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00080 90 npad 1 - 00081 48 8d a5 e8 00 + 00064 e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00069 90 npad 1 + 0006a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Tied$ = 8 @@ -7803,124 +7017,117 @@ $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 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00042 48 8b 8d 00 01 + 0002b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base - 0004e 90 npad 1 + 00032 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base + 00037 90 npad 1 ; 93 : if (!_Ostr.good()) { - 0004f 48 8b 85 08 01 + 00038 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00056 48 8b 00 mov rax, QWORD PTR [rax] - 00059 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005d 48 8b 8d 08 01 + 0003f 48 8b 00 mov rax, QWORD PTR [rax] + 00042 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00046 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 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 + 0004d 48 03 c8 add rcx, rax + 00050 48 8b c1 mov rax, rcx + 00053 48 8b c8 mov rcx, rax + 00056 ff 15 00 00 00 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00073 0f b6 c0 movzx eax, al - 00076 85 c0 test eax, eax - 00078 75 10 jne SHORT $LN2@sentry + 0005c 0f b6 c0 movzx eax, al + 0005f 85 c0 test eax, eax + 00061 75 10 jne SHORT $LN2@sentry ; 94 : _Ok = false; - 0007a 48 8b 85 00 01 + 00063 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 + 0006a c6 40 08 00 mov BYTE PTR [rax+8], 0 ; 95 : return; - 00085 e9 81 00 00 00 jmp $LN1@sentry + 0006e e9 81 00 00 00 jmp $LN1@sentry $LN2@sentry: ; 96 : } ; 97 : ; 98 : const auto _Tied = _Ostr.tie(); - 0008a 48 8b 85 08 01 + 00073 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00091 48 8b 00 mov rax, QWORD PTR [rax] - 00094 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00098 48 8b 8d 08 01 + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00081 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 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 + 00088 48 03 c8 add rcx, rax + 0008b 48 8b c1 mov rax, rcx + 0008e 48 8b c8 mov rcx, rax + 00091 ff 15 00 00 00 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ - 000ae 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax + 00097 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax ; 99 : if (!_Tied || _Tied == &_Ostr) { - 000b2 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 - 000b7 74 0d je SHORT $LN4@sentry - 000b9 48 8b 85 08 01 + 0009b 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 + 000a0 74 0d je SHORT $LN4@sentry + 000a2 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000c4 75 0d jne SHORT $LN3@sentry + 000a9 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax + 000ad 75 0d jne SHORT $LN3@sentry $LN4@sentry: ; 100 : _Ok = true; - 000c6 48 8b 85 00 01 + 000af 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 + 000b6 c6 40 08 01 mov BYTE PTR [rax+8], 1 ; 101 : return; - 000d1 eb 38 jmp SHORT $LN1@sentry + 000ba eb 38 jmp SHORT $LN1@sentry $LN3@sentry: ; 102 : } ; 103 : -; 104 : -; 105 : _Tied->flush(); +; 104 : _Tied->flush(); - 000d3 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000d7 ff 15 00 00 00 + 000bc 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] + 000c0 ff 15 00 00 00 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ -; 106 : _Ok = _Ostr.good(); // store test only after flushing tie +; 105 : _Ok = _Ostr.good(); // store test only after flushing tie - 000dd 48 8b 85 08 01 + 000c6 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000e4 48 8b 00 mov rax, QWORD PTR [rax] - 000e7 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000eb 48 8b 8d 08 01 + 000cd 48 8b 00 mov rax, QWORD PTR [rax] + 000d0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000d4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 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 + 000db 48 03 c8 add rcx, rax + 000de 48 8b c1 mov rax, rcx + 000e1 48 8b c8 mov rcx, rax + 000e4 ff 15 00 00 00 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00101 48 8b 8d 00 01 + 000ea 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00108 88 41 08 mov BYTE PTR [rcx+8], al + 000f1 88 41 08 mov BYTE PTR [rcx+8], al $LN1@sentry: -; 107 : } +; 106 : } - 0010b 48 8b 85 00 01 + 000f4 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 8d a5 e8 00 + 000fb 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00119 5f pop rdi - 0011a 5d pop rbp - 0011b c3 ret 0 + 00102 5f pop rdi + 00103 5d pop rbp + 00104 c3 ret 0 ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry _TEXT ENDS ; COMDAT text$x @@ -7967,7 +7174,7 @@ _Ostr$ = 264 ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Rdbuf$ = 8 @@ -7984,62 +7191,56 @@ $LN4: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 79 : const auto _Rdbuf = _Myostr.rdbuf(); - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 85 d8 00 + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 85 d8 00 00 00 mov QWORD PTR tv72[rbp], rax - 00047 48 8b 85 d8 00 + 00030 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv72[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00055 48 8b 8d d8 00 + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0003e 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv72[rbp] - 0005c 48 03 c8 add rcx, rax - 0005f 48 8b c1 mov rax, rcx - 00062 48 8b c8 mov rcx, rax - 00065 ff 15 00 00 00 + 00045 48 03 c8 add rcx, rax + 00048 48 8b c1 mov rax, rcx + 0004b 48 8b c8 mov rcx, rax + 0004e ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 00054 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 80 : if (_Rdbuf) { - 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00074 74 0f je SHORT $LN2@Sentry_bas + 00058 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0005d 74 0f je SHORT $LN2@Sentry_bas ; 81 : _Rdbuf->_Unlock(); - 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00081 ff 50 10 call QWORD PTR [rax+16] - 00084 90 npad 1 + 0005f 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00063 48 8b 00 mov rax, QWORD PTR [rax] + 00066 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 0006a ff 50 10 call QWORD PTR [rax+16] + 0006d 90 npad 1 $LN2@Sentry_bas: ; 82 : } ; 83 : } - 00085 48 8d a5 e8 00 + 0006e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Rdbuf$ = 8 @@ -8058,75 +7259,69 @@ $LN4: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d 08 01 + 0002b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00032 48 89 08 mov QWORD PTR [rax], rcx ; 72 : const auto _Rdbuf = _Myostr.rdbuf(); - 0004c 48 8b 85 00 01 + 00035 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 89 85 d8 00 + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 89 85 d8 00 00 00 mov QWORD PTR tv73[rbp], rax - 0005d 48 8b 85 d8 00 + 00046 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv73[rbp] - 00064 48 8b 00 mov rax, QWORD PTR [rax] - 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0006b 48 8b 8d d8 00 + 0004d 48 8b 00 mov rax, QWORD PTR [rax] + 00050 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00054 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv73[rbp] - 00072 48 03 c8 add rcx, rax - 00075 48 8b c1 mov rax, rcx - 00078 48 8b c8 mov rcx, rax - 0007b ff 15 00 00 00 + 0005b 48 03 c8 add rcx, rax + 0005e 48 8b c1 mov rax, rcx + 00061 48 8b c8 mov rcx, rax + 00064 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 0006a 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 73 : if (_Rdbuf) { - 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0008a 74 0e je SHORT $LN2@Sentry_bas + 0006e 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00073 74 0e je SHORT $LN2@Sentry_bas ; 74 : _Rdbuf->_Lock(); - 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00090 48 8b 00 mov rax, QWORD PTR [rax] - 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00097 ff 50 08 call QWORD PTR [rax+8] + 00075 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00079 48 8b 00 mov rax, QWORD PTR [rax] + 0007c 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00080 ff 50 08 call QWORD PTR [rax+8] $LN2@Sentry_bas: ; 75 : } ; 76 : } - 0009a 48 8b 85 00 01 + 00083 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8d a5 e8 00 + 0008a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT -; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8136,39 +7331,32 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1028 : using _Ty = typename _Alloc::value_type; -; 1029 : _Ptr->~_Ty(); -; 1030 : _Deallocate_plain(_Al, _Ptr); - - 0003b 48 8b 95 e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1000 : using _Ty = typename _Alloc::value_type; +; 1001 : _Ptr->~_Ty(); +; 1002 : _Deallocate_plain(_Al, _Ptr); + + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > - 0004e 90 npad 1 + 00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > -; 1031 : } +; 1003 : } - 0004f 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility ; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT _Old_val$ = 8 @@ -8176,7 +7364,7 @@ _Val$ = 256 _New_val$ = 264 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8186,55 +7374,49 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 598 : // assign _New_val to _Val, return previous _Val -; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 615 : // assign _New_val to _Val, return previous _Val +; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 0003b 48 8b 85 00 01 + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 600 : _Val = static_cast<_Other&&>(_New_val); +; 617 : _Val = static_cast<_Other&&>(_New_val); - 00049 48 8b 85 00 01 + 00032 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00050 48 8b 8d 08 01 + 00039 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00057 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005a 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 8b 09 mov rcx, QWORD PTR [rcx] + 00043 48 89 08 mov QWORD PTR [rax], rcx -; 601 : return _Old_val; +; 618 : return _Old_val; - 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 602 : } +; 619 : } - 00061 48 8d a5 e8 00 + 0004a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8244,33 +7426,27 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT -; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8280,35 +7456,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> - 00047 48 8b c8 mov rcx, rax - 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 808 : } +; 840 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 @@ -8323,32 +7493,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility ; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z _TEXT SEGMENT $T1 = 200 @@ -8357,7 +7521,7 @@ _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 */ { +; 66 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8367,55 +7531,49 @@ $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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 68 : // return smaller of _Left and _Right -; 69 : return _Right < _Left ? _Right : _Left; +; 67 : // return smaller of _Left and _Right +; 68 : return _Right < _Left ? _Right : _Left; - 0003b 48 8b 85 08 01 + 00024 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00042 48 8b 8d 00 01 + 0002b 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 + 00032 48 8b 09 mov rcx, QWORD PTR [rcx] + 00035 48 39 08 cmp QWORD PTR [rax], rcx + 00038 73 10 jae SHORT $LN3@min + 0003a 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00058 48 89 85 d8 00 + 00041 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax - 0005f eb 0e jmp SHORT $LN4@min + 00048 eb 0e jmp SHORT $LN4@min $LN3@min: - 00061 48 8b 85 00 01 + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00068 48 89 85 d8 00 + 00051 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax $LN4@min: - 0006f 48 8b 85 d8 00 + 00058 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv65[rbp] - 00076 48 89 85 c8 00 + 0005f 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0007d 48 8b 85 c8 00 + 00066 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] -; 70 : } +; 69 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z _TEXT SEGMENT _Lock$6 = 4 @@ -8429,7 +7587,7 @@ __$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 +; 428 : 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 @@ -8438,192 +7596,192 @@ $LN11: 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 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 e8 01 00 00 mov rcx, QWORD PTR [rsp+488] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 98 01 + 00033 48 33 c5 xor rax, rbp + 00036 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 + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 427 : _BEGIN_LOCK(_LOCK_LOCALE) // the thread lock, make get atomic +; 429 : _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 + 00049 33 d2 xor edx, edx + 0004b 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - 00053 90 npad 1 + 00055 90 npad 1 -; 428 : const locale::facet* _Psave = _Facetptr<_Facet>::_Psave; // static pointer to lazy facet +; 430 : const locale::facet* _Psave = _Facetptr<_Facet>::_Psave; // static pointer to lazy facet - 00054 48 8b 05 00 00 + 00056 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 + 0005d 48 89 45 28 mov QWORD PTR _Psave$7[rbp], rax -; 429 : -; 430 : const size_t _Id = _Facet::id; +; 431 : +; 432 : const size_t _Id = _Facet::id; - 0005f 48 8b 0d 00 00 + 00061 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 + 00068 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 + 0006e 48 89 45 48 mov QWORD PTR _Id$8[rbp], rax -; 431 : const locale::facet* _Pf = _Loc._Getfacet(_Id); +; 433 : 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 + 00072 48 8b 55 48 mov rdx, QWORD PTR _Id$8[rbp] + 00076 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 + 0007d e8 00 00 00 00 call ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ; std::locale::_Getfacet + 00082 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax -; 432 : -; 433 : if (!_Pf) { +; 434 : +; 435 : if (!_Pf) { - 00084 48 83 7d 68 00 cmp QWORD PTR _Pf$9[rbp], 0 - 00089 0f 85 af 00 00 + 00086 48 83 7d 68 00 cmp QWORD PTR _Pf$9[rbp], 0 + 0008b 0f 85 af 00 00 00 jne $LN2@use_facet -; 434 : if (_Psave) { +; 436 : if (_Psave) { - 0008f 48 83 7d 28 00 cmp QWORD PTR _Psave$7[rbp], 0 - 00094 74 0d je SHORT $LN3@use_facet + 00091 48 83 7d 28 00 cmp QWORD PTR _Psave$7[rbp], 0 + 00096 74 0d je SHORT $LN3@use_facet -; 435 : _Pf = _Psave; // lazy facet already allocated +; 437 : _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 + 00098 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 0009c 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + 000a0 e9 9b 00 00 00 jmp $LN2@use_facet $LN3@use_facet: -; 436 : } else if (_Facet::_Getcat(&_Psave, &_Loc) == static_cast(-1)) { +; 438 : } else if (_Facet::_Getcat(&_Psave, &_Loc) == static_cast(-1)) { - 000a3 48 8b 95 c0 01 + 000a5 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 + 000ac 48 8d 4d 28 lea rcx, QWORD PTR _Psave$7[rbp] + 000b0 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 + 000b6 48 83 f8 ff cmp rax, -1 + 000ba 75 08 jne SHORT $LN5@use_facet -; 437 : #if _HAS_EXCEPTIONS -; 438 : _Throw_bad_cast(); // lazy disallowed +; 439 : #if _HAS_EXCEPTIONS +; 440 : _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 + 000bc e8 00 00 00 00 call ?_Throw_bad_cast@std@@YAXXZ ; std::_Throw_bad_cast + 000c1 90 npad 1 -; 439 : #else // _HAS_EXCEPTIONS -; 440 : _CSTD abort(); // lazy disallowed -; 441 : #endif // _HAS_EXCEPTIONS -; 442 : } else { // queue up lazy facet for destruction +; 441 : #else // _HAS_EXCEPTIONS +; 442 : _CSTD abort(); // lazy disallowed +; 443 : #endif // _HAS_EXCEPTIONS +; 444 : } else { // queue up lazy facet for destruction - 000c0 eb 7c jmp SHORT $LN2@use_facet + 000c2 eb 7c jmp SHORT $LN2@use_facet $LN5@use_facet: -; 443 : auto _Pfmod = const_cast(_Psave); +; 445 : auto _Pfmod = const_cast(_Psave); - 000c2 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] - 000c6 48 89 85 88 00 + 000c4 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 000c8 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)); +; 446 : 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 + 000cf ba 08 00 00 00 mov edx, 8 + 000d4 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 + 000db 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 + 000e0 48 8b 95 88 00 00 00 mov rdx, QWORD PTR _Pfmod$10[rbp] - 000e5 48 8d 8d a8 00 + 000e7 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 + 000ee 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> + 000f3 90 npad 1 -; 445 : -; 446 : #if defined(_M_CEE) -; 447 : _Facet_Register_m(_Pfmod); -; 448 : #else // defined(_M_CEE) -; 449 : _Facet_Register(_Pfmod); +; 447 : +; 448 : #if defined(_M_CEE) +; 449 : _Facet_Register_m(_Pfmod); +; 450 : #else // defined(_M_CEE) +; 451 : _Facet_Register(_Pfmod); - 000f2 48 8b 8d 88 00 + 000f4 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 + 000fb 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(); +; 452 : #endif // defined(_M_CEE) +; 453 : +; 454 : _Pfmod->_Incref(); - 000fe 48 8b 85 88 00 + 00100 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 + 00107 48 8b 00 mov rax, QWORD PTR [rax] + 0010a 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Pfmod$10[rbp] - 0010f ff 50 08 call QWORD PTR [rax+8] + 00111 ff 50 08 call QWORD PTR [rax+8] -; 453 : _Facetptr<_Facet>::_Psave = _Psave; +; 455 : _Facetptr<_Facet>::_Psave = _Psave; - 00112 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] - 00116 48 89 05 00 00 + 00114 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 00118 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; +; 456 : _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 + 0011f 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 00123 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax -; 455 : -; 456 : (void) _Psave_guard.release(); +; 457 : +; 458 : (void) _Psave_guard.release(); - 00125 48 8d 8d a8 00 + 00127 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 + 0012e 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 + 00133 90 npad 1 -; 457 : } +; 459 : } - 00132 48 8d 8d a8 00 + 00134 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 > + 0013b 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 +; 460 : } +; 461 : +; 462 : 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 + 00140 48 8b 45 68 mov rax, QWORD PTR _Pf$9[rbp] + 00144 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 + 0014b 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] + 0014f ff 15 00 00 00 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 00153 48 8b 85 88 01 + 00155 48 8b 85 88 01 00 00 mov rax, QWORD PTR $T12[rbp] -; 461 : _END_LOCK() -; 462 : } // end of use_facet body +; 463 : _END_LOCK() +; 464 : } // 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 + 0015c 48 8b f8 mov rdi, rax + 0015f 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00163 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 + 0016a e8 00 00 00 00 call _RTC_CheckStackVars + 0016f 48 8b c7 mov rax, rdi + 00172 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 + 00179 48 33 cd xor rcx, rbp + 0017c e8 00 00 00 00 call __security_check_cookie + 00181 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 + 00188 5f pop rdi + 00189 5d pop rbp + 0018a 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 @@ -8738,412 +7896,448 @@ _Loc$ = 448 ?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 +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT main _TEXT SEGMENT RetNumBlock$ = 8 Obf$ = 88 -AsmSize$ = 132 -Asm$ = 168 -Exec$ = 200 -$T6 = 420 -tv143 = 440 -tv132 = 448 -tv141 = 456 -tv139 = 464 -__$ArrayPad$ = 472 +AsmSize$ = 148 +Asm$ = 184 +Exec$ = 216 +$T6 = 436 +tv149 = 456 +tv137 = 464 +tv147 = 472 +tv145 = 480 +__$ArrayPad$ = 488 main PROC ; COMDAT -; 90 : { +; 92 : { $LN7: 00000 40 55 push rbp 00002 57 push rdi - 00003 48 81 ec 08 02 - 00 00 sub rsp, 520 ; 00000208H + 00003 48 81 ec 18 02 + 00 00 sub rsp, 536 ; 00000218H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 82 00 00 00 mov ecx, 130 ; 00000082H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8b 05 00 00 + 0000f 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00014 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001e f3 ab rep stosd + 00020 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00025 48 33 c5 xor rax, rbp - 00028 48 89 85 d8 01 + 00027 48 33 c5 xor rax, rbp + 0002a 48 89 85 e8 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 + 00031 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 91 : XedTablesInit(); +; 93 : XedTablesInit(); - 0003b e8 00 00 00 00 call xed_tables_init + 0003d e8 00 00 00 00 call xed_tables_init -; 92 : srand(time(NULL)); +; 94 : 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 + 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 -; 93 : -; 94 : -; 95 : NATIVE_CODE_BLOCK RetNumBlock; +; 95 : +; 96 : system("pause"); + + 00051 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ + 00058 ff 15 00 00 00 + 00 call QWORD PTR __imp_system - 0004f 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00053 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 00058 90 npad 1 +; 97 : +; 98 : NATIVE_CODE_BLOCK RetNumBlock; + + 0005e 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00062 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00067 90 npad 1 -; 96 : NcDisassemble(&RetNumBlock, RetNumCode, sizeof(RetNumCode)); +; 99 : NcDisassemble(&RetNumBlock, RetNumCode, sizeof(RetNumCode)); - 00059 41 b8 1d 00 00 + 00068 41 b8 1d 00 00 00 mov r8d, 29 - 0005f 48 8d 15 00 00 + 0006e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?RetNumCode@@3PAEA ; RetNumCode - 00066 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 0006a e8 00 00 00 00 call ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble + 00075 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00079 e8 00 00 00 00 call ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble -; 97 : OBFUSCATOR Obf; -; 98 : Obf.Flags = 0; +; 100 : OBFUSCATOR Obf; +; 101 : Obf.Flags = 0; - 0006f c7 45 64 00 00 + 0007e c7 45 64 00 00 00 00 mov DWORD PTR Obf$[rbp+12], 0 -; 99 : Obf.MinSizeForOpaqueBranch = 1; +; 102 : Obf.MinSizeForOpaqueBranch = 1; - 00076 c7 45 5c 01 00 + 00085 c7 45 5c 01 00 00 00 mov DWORD PTR Obf$[rbp+4], 1 -; 100 : Obf.InstructionMutateChance = 0; +; 103 : Obf.InstructionMutateChance = 100; - 0007d c6 45 61 00 mov BYTE PTR Obf$[rbp+9], 0 + 0008c c6 45 61 64 mov BYTE PTR Obf$[rbp+9], 100 ; 00000064H -; 101 : Obf.OpaqueBranchChance = 100; +; 104 : Obf.OpaqueBranchChance = 100; - 00081 c6 45 60 64 mov BYTE PTR Obf$[rbp+8], 100 ; 00000064H + 00090 c6 45 60 64 mov BYTE PTR Obf$[rbp+8], 100 ; 00000064H -; 102 : Obf.MinDepthForRandomOpaqueBranch = 0; +; 105 : Obf.MinDepthForRandomOpaqueBranch = 0; - 00085 c7 45 58 00 00 + 00094 c7 45 58 00 00 00 00 mov DWORD PTR Obf$[rbp], 0 -; 103 : Obf.GlobalBlock = &RetNumBlock; +; 106 : Obf.GlobalBlock = &RetNumBlock; + + 0009b 48 8d 45 08 lea rax, QWORD PTR RetNumBlock$[rbp] + 0009f 48 89 45 68 mov QWORD PTR Obf$[rbp+16], rax - 0008c 48 8d 45 08 lea rax, QWORD PTR RetNumBlock$[rbp] - 00090 48 89 45 68 mov QWORD PTR Obf$[rbp+16], rax +; 107 : Obf.BlockDivisionFactor = 2; -; 104 : Obf.BlockDivisionFactor = 2; + 000a3 c6 45 62 02 mov BYTE PTR Obf$[rbp+10], 2 - 00094 c6 45 62 02 mov BYTE PTR Obf$[rbp+10], 2 +; 108 : Obf.MaxDepth = 800000; -; 105 : Obf.InstructionMutateChance = 100; + 000a7 c7 45 70 00 35 + 0c 00 mov DWORD PTR Obf$[rbp+24], 800000 ; 000c3500H - 00098 c6 45 61 64 mov BYTE PTR Obf$[rbp+9], 100 ; 00000064H +; 109 : ObfObfuscate1(&Obf, &RetNumBlock); -; 106 : ObfObfuscate1(&Obf, &RetNumBlock); + 000ae 45 33 c0 xor r8d, r8d + 000b1 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] + 000b5 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 000b9 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - 0009c 45 33 c0 xor r8d, r8d - 0009f 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] - 000a3 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] - 000a7 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 +; 110 : Obf.MinSizeForOpaqueBranch = 5; -; 107 : Obf.MinSizeForOpaqueBranch = 50; + 000be c7 45 5c 05 00 + 00 00 mov DWORD PTR Obf$[rbp+4], 5 - 000ac c7 45 5c 32 00 - 00 00 mov DWORD PTR Obf$[rbp+4], 50 ; 00000032H +; 111 : Obf.InstructionMutateChance = 0; -; 108 : Obf.InstructionMutateChance = 50; + 000c5 c6 45 61 00 mov BYTE PTR Obf$[rbp+9], 0 - 000b3 c6 45 61 32 mov BYTE PTR Obf$[rbp+9], 50 ; 00000032H +; 112 : Obf.OpaqueBranchChance = 100; -; 109 : ObfObfuscate1(&Obf, &RetNumBlock); + 000c9 c6 45 60 64 mov BYTE PTR Obf$[rbp+8], 100 ; 00000064H - 000b7 45 33 c0 xor r8d, r8d - 000ba 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] - 000be 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] - 000c2 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 +; 113 : ObfObfuscate1(&Obf, &RetNumBlock, 0); -; 110 : -; 111 : printf("Finished second pas.\n"); + 000cd 45 33 c0 xor r8d, r8d + 000d0 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] + 000d4 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 000d8 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - 000c7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ - 000ce e8 00 00 00 00 call printf +; 114 : Obf.MinSizeForOpaqueBranch = 50; + + 000dd c7 45 5c 32 00 + 00 00 mov DWORD PTR Obf$[rbp+4], 50 ; 00000032H + +; 115 : ObfObfuscate1(&Obf, &RetNumBlock, 0); + + 000e4 45 33 c0 xor r8d, r8d + 000e7 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] + 000eb 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 000ef e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 -; 112 : //Obf.MinSizeForOpaqueBranch = 200; -; 113 : //ObfObfuscate1(&Obf, &RetNumBlock); -; 114 : //Obf.MinSizeForOpaqueBranch = 30; -; 115 : //ObfObfuscate(&Obf, &RetNumBlock); ; 116 : ; 117 : -; 118 : ULONG AsmSize; -; 119 : PVOID Asm = NcAssemble(&RetNumBlock, &AsmSize); +; 118 : printf("Finished second pas.\n"); - 000d3 48 8d 95 84 00 + 000f4 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ + 000fb e8 00 00 00 00 call printf + +; 119 : //Obf.MinSizeForOpaqueBranch = 200; +; 120 : //ObfObfuscate1(&Obf, &RetNumBlock); +; 121 : //Obf.MinSizeForOpaqueBranch = 30; +; 122 : //ObfObfuscate(&Obf, &RetNumBlock); +; 123 : +; 124 : NcDebugPrint(&RetNumBlock); + + 00100 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00104 e8 00 00 00 00 call ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint + +; 125 : +; 126 : ULONG AsmSize; +; 127 : PVOID Asm = NcAssemble(&RetNumBlock, &AsmSize); + + 00109 48 8d 95 94 00 00 00 lea rdx, QWORD PTR AsmSize$[rbp] - 000da 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 000de e8 00 00 00 00 call ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble - 000e3 48 89 85 a8 00 + 00110 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00114 e8 00 00 00 00 call ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble + 00119 48 89 85 b8 00 00 00 mov QWORD PTR Asm$[rbp], rax -; 120 : if (!Asm) +; 128 : if (!Asm) - 000ea 48 83 bd a8 00 + 00120 48 83 bd b8 00 00 00 00 cmp QWORD PTR Asm$[rbp], 0 - 000f2 75 37 jne SHORT $LN2@main + 00128 75 37 jne SHORT $LN2@main -; 121 : { -; 122 : printf("failed to assemble\n"); +; 129 : { +; 130 : printf("failed to assemble\n"); - 000f4 48 8d 0d 00 00 + 0012a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ - 000fb e8 00 00 00 00 call printf + 00131 e8 00 00 00 00 call printf -; 123 : system("pause"); +; 131 : system("pause"); - 00100 48 8d 0d 00 00 + 00136 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 00107 ff 15 00 00 00 + 0013d ff 15 00 00 00 00 call QWORD PTR __imp_system -; 124 : return 1; +; 132 : return 1; - 0010d c7 85 a4 01 00 + 00143 c7 85 b4 01 00 00 01 00 00 00 mov DWORD PTR $T6[rbp], 1 - 00117 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 0011b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00120 8b 85 a4 01 00 + 0014d 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00151 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00156 8b 85 b4 01 00 00 mov eax, DWORD PTR $T6[rbp] - 00126 e9 b5 00 00 00 jmp $LN5@main + 0015c e9 c0 00 00 00 jmp $LN5@main $LN2@main: -; 125 : } -; 126 : PutToFile(Asm, AsmSize); +; 133 : } +; 134 : PutToFile(Asm, AsmSize); - 0012b 8b 95 84 00 00 + 00161 8b 95 94 00 00 00 mov edx, DWORD PTR AsmSize$[rbp] - 00131 48 8b 8d a8 00 + 00167 48 8b 8d b8 00 00 00 mov rcx, QWORD PTR Asm$[rbp] - 00138 e8 00 00 00 00 call ?PutToFile@@YAXPEAXK@Z ; PutToFile + 0016e e8 00 00 00 00 call ?PutToFile@@YAXPEAXK@Z ; PutToFile -; 127 : system("pause"); +; 135 : system("pause"); - 0013d 48 8d 0d 00 00 + 00173 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 00144 ff 15 00 00 00 + 0017a ff 15 00 00 00 00 call QWORD PTR __imp_system -; 128 : -; 129 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); +; 136 : +; 137 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); - 0014a 8b 95 84 00 00 + 00180 8b 95 94 00 00 00 mov edx, DWORD PTR AsmSize$[rbp] - 00150 48 8b 8d a8 00 + 00186 48 8b 8d b8 00 00 00 mov rcx, QWORD PTR Asm$[rbp] - 00157 e8 00 00 00 00 call ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer - 0015c 48 89 85 c8 00 + 0018d e8 00 00 00 00 call ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer + 00192 48 89 85 d8 00 00 00 mov QWORD PTR Exec$[rbp], rax -; 130 : typedef ULONG64(*FnRetNum)(ULONG Num); -; 131 : printf("\n\nSize: %u Obfuscated: %llu Original: %llu\n\n", NcCountInstructions(&RetNumBlock), ((FnRetNum)Exec)(1776), RetNum(1776)); +; 138 : typedef ULONG64(*FnRetNum)(ULONG Num); +; 139 : printf("\n\nSize: %u Obfuscated: %llu Original: %llu\n\n", NcCountInstructions(&RetNumBlock), ((FnRetNum)Exec)(1776), RetNum(1776)); - 00163 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H - 00168 e8 00 00 00 00 call RetNum - 0016d 48 89 85 b8 01 - 00 00 mov QWORD PTR tv143[rbp], rax - 00174 48 8b 85 c8 00 + 00199 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H + 0019e e8 00 00 00 00 call RetNum + 001a3 48 89 85 c8 01 + 00 00 mov QWORD PTR tv149[rbp], rax + 001aa 48 8b 85 d8 00 00 00 mov rax, QWORD PTR Exec$[rbp] - 0017b 48 89 85 c0 01 - 00 00 mov QWORD PTR tv132[rbp], rax - 00182 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H - 00187 ff 95 c0 01 00 - 00 call QWORD PTR tv132[rbp] - 0018d 48 89 85 c8 01 - 00 00 mov QWORD PTR tv141[rbp], rax - 00194 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00198 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCountInstructions - 0019d 89 85 d0 01 00 - 00 mov DWORD PTR tv139[rbp], eax - 001a3 4c 8b 8d b8 01 - 00 00 mov r9, QWORD PTR tv143[rbp] - 001aa 4c 8b 85 c8 01 - 00 00 mov r8, QWORD PTR tv141[rbp] - 001b1 8b 95 d0 01 00 - 00 mov edx, DWORD PTR tv139[rbp] - 001b7 48 8d 0d 00 00 + 001b1 48 89 85 d0 01 + 00 00 mov QWORD PTR tv137[rbp], rax + 001b8 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H + 001bd ff 95 d0 01 00 + 00 call QWORD PTR tv137[rbp] + 001c3 48 89 85 d8 01 + 00 00 mov QWORD PTR tv147[rbp], rax + 001ca 33 d2 xor edx, edx + 001cc 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 001d0 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ; NcCountInstructions + 001d5 89 85 e0 01 00 + 00 mov DWORD PTR tv145[rbp], eax + 001db 4c 8b 8d c8 01 + 00 00 mov r9, QWORD PTR tv149[rbp] + 001e2 4c 8b 85 d8 01 + 00 00 mov r8, QWORD PTR tv147[rbp] + 001e9 8b 95 e0 01 00 + 00 mov edx, DWORD PTR tv145[rbp] + 001ef 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0DC@MEGCPGB@?6?6Size?3?5?$CFu?5?5?5Obfuscated?3?5?$CFllu?5?5@ - 001be e8 00 00 00 00 call printf + 001f6 e8 00 00 00 00 call printf -; 132 : system("pause"); +; 140 : NcDeleteBlock(&RetNumBlock); - 001c3 48 8d 0d 00 00 + 001fb 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 001ff e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 141 : system("pause"); + + 00204 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 001ca ff 15 00 00 00 + 0020b ff 15 00 00 00 00 call QWORD PTR __imp_system - 001d0 90 npad 1 - -; 133 : -; 134 : -; 135 : /*NATIVE_CODE_BLOCK Block; -; 136 : NcDisassemble(&Block, meme1, sizeof(meme1)); -; 137 : OBFUSCATOR Obf; -; 138 : Obf.Flags = 0; -; 139 : Obf.MinSizeForOpaqueBranch = 12; -; 140 : Obf.GlobalBlock = &Block; -; 141 : ObfObfuscate(&Obf, &Block); -; 142 : Obf.MinSizeForOpaqueBranch = 4; -; 143 : ObfObfuscate(&Obf, &Block); -; 144 : NcDebugPrint(&Block); -; 145 : -; 146 : ULONG ByteSize = NcCalcBlockSizeInBytes(&Block); -; 147 : ULONG InstSize = NcCountInstructions(&Block); -; 148 : -; 149 : printf("Bytes: %u, Insts: %u, FlagsMeme: %u.\n", ByteSize, InstSize, Obf.Flags); -; 150 : -; 151 : ULONG AsmSize; -; 152 : PVOID Asm = NcAssemble(&Block, &AsmSize); -; 153 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); -; 154 : typedef ULONG(*FnGetFour)(); -; 155 : printf("numba is: %u size is %u\n\n", ((FnGetFour)Exec)(), AsmSize); -; 156 : PutToFile(Asm, AsmSize);*/ + 00211 90 npad 1 + +; 142 : +; 143 : +; 144 : /*NATIVE_CODE_BLOCK Block; +; 145 : NcDisassemble(&Block, meme1, sizeof(meme1)); +; 146 : OBFUSCATOR Obf; +; 147 : Obf.Flags = 0; +; 148 : Obf.MinSizeForOpaqueBranch = 12; +; 149 : Obf.GlobalBlock = &Block; +; 150 : ObfObfuscate(&Obf, &Block); +; 151 : Obf.MinSizeForOpaqueBranch = 4; +; 152 : ObfObfuscate(&Obf, &Block); +; 153 : NcDebugPrint(&Block); +; 154 : +; 155 : ULONG ByteSize = NcCalcBlockSizeInBytes(&Block); +; 156 : ULONG InstSize = NcCountInstructions(&Block); ; 157 : -; 158 : -; 159 : //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); -; 160 : //PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); -; 161 : //PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); -; 162 : //PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); -; 163 : //PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); -; 164 : //PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); -; 165 : -; 166 : //NcAppendToBlock(Pre1, Return1776); -; 167 : //NcInsertBlockAfter(Pre1->End, Post1, 0); -; 168 : //Pre1->End = Post1->End; -; 169 : //NcInsertBlockAfter(Pre1->End, Pre2, 0); -; 170 : //Pre1->End = Pre2->End; -; 171 : //NcAppendToBlock(Pre1, RetInst); -; 172 : //NcInsertBlockAfter(Pre1->End, Post2, 0); -; 173 : //Pre1->End = Post2->End; +; 158 : printf("Bytes: %u, Insts: %u, FlagsMeme: %u.\n", ByteSize, InstSize, Obf.Flags); +; 159 : +; 160 : ULONG AsmSize; +; 161 : PVOID Asm = NcAssemble(&Block, &AsmSize); +; 162 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); +; 163 : typedef ULONG(*FnGetFour)(); +; 164 : printf("numba is: %u size is %u\n\n", ((FnGetFour)Exec)(), AsmSize); +; 165 : PutToFile(Asm, AsmSize);*/ +; 166 : +; 167 : +; 168 : //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 169 : //PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); +; 170 : //PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); +; 171 : //PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); +; 172 : //PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); +; 173 : //PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); ; 174 : -; 175 : ///*Pre->Start = Return1776; -; 176 : //Pre->End = Return1776;*/ -; 177 : -; 178 : //for (ULONG i = 0; i < Return1776->RawDataSize; i++) -; 179 : // Return1776->RawData[i] = (UCHAR)rand(); -; 180 : //for (ULONG i = 0; i < RetInst->RawDataSize; i++) -; 181 : // RetInst->RawData[i] = (UCHAR)rand(); -; 182 : +; 175 : //NcAppendToBlock(Pre1, Return1776); +; 176 : //NcInsertBlockAfter(Pre1->End, Post1, 0); +; 177 : //Pre1->End = Post1->End; +; 178 : //NcInsertBlockAfter(Pre1->End, Pre2, 0); +; 179 : //Pre1->End = Pre2->End; +; 180 : //NcAppendToBlock(Pre1, RetInst); +; 181 : //NcInsertBlockAfter(Pre1->End, Post2, 0); +; 182 : //Pre1->End = Post2->End; ; 183 : -; 184 : -; 185 : //ULONG AsmLen; -; 186 : //PVOID Asm = NcAssemble(Pre1, &AsmLen); -; 187 : //PUCHAR Tb = (PUCHAR)Asm; -; 188 : //for (uint32_t i = 0; i < AsmLen; i++) -; 189 : //{ -; 190 : // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; -; 191 : //} +; 184 : ///*Pre->Start = Return1776; +; 185 : //Pre->End = Return1776;*/ +; 186 : +; 187 : //for (ULONG i = 0; i < Return1776->RawDataSize; i++) +; 188 : // Return1776->RawData[i] = (UCHAR)rand(); +; 189 : //for (ULONG i = 0; i < RetInst->RawDataSize; i++) +; 190 : // RetInst->RawData[i] = (UCHAR)rand(); +; 191 : ; 192 : -; 193 : //system("pause"); -; 194 : -; 195 : //typedef ULONG64(*FnGet1776)(); -; 196 : //FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); -; 197 : //if (ExecBuffer) +; 193 : +; 194 : //ULONG AsmLen; +; 195 : //PVOID Asm = NcAssemble(Pre1, &AsmLen); +; 196 : //PUCHAR Tb = (PUCHAR)Asm; +; 197 : //for (uint32_t i = 0; i < AsmLen; i++) ; 198 : //{ -; 199 : // printf("The numba was: %X\n", ExecBuffer()); -; 200 : // printf("The numba was: %X\n", ExecBuffer()); +; 199 : // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 200 : //} ; 201 : -; 202 : // printf("The numba was: %X\n", ExecBuffer()); +; 202 : //system("pause"); ; 203 : -; 204 : // printf("The numba was: %X\n", ExecBuffer()); -; 205 : -; 206 : //} -; 207 : -; 208 : -; 209 : //NcDebugPrint(Post); +; 204 : //typedef ULONG64(*FnGet1776)(); +; 205 : //FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); +; 206 : //if (ExecBuffer) +; 207 : //{ +; 208 : // printf("The numba was: %X\n", ExecBuffer()); +; 209 : // printf("The numba was: %X\n", ExecBuffer()); ; 210 : -; 211 : +; 211 : // printf("The numba was: %X\n", ExecBuffer()); ; 212 : -; 213 : /*NATIVE_CODE_BLOCK Block; -; 214 : NcDisassemble(&Block, TestBuffer, TestBufferSize); -; 215 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 213 : // printf("The numba was: %X\n", ExecBuffer()); +; 214 : +; 215 : //} ; 216 : -; 217 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); -; 218 : ULONG AssembledSize; -; 219 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); -; 220 : if (!AssembledBlock || !AssembledSize) -; 221 : { -; 222 : printf("Something failed nicka.\n"); -; 223 : system("pause"); -; 224 : return -1; -; 225 : } -; 226 : PUCHAR Tb = (PUCHAR)AssembledBlock; -; 227 : for (uint32_t i = 0; i < AssembledSize; i++) -; 228 : { -; 229 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; -; 230 : } -; 231 : */ -; 232 : -; 233 : -; 234 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); -; 235 : //NcDebugPrint(OpaqueBranch); -; 236 : -; 237 : -; 238 : -; 239 : /*NATIVE_CODE_LINK T; -; 240 : T.RawDataSize = 10; -; 241 : T.RawData = new UCHAR[10]; -; 242 : memset(T.RawData, 0xAA, 10); -; 243 : JIT_BITWISE_DATA Data; -; 244 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); -; 245 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); -; 246 : if (NewBlock) -; 247 : { -; 248 : printf("\n"); -; 249 : NcDebugPrint(NewBlock); -; 250 : printf("\n"); -; 251 : NcPrintBlockCode(NewBlock); -; 252 : } -; 253 : system("pause");*/ -; 254 : -; 255 : } - - 001d1 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 001d5 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 001da eb 02 jmp SHORT $LN6@main - 001dc eb 02 jmp SHORT $LN5@main +; 217 : +; 218 : //NcDebugPrint(Post); +; 219 : +; 220 : +; 221 : +; 222 : /*NATIVE_CODE_BLOCK Block; +; 223 : NcDisassemble(&Block, TestBuffer, TestBufferSize); +; 224 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 225 : +; 226 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); +; 227 : ULONG AssembledSize; +; 228 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); +; 229 : if (!AssembledBlock || !AssembledSize) +; 230 : { +; 231 : printf("Something failed nicka.\n"); +; 232 : system("pause"); +; 233 : return -1; +; 234 : } +; 235 : PUCHAR Tb = (PUCHAR)AssembledBlock; +; 236 : for (uint32_t i = 0; i < AssembledSize; i++) +; 237 : { +; 238 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 239 : } +; 240 : */ +; 241 : +; 242 : +; 243 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); +; 244 : //NcDebugPrint(OpaqueBranch); +; 245 : +; 246 : +; 247 : +; 248 : /*NATIVE_CODE_LINK T; +; 249 : T.RawDataSize = 10; +; 250 : T.RawData = new UCHAR[10]; +; 251 : memset(T.RawData, 0xAA, 10); +; 252 : JIT_BITWISE_DATA Data; +; 253 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); +; 254 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); +; 255 : if (NewBlock) +; 256 : { +; 257 : printf("\n"); +; 258 : NcDebugPrint(NewBlock); +; 259 : printf("\n"); +; 260 : NcPrintBlockCode(NewBlock); +; 261 : } +; 262 : system("pause");*/ +; 263 : +; 264 : } + + 00212 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00216 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0021b eb 02 jmp SHORT $LN6@main + 0021d eb 02 jmp SHORT $LN5@main $LN6@main: - 001de 33 c0 xor eax, eax + 0021f 33 c0 xor eax, eax $LN5@main: - 001e0 48 8b f8 mov rdi, rax - 001e3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001e7 48 8d 15 00 00 + 00221 48 8b f8 mov rdi, rax + 00224 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00228 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:main$rtcFrameData - 001ee e8 00 00 00 00 call _RTC_CheckStackVars - 001f3 48 8b c7 mov rax, rdi - 001f6 48 8b 8d d8 01 + 0022f e8 00 00 00 00 call _RTC_CheckStackVars + 00234 48 8b c7 mov rax, rdi + 00237 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001fd 48 33 cd xor rcx, rbp - 00200 e8 00 00 00 00 call __security_check_cookie - 00205 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 0020c 5f pop rdi - 0020d 5d pop rbp - 0020e c3 ret 0 + 0023e 48 33 cd xor rcx, rbp + 00241 e8 00 00 00 00 call __security_check_cookie + 00246 48 8d a5 f8 01 + 00 00 lea rsp, QWORD PTR [rbp+504] + 0024d 5f pop rdi + 0024e 5d pop rbp + 0024f c3 ret 0 main ENDP _TEXT ENDS ; COMDAT text$x text$x SEGMENT RetNumBlock$ = 8 Obf$ = 88 -AsmSize$ = 132 -Asm$ = 168 -Exec$ = 200 -$T6 = 420 -tv143 = 440 -tv132 = 448 -tv141 = 456 -tv139 = 464 -__$ArrayPad$ = 472 +AsmSize$ = 148 +Asm$ = 184 +Exec$ = 216 +$T6 = 436 +tv149 = 456 +tv137 = 464 +tv147 = 472 +tv145 = 480 +__$ArrayPad$ = 488 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 @@ -9164,15 +8358,15 @@ text$x ENDS text$x SEGMENT RetNumBlock$ = 8 Obf$ = 88 -AsmSize$ = 132 -Asm$ = 168 -Exec$ = 200 -$T6 = 420 -tv143 = 440 -tv132 = 448 -tv141 = 456 -tv139 = 464 -__$ArrayPad$ = 472 +AsmSize$ = 148 +Asm$ = 184 +Exec$ = 216 +$T6 = 436 +tv149 = 456 +tv137 = 464 +tv147 = 472 +tv145 = 480 +__$ArrayPad$ = 488 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 @@ -9200,30 +8394,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 05 a8 00 00 + 0001a 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 + 00020 48 8b c8 mov rcx, rax + 00023 e8 00 00 00 00 call ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_ofstream >::~basic_ofstream > + 00028 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00046 48 05 a8 00 00 + 0002f 48 05 a8 00 00 00 add rax, 168 ; 000000a8H - 0004c 48 8b c8 mov rcx, rax - 0004f ff 15 00 00 00 + 00035 48 8b c8 mov rcx, rax + 00038 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 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ENDP ; std::basic_ofstream >::`vbase destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -9240,40 +8428,34 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 85 e0 00 + 00017 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00035 48 2d a8 00 00 + 0001e 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 + 00024 48 8b c8 mov rcx, rax + 00027 e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 0002c 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 + 00032 83 e0 01 and eax, 1 + 00035 85 c0 test eax, eax + 00037 74 1a je SHORT $LN2@scalar + 00039 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00057 48 2d a8 00 00 + 00040 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 + 00046 ba 08 01 00 00 mov edx, 264 ; 00000108H + 0004b 48 8b c8 mov rcx, rax + 0004e e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 0006a 48 8b 85 e0 00 + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00071 48 2d a8 00 00 + 0005a 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 00077 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 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 @@ -9290,23 +8472,17 @@ $LN3: 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 + 00016 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 + 0001d 33 c0 xor eax, eax + 0001f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR classSize$[rbp] - 0003d f3 aa rep stosb - 0003f 48 8d a5 c8 00 + 00026 f3 aa rep stosb + 00028 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 + 0002f 5f pop rdi + 00030 5d pop rbp + 00031 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 @@ -9323,42 +8499,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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 98 00 00 00 mov edx, 152 ; 00000098H - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 98 00 00 00 mov edx, 152 ; 00000098H + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_G?$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 +; 780 : void _Set_back() { // set up putback area $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9367,87 +8537,81 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 781 : if (_Mysb::eback() != &_Mychar) { // save current get buffer + + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d ff 15 00 00 00 + 00026 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 + 0002c 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 + 00033 48 83 c1 70 add rcx, 112 ; 00000070H + 00037 48 3b c1 cmp rax, rcx + 0003a 74 36 je SHORT $LN2@Set_back -; 781 : _Set_eback = _Mysb::eback(); +; 782 : _Set_eback = _Mysb::eback(); - 00053 48 8b 8d e0 00 + 0003c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a ff 15 00 00 00 + 00043 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 + 00049 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00067 48 89 81 88 00 + 00050 48 89 81 88 00 00 00 mov QWORD PTR [rcx+136], rax -; 782 : _Set_egptr = _Mysb::egptr(); +; 783 : _Set_egptr = _Mysb::egptr(); - 0006e 48 8b 8d e0 00 + 00057 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00075 ff 15 00 00 00 + 0005e 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 + 00064 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00082 48 89 81 90 00 + 0006b 48 89 81 90 00 00 00 mov QWORD PTR [rcx+144], rax $LN2@Set_back: -; 783 : } -; 784 : _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); +; 784 : } +; 785 : _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); - 00089 48 8b 85 e0 00 + 00072 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 + 00079 48 83 c0 71 add rax, 113 ; 00000071H + 0007d 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 + 00084 48 83 c1 70 add rcx, 112 ; 00000070H + 00088 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 + 0008f 48 83 c2 70 add rdx, 112 ; 00000070H + 00093 4c 8b c8 mov r9, rax + 00096 4c 8b c1 mov r8, rcx + 00099 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 000b7 ff 15 00 00 00 + 000a0 ff 15 00 00 00 00 call QWORD PTR __imp_?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z -; 785 : } +; 786 : } - 000bd 48 8d a5 c8 00 + 000a6 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 + 000ad 5f pop rdi + 000ae 5d pop rbp + 000af 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 +; 774 : void _Reset_back() { // restore buffer after putback $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9456,67 +8620,61 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 774 : if (_Mysb::eback() == &_Mychar) { - - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 775 : if (_Mysb::eback() == &_Mychar) { + + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d ff 15 00 00 00 + 00026 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 + 0002c 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 + 00033 48 83 c1 70 add rcx, 112 ; 00000070H + 00037 48 3b c1 cmp rax, rcx + 0003a 75 37 jne SHORT $LN2@Reset_back -; 775 : _Mysb::setg(_Set_eback, _Set_eback, _Set_egptr); +; 776 : _Mysb::setg(_Set_eback, _Set_eback, _Set_egptr); - 00053 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 4c 8b 88 90 00 + 00043 4c 8b 88 90 00 00 00 mov r9, QWORD PTR [rax+144] - 00061 48 8b 85 e0 00 + 0004a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00068 4c 8b 80 88 00 + 00051 4c 8b 80 88 00 00 00 mov r8, QWORD PTR [rax+136] - 0006f 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00076 48 8b 90 88 00 + 0005f 48 8b 90 88 00 00 00 mov rdx, QWORD PTR [rax+136] - 0007d 48 8b 8d e0 00 + 00066 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00084 ff 15 00 00 00 + 0006d 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 : } +; 777 : } +; 778 : } - 0008a 48 8d a5 c8 00 + 00073 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 + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 +; 757 : void _Initcvt(const _Cvt& _Newcvt) { // initialize codecvt pointer $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9526,67 +8684,61 @@ $LN5: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 757 : if (_Newcvt.always_noconv()) { - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 758 : if (_Newcvt.always_noconv()) { + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Newcvt$[rbp] - 00042 ff 15 00 00 00 + 0002b 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 + 00031 0f b6 c0 movzx eax, al + 00034 85 c0 test eax, eax + 00036 74 11 je SHORT $LN2@Initcvt -; 758 : _Pcvt = nullptr; // nothing to do +; 759 : _Pcvt = nullptr; // nothing to do - 0004f 48 8b 85 e0 00 + 00038 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00056 48 c7 40 68 00 + 0003f 48 c7 40 68 00 00 00 00 mov QWORD PTR [rax+104], 0 -; 759 : } else { // set up for nontrivial codecvt facet +; 760 : } else { // set up for nontrivial codecvt facet - 0005e eb 24 jmp SHORT $LN3@Initcvt + 00047 eb 24 jmp SHORT $LN3@Initcvt $LN2@Initcvt: -; 760 : _Pcvt = _STD addressof(_Newcvt); +; 761 : _Pcvt = _STD addressof(_Newcvt); - 00060 48 8b 8d e8 00 + 00049 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 + 00050 e8 00 00 00 00 call ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ; std::addressof const > + 00055 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00073 48 89 41 68 mov QWORD PTR [rcx+104], rax + 0005c 48 89 41 68 mov QWORD PTR [rcx+104], rax -; 761 : _Mysb::_Init(); // reset any buffering +; 762 : _Mysb::_Init(); // reset any buffering - 00077 48 8b 8d e0 00 + 00060 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0007e ff 15 00 00 00 + 00067 ff 15 00 00 00 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ $LN3@Initcvt: -; 762 : } -; 763 : } +; 763 : } +; 764 : } - 00084 48 8d a5 c8 00 + 0006d 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 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ _TEXT SEGMENT _Codecvt_temp_buf$ = 8 @@ -9604,7 +8756,7 @@ __$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 +; 721 : bool _Endwrite() { // put shift to initial conversion state, as needed $LN15: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9613,234 +8765,234 @@ $LN15: 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 + 00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00018 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 a8 01 + 00033 48 33 c5 xor rax, rbp + 00036 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 + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 721 : if (!_Pcvt || !_Wrotesome) { +; 722 : if (!_Pcvt || !_Wrotesome) { - 00047 48 8b 85 d0 01 + 00049 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 + 00050 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00055 74 0f je SHORT $LN5@Endwrite + 00057 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 + 0005e 0f b6 40 71 movzx eax, BYTE PTR [rax+113] + 00062 85 c0 test eax, eax + 00064 75 07 jne SHORT $LN4@Endwrite $LN5@Endwrite: -; 722 : return true; +; 723 : return true; - 00064 b0 01 mov al, 1 - 00066 e9 72 01 00 00 jmp $LN1@Endwrite + 00066 b0 01 mov al, 1 + 00068 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())) { +; 724 : } +; 725 : +; 726 : // may have to put +; 727 : if (_Traits::eq_int_type(_Traits::eof(), overflow())) { - 0006b 48 8b 85 d0 01 + 0006d 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 + 00074 48 8b 00 mov rax, QWORD PTR [rax] + 00077 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0007b 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 + 00082 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00087 89 85 a0 01 00 00 mov DWORD PTR tv81[rbp], eax - 0008b 8b 95 a0 01 00 + 0008d 8b 95 a0 01 00 00 mov edx, DWORD PTR tv81[rbp] - 00091 48 8b 8d d0 01 + 00093 48 8b 8d d0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00098 ff 95 98 01 00 + 0009a ff 95 98 01 00 00 call QWORD PTR tv83[rbp] - 0009e 89 85 64 01 00 + 000a0 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 + 000a6 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000ab 89 85 84 01 00 00 mov DWORD PTR $T7[rbp], eax - 000af 48 8d 95 64 01 + 000b1 48 8d 95 64 01 00 00 lea rdx, QWORD PTR $T6[rbp] - 000b6 48 8d 8d 84 01 + 000b8 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 + 000bf e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000c4 0f b6 c0 movzx eax, al + 000c7 85 c0 test eax, eax + 000c9 74 07 je SHORT $LN6@Endwrite -; 727 : return false; +; 728 : return false; - 000c9 32 c0 xor al, al - 000cb e9 0d 01 00 00 jmp $LN1@Endwrite + 000cb 32 c0 xor al, al + 000cd e9 0d 01 00 00 jmp $LN1@Endwrite $LN6@Endwrite: -; 728 : } -; 729 : -; 730 : constexpr size_t _Codecvt_temp_buf = 32; +; 729 : } +; 730 : +; 731 : constexpr size_t _Codecvt_temp_buf = 32; - 000d0 48 c7 45 08 20 + 000d2 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 +; 732 : char _Str[_Codecvt_temp_buf]; +; 733 : char* _Dest; +; 734 : switch (_Pcvt->unshift(_State, _Str, _Str + _Codecvt_temp_buf, _Dest)) { // test result of homing conversion - 000d8 48 8b 85 d0 01 + 000da 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 + 000e1 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 000e5 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 + 000ec 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] + 000f0 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 + 000f7 48 83 c1 74 add rcx, 116 ; 00000074H + 000fb 48 8d 55 68 lea rdx, QWORD PTR _Dest$[rbp] + 000ff 48 89 54 24 20 mov QWORD PTR [rsp+32], rdx + 00104 4c 8b c8 mov r9, rax + 00107 4c 8d 45 28 lea r8, QWORD PTR _Str$[rbp] + 0010b 48 8b d1 mov rdx, rcx + 0010e 48 8b 8d 98 01 00 00 mov rcx, QWORD PTR tv131[rbp] - 00113 ff 15 00 00 00 + 00115 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 + 0011b 89 85 a0 01 00 00 mov DWORD PTR tv132[rbp], eax - 0011f 83 bd a0 01 00 + 00121 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 + 00128 74 1b je SHORT $LN7@Endwrite + 0012a 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 + 00131 74 1d je SHORT $LN8@Endwrite + 00133 83 bd a0 01 00 00 03 cmp DWORD PTR tv132[rbp], 3 - 00138 0f 84 8e 00 00 + 0013a 0f 84 8e 00 00 00 je $LN10@Endwrite - 0013e e9 98 00 00 00 jmp $LN11@Endwrite + 00140 e9 98 00 00 00 jmp $LN11@Endwrite $LN7@Endwrite: -; 734 : case codecvt_base::ok: -; 735 : _Wrotesome = false; // homed successfully +; 735 : case codecvt_base::ok: +; 736 : _Wrotesome = false; // homed successfully - 00143 48 8b 85 d0 01 + 00145 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0014a c6 40 71 00 mov BYTE PTR [rax+113], 0 + 0014c 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); +; 737 : +; 738 : case codecvt_base::partial: // fall through +; 739 : { // put any generated bytes +; 740 : 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 + 00150 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 00154 48 8b 4d 68 mov rcx, QWORD PTR _Dest$[rbp] + 00158 48 2b c8 sub rcx, rax + 0015b 48 8b c1 mov rax, rcx + 0015e 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))) { +; 741 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { - 00163 48 83 bd 88 00 + 00165 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 + 0016d 76 31 jbe SHORT $LN9@Endwrite + 0016f 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00174 4c 8b 88 80 00 + 00176 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 0017b 4c 8b 85 88 00 + 0017d 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 + 00184 ba 01 00 00 00 mov edx, 1 + 00189 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0018d ff 15 00 00 00 00 call QWORD PTR __imp_fwrite - 00191 48 39 85 88 00 + 00193 48 39 85 88 00 00 00 cmp QWORD PTR _Count$5[rbp], rax - 00198 74 04 je SHORT $LN9@Endwrite + 0019a 74 04 je SHORT $LN9@Endwrite -; 741 : return false; // write failed +; 742 : return false; // write failed - 0019a 32 c0 xor al, al - 0019c eb 3f jmp SHORT $LN1@Endwrite + 0019c 32 c0 xor al, al + 0019e eb 3f jmp SHORT $LN1@Endwrite $LN9@Endwrite: -; 742 : } -; 743 : -; 744 : return !_Wrotesome; +; 743 : } +; 744 : +; 745 : return !_Wrotesome; - 0019e 48 8b 85 d0 01 + 001a0 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 + 001a7 0f b6 40 71 movzx eax, BYTE PTR [rax+113] + 001ab 85 c0 test eax, eax + 001ad 75 0c jne SHORT $LN13@Endwrite + 001af c7 85 94 01 00 00 01 00 00 00 mov DWORD PTR tv146[rbp], 1 - 001b7 eb 0a jmp SHORT $LN14@Endwrite + 001b9 eb 0a jmp SHORT $LN14@Endwrite $LN13@Endwrite: - 001b9 c7 85 94 01 00 + 001bb c7 85 94 01 00 00 00 00 00 00 mov DWORD PTR tv146[rbp], 0 $LN14@Endwrite: - 001c3 0f b6 85 94 01 + 001c5 0f b6 85 94 01 00 00 movzx eax, BYTE PTR tv146[rbp] - 001ca eb 11 jmp SHORT $LN1@Endwrite + 001cc eb 11 jmp SHORT $LN1@Endwrite $LN10@Endwrite: -; 745 : } -; 746 : -; 747 : case codecvt_base::noconv: -; 748 : _Wrotesome = false; // homed successfully +; 746 : } +; 747 : +; 748 : case codecvt_base::noconv: +; 749 : _Wrotesome = false; // homed successfully - 001cc 48 8b 85 d0 01 + 001ce 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 001d3 c6 40 71 00 mov BYTE PTR [rax+113], 0 + 001d5 c6 40 71 00 mov BYTE PTR [rax+113], 0 -; 749 : return true; // nothing else to do +; 750 : return true; // nothing else to do - 001d7 b0 01 mov al, 1 - 001d9 eb 02 jmp SHORT $LN1@Endwrite + 001d9 b0 01 mov al, 1 + 001db eb 02 jmp SHORT $LN1@Endwrite $LN11@Endwrite: -; 750 : -; 751 : default: -; 752 : return false; // conversion failed +; 751 : +; 752 : default: +; 753 : return false; // conversion failed - 001db 32 c0 xor al, al + 001dd 32 c0 xor al, al $LN1@Endwrite: -; 753 : } -; 754 : } +; 754 : } +; 755 : } - 001dd 48 8b f8 mov rdi, rax - 001e0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 001e4 48 8d 15 00 00 + 001df 48 8b f8 mov rdi, rax + 001e2 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 001e6 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 + 001ed e8 00 00 00 00 call _RTC_CheckStackVars + 001f2 48 8b c7 mov rax, rdi + 001f5 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 + 001fc 48 33 cd xor rcx, rbp + 001ff e8 00 00 00 00 call __security_check_cookie + 00204 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 + 0020b 5f pop rdi + 0020c 5d pop rbp + 0020d 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z _TEXT SEGMENT _Pb$6 = 8 @@ -9854,7 +9006,7 @@ _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} +; 694 : 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 @@ -9865,169 +9017,169 @@ $LN6: 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 + 0001d 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] + 00022 b9 22 00 00 00 mov ecx, 34 ; 00000022H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 38 01 + 0003d 48 33 c5 xor rax, rbp + 00040 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 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0004e 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; +; 695 : using _State_type = typename _Traits::state_type; +; 696 : +; 697 : __PURE_APPDOMAIN_GLOBAL static _State_type _Stinit; // initial state +; 698 : +; 699 : _Closef = _Which == _Openfl; - 00051 83 bd 70 01 00 + 00053 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 + 0005a 75 0c jne SHORT $LN4@Init + 0005c c7 85 34 01 00 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 - 00064 eb 0a jmp SHORT $LN5@Init + 00066 eb 0a jmp SHORT $LN5@Init $LN4@Init: - 00066 c7 85 34 01 00 + 00068 c7 85 34 01 00 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 $LN5@Init: - 00070 48 8b 85 60 01 + 00072 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00077 0f b6 8d 34 01 + 00079 0f b6 8d 34 01 00 00 movzx ecx, BYTE PTR tv66[rbp] - 0007e 88 48 7c mov BYTE PTR [rax+124], cl + 00080 88 48 7c mov BYTE PTR [rax+124], cl -; 699 : _Wrotesome = false; +; 700 : _Wrotesome = false; - 00081 48 8b 85 60 01 + 00083 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00088 c6 40 71 00 mov BYTE PTR [rax+113], 0 + 0008a c6 40 71 00 mov BYTE PTR [rax+113], 0 -; 700 : -; 701 : _Mysb::_Init(); // initialize stream buffer base object +; 701 : +; 702 : _Mysb::_Init(); // initialize stream buffer base object - 0008c 48 8b 8d 60 01 + 0008e 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00093 ff 15 00 00 00 + 00095 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 +; 703 : +; 704 : if (_File && sizeof(_Elem) == 1) { // point inside C stream with [first, first + count) buffer - 00099 48 83 bd 68 01 + 0009b 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 + 000a3 74 74 je SHORT $LN2@Init + 000a5 33 c0 xor eax, eax + 000a7 83 f8 01 cmp eax, 1 + 000aa 74 6d je SHORT $LN2@Init -; 704 : _Elem** _Pb = nullptr; +; 705 : _Elem** _Pb = nullptr; - 000aa 48 c7 45 08 00 + 000ac 48 c7 45 08 00 00 00 00 mov QWORD PTR _Pb$6[rbp], 0 -; 705 : _Elem** _Pn = nullptr; +; 706 : _Elem** _Pn = nullptr; - 000b2 48 c7 45 28 00 + 000b4 48 c7 45 28 00 00 00 00 mov QWORD PTR _Pn$7[rbp], 0 -; 706 : int* _Nr = nullptr; +; 707 : int* _Nr = nullptr; - 000ba 48 c7 45 48 00 + 000bc 48 c7 45 48 00 00 00 00 mov QWORD PTR _Nr$8[rbp], 0 -; 707 : -; 708 : ::_get_stream_buffer_pointers( +; 708 : +; 709 : ::_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 + 000c4 4c 8d 4d 48 lea r9, QWORD PTR _Nr$8[rbp] + 000c8 4c 8d 45 28 lea r8, QWORD PTR _Pn$7[rbp] + 000cc 48 8d 55 08 lea rdx, QWORD PTR _Pb$6[rbp] + 000d0 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _File$[rbp] - 000d5 ff 15 00 00 00 + 000d7 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 +; 710 : _File, reinterpret_cast(&_Pb), reinterpret_cast(&_Pn), &_Nr); +; 711 : int* _Nw = _Nr; + + 000dd 48 8b 45 48 mov rax, QWORD PTR _Nr$8[rbp] + 000e1 48 89 45 68 mov QWORD PTR _Nw$9[rbp], rax + +; 712 : +; 713 : _Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw); + + 000e5 48 8b 45 68 mov rax, QWORD PTR _Nw$9[rbp] + 000e9 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 000ee 48 8b 45 28 mov rax, QWORD PTR _Pn$7[rbp] + 000f2 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 000f7 48 8b 45 08 mov rax, QWORD PTR _Pb$6[rbp] + 000fb 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00100 4c 8b 4d 48 mov r9, QWORD PTR _Nr$8[rbp] + 00104 4c 8b 45 28 mov r8, QWORD PTR _Pn$7[rbp] + 00108 48 8b 55 08 mov rdx, QWORD PTR _Pb$6[rbp] + 0010c 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00111 ff 15 00 00 00 + 00113 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; +; 714 : } +; 715 : +; 716 : _Myfile = _File; - 00117 48 8b 85 60 01 + 00119 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0011e 48 8b 8d 68 01 + 00120 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _File$[rbp] - 00125 48 89 88 80 00 + 00127 48 89 88 80 00 00 00 mov QWORD PTR [rax+128], rcx -; 716 : _State = _Stinit; +; 717 : _State = _Stinit; - 0012c 48 8b 85 60 01 + 0012e 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00133 48 8b 0d 00 00 + 00135 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 + 0013c 48 89 48 74 mov QWORD PTR [rax+116], rcx -; 717 : _Pcvt = nullptr; // pointer to codecvt facet +; 718 : _Pcvt = nullptr; // pointer to codecvt facet - 0013e 48 8b 85 60 01 + 00140 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00145 48 c7 40 68 00 + 00147 48 c7 40 68 00 00 00 00 mov QWORD PTR [rax+104], 0 -; 718 : } +; 719 : } - 0014d 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 00151 48 8d 15 00 00 + 0014f 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 00153 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 + 0015a e8 00 00 00 00 call _RTC_CheckStackVars + 0015f 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 + 00166 48 33 cd xor rcx, rbp + 00169 e8 00 00 00 00 call __security_check_cookie + 0016e 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 + 00175 5f pop rdi + 00176 5d pop rbp + 00177 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 { +; 689 : virtual void __CLR_OR_THIS_CALL imbue(const locale& _Loc) override { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -10037,38 +9189,32 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 690 : // set locale to argument (capture nontrivial codecvt facet) +; 691 : _Initcvt(_STD use_facet<_Cvt>(_Loc)); + + 00024 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 + 0002b 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 > + 00030 48 8b d0 mov rdx, rax + 00033 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 + 0003a 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 : } +; 692 : } - 00056 48 8d a5 c8 00 + 0003f 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 + 00046 5f pop rdi + 00047 5d pop rbp + 00048 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ _TEXT SEGMENT $T1 = 196 @@ -10078,7 +9224,7 @@ 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 +; 681 : 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 @@ -10087,85 +9233,79 @@ $LN5: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 681 : if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), overflow()) || 0 <= _CSTD fflush(_Myfile)) { +; 682 : if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), overflow()) || 0 <= _CSTD fflush(_Myfile)) { - 00036 48 8b 85 30 01 + 0001f 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 b8 80 00 + 00026 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 + 0002e 74 76 je SHORT $LN3@sync + 00030 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 + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0003e 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 + 00045 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0004a 89 85 00 01 00 00 mov DWORD PTR tv78[rbp], eax - 00067 8b 95 00 01 00 + 00050 8b 95 00 01 00 00 mov edx, DWORD PTR tv78[rbp] - 0006d 48 8b 8d 30 01 + 00056 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00074 ff 95 f8 00 00 + 0005d ff 95 f8 00 00 00 call QWORD PTR tv80[rbp] - 0007a 89 85 c4 00 00 + 00063 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 + 00069 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0006e 89 85 e4 00 00 00 mov DWORD PTR $T2[rbp], eax - 0008b 48 8d 95 c4 00 + 00074 48 8d 95 c4 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00092 48 8d 8d e4 00 + 0007b 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 + 00082 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00087 0f b6 c0 movzx eax, al + 0008a 85 c0 test eax, eax + 0008c 75 18 jne SHORT $LN3@sync + 0008e 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000ac 48 8b 88 80 00 + 00095 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 000b3 ff 15 00 00 00 + 0009c ff 15 00 00 00 00 call QWORD PTR __imp_fflush - 000b9 85 c0 test eax, eax - 000bb 7c 04 jl SHORT $LN2@sync + 000a2 85 c0 test eax, eax + 000a4 7c 04 jl SHORT $LN2@sync $LN3@sync: -; 682 : return 0; +; 683 : return 0; - 000bd 33 c0 xor eax, eax - 000bf eb 05 jmp SHORT $LN1@sync + 000a6 33 c0 xor eax, eax + 000a8 eb 05 jmp SHORT $LN1@sync $LN2@sync: -; 683 : } -; 684 : -; 685 : return -1; +; 684 : } +; 685 : +; 686 : return -1; - 000c1 b8 ff ff ff ff mov eax, -1 + 000aa b8 ff ff ff ff mov eax, -1 $LN1@sync: -; 686 : } +; 687 : } - 000c6 48 8d a5 18 01 + 000af 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 + 000b6 5f pop rdi + 000b7 5d pop rbp + 000b8 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 @@ -10175,7 +9315,7 @@ _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 +; 662 : 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 @@ -10186,110 +9326,104 @@ $LN7: 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 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 662 : int _Mode; -; 663 : if (!_Buffer && _Count == 0) { +; 663 : int _Mode; +; 664 : if (!_Buffer && _Count == 0) { - 00040 48 83 bd 28 01 + 00029 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 + 00031 75 13 jne SHORT $LN2@setbuf + 00033 48 83 bd 30 01 00 00 00 cmp QWORD PTR _Count$[rbp], 0 - 00052 75 09 jne SHORT $LN2@setbuf + 0003b 75 09 jne SHORT $LN2@setbuf -; 664 : _Mode = _IONBF; +; 665 : _Mode = _IONBF; - 00054 c7 45 04 04 00 + 0003d c7 45 04 04 00 00 00 mov DWORD PTR _Mode$[rbp], 4 -; 665 : } else { +; 666 : } else { - 0005b eb 07 jmp SHORT $LN3@setbuf + 00044 eb 07 jmp SHORT $LN3@setbuf $LN2@setbuf: -; 666 : _Mode = _IOFBF; +; 667 : _Mode = _IOFBF; - 0005d c7 45 04 00 00 + 00046 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); +; 668 : } +; 669 : +; 670 : const size_t _Size = static_cast(_Count) * sizeof(_Elem); - 00064 48 8b 85 30 01 + 0004d 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 0006b 48 89 45 28 mov QWORD PTR _Size$[rbp], rax + 00054 48 89 45 28 mov QWORD PTR _Size$[rbp], rax -; 670 : -; 671 : if (!_Myfile || _CSTD setvbuf(_Myfile, reinterpret_cast(_Buffer), _Mode, _Size) != 0) { +; 671 : +; 672 : if (!_Myfile || _CSTD setvbuf(_Myfile, reinterpret_cast(_Buffer), _Mode, _Size) != 0) { - 0006f 48 8b 85 20 01 + 00058 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00076 48 83 b8 80 00 + 0005f 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 + 00067 74 27 je SHORT $LN5@setbuf + 00069 4c 8b 4d 28 mov r9, QWORD PTR _Size$[rbp] + 0006d 44 8b 45 04 mov r8d, DWORD PTR _Mode$[rbp] + 00071 48 8b 95 28 01 00 00 mov rdx, QWORD PTR _Buffer$[rbp] - 0008f 48 8b 85 20 01 + 00078 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00096 48 8b 88 80 00 + 0007f 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0009d ff 15 00 00 00 + 00086 ff 15 00 00 00 00 call QWORD PTR __imp_setvbuf - 000a3 85 c0 test eax, eax - 000a5 74 04 je SHORT $LN4@setbuf + 0008c 85 c0 test eax, eax + 0008e 74 04 je SHORT $LN4@setbuf $LN5@setbuf: -; 672 : return nullptr; // failed +; 673 : return nullptr; // failed - 000a7 33 c0 xor eax, eax - 000a9 eb 27 jmp SHORT $LN1@setbuf + 00090 33 c0 xor eax, eax + 00092 eb 27 jmp SHORT $LN1@setbuf $LN4@setbuf: -; 673 : } -; 674 : -; 675 : // new buffer, reinitialize pointers -; 676 : _Init(_Myfile, _Openfl); +; 674 : } +; 675 : +; 676 : // new buffer, reinitialize pointers +; 677 : _Init(_Myfile, _Openfl); - 000ab 41 b8 01 00 00 + 00094 41 b8 01 00 00 00 mov r8d, 1 - 000b1 48 8b 85 20 01 + 0009a 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 000b8 48 8b 90 80 00 + 000a1 48 8b 90 80 00 00 00 mov rdx, QWORD PTR [rax+128] - 000bf 48 8b 8d 20 01 + 000a8 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 + 000af 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; +; 678 : return this; - 000cb 48 8b 85 20 01 + 000b4 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] $LN1@setbuf: -; 678 : } +; 679 : } - 000d2 48 8d a5 08 01 + 000bb 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 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 @@ -10301,7 +9435,7 @@ _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 { +; 649 : 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 @@ -10313,120 +9447,120 @@ $LN5: 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 + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 12 00 00 00 mov ecx, 18 + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 f8 00 + 00042 48 33 c5 xor rax, rbp + 00045 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 + 0004c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 649 : // change position to _Pos -; 650 : off_type _Off = static_cast(_Pos); +; 650 : // change position to _Pos +; 651 : off_type _Off = static_cast(_Pos); - 00056 48 8b 8d 30 01 + 00058 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 + 0005f e8 00 00 00 00 call ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ; std::fpos<_Mbstatet>::operator __int64 + 00064 48 89 45 08 mov QWORD PTR _Off$[rbp], rax -; 651 : -; 652 : if (!_Myfile || !_Endwrite() || _CSTD fsetpos(_Myfile, &_Off) != 0) { +; 652 : +; 653 : if (!_Myfile || !_Endwrite() || _CSTD fsetpos(_Myfile, &_Off) != 0) { - 00066 48 8b 85 20 01 + 00068 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006d 48 83 b8 80 00 + 0006f 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 + 00077 74 2f je SHORT $LN3@seekpos + 00079 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 + 00080 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 00085 0f b6 c0 movzx eax, al + 00088 85 c0 test eax, eax + 0008a 74 1c je SHORT $LN3@seekpos + 0008c 48 8d 55 08 lea rdx, QWORD PTR _Off$[rbp] + 00090 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00095 48 8b 88 80 00 + 00097 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0009c ff 15 00 00 00 + 0009e ff 15 00 00 00 00 call QWORD PTR __imp_fsetpos - 000a2 85 c0 test eax, eax - 000a4 74 1c je SHORT $LN2@seekpos + 000a4 85 c0 test eax, eax + 000a6 74 1c je SHORT $LN2@seekpos $LN3@seekpos: -; 653 : return pos_type(-1); // report failure +; 654 : return pos_type(-1); // report failure - 000a6 48 c7 c2 ff ff + 000a8 48 c7 c2 ff ff ff ff mov rdx, -1 - 000ad 48 8b 8d 28 01 + 000af 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 + 000b6 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 000bb 48 8b 85 28 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - 000c0 eb 4f jmp SHORT $LN1@seekpos + 000c2 eb 4f jmp SHORT $LN1@seekpos $LN2@seekpos: -; 654 : } -; 655 : -; 656 : _State = _Pos.state(); +; 655 : } +; 656 : +; 657 : _State = _Pos.state(); - 000c2 48 8d 95 e4 00 + 000c4 48 8d 95 e4 00 00 00 lea rdx, QWORD PTR $T4[rbp] - 000c9 48 8b 8d 30 01 + 000cb 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 + 000d2 e8 00 00 00 00 call ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ; std::fpos<_Mbstatet>::state + 000d7 48 8b 00 mov rax, QWORD PTR [rax] + 000da 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000df 48 89 41 74 mov QWORD PTR [rcx+116], rax + 000e1 48 89 41 74 mov QWORD PTR [rcx+116], rax -; 657 : _Reset_back(); // revert from _Mychar buffer, discarding any putback +; 658 : _Reset_back(); // revert from _Mychar buffer, discarding any putback - 000e3 48 8b 8d 20 01 + 000e5 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 + 000ec 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 +; 659 : 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 + 000f1 4c 8b 45 08 mov r8, QWORD PTR _Off$[rbp] + 000f5 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 + 000fc 48 8b 50 74 mov rdx, QWORD PTR [rax+116] + 00100 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 + 00107 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 0010c 48 8b 85 28 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] $LN1@seekpos: -; 659 : } +; 660 : } - 00111 48 8b f8 mov rdi, rax - 00114 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00118 48 8d 15 00 00 + 00113 48 8b f8 mov rdi, rax + 00116 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0011a 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 + 00121 e8 00 00 00 00 call _RTC_CheckStackVars + 00126 48 8b c7 mov rax, rdi + 00129 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 + 00130 48 33 cd xor rcx, rbp + 00133 e8 00 00 00 00 call __security_check_cookie + 00138 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 + 0013f 5f pop rdi + 00140 5d pop rbp + 00141 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z _TEXT SEGMENT _Fileposition$ = 8 @@ -10438,7 +9572,7 @@ _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 +; 629 : 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 @@ -10450,155 +9584,155 @@ $LN8: 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 + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 0a 00 00 00 mov ecx, 10 + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 d8 00 + 00042 48 33 c5 xor rax, rbp + 00045 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 + 0004c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00053 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 +; 630 : fpos_t _Fileposition; +; 631 : +; 632 : if (_Mysb::gptr() == &_Mychar // something putback +; 633 : && _Way == ios_base::cur // a relative seek +; 634 : && !_Pcvt) { // not converting - 00056 48 8b 8d 00 01 + 00058 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005d ff 15 00 00 00 + 0005f 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 + 00065 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 + 0006c 48 83 c1 70 add rcx, 112 ; 00000070H + 00070 48 3b c1 cmp rax, rcx + 00073 75 28 jne SHORT $LN2@seekoff + 00075 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 + 0007c 75 1f jne SHORT $LN2@seekoff + 0007e 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 + 00085 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0008a 75 11 jne SHORT $LN2@seekoff -; 634 : _Off -= static_cast(sizeof(_Elem)); // back up over _Elem bytes +; 635 : _Off -= static_cast(sizeof(_Elem)); // back up over _Elem bytes - 0008a 48 8b 85 10 01 + 0008c 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 + 00093 48 ff c8 dec rax + 00096 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) { +; 636 : } +; 637 : +; 638 : if (!_Myfile || !_Endwrite() +; 639 : || ((_Off != 0 || _Way != ios_base::cur) && _CSTD _fseeki64(_Myfile, _Off, _Way) != 0) +; 640 : || _CSTD fgetpos(_Myfile, &_Fileposition) != 0) { - 0009b 48 8b 85 00 01 + 0009d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a2 48 83 b8 80 00 + 000a4 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 + 000ac 74 68 je SHORT $LN4@seekoff + 000ae 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 + 000b5 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 000ba 0f b6 c0 movzx eax, al + 000bd 85 c0 test eax, eax + 000bf 74 55 je SHORT $LN4@seekoff + 000c1 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 + 000c9 75 09 jne SHORT $LN6@seekoff + 000cb 83 bd 18 01 00 00 01 cmp DWORD PTR _Way$[rbp], 1 - 000d0 74 26 je SHORT $LN5@seekoff + 000d2 74 26 je SHORT $LN5@seekoff $LN6@seekoff: - 000d2 44 8b 85 18 01 + 000d4 44 8b 85 18 01 00 00 mov r8d, DWORD PTR _Way$[rbp] - 000d9 48 8b 95 10 01 + 000db 48 8b 95 10 01 00 00 mov rdx, QWORD PTR _Off$[rbp] - 000e0 48 8b 85 00 01 + 000e2 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000e7 48 8b 88 80 00 + 000e9 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 000ee ff 15 00 00 00 + 000f0 ff 15 00 00 00 00 call QWORD PTR __imp__fseeki64 - 000f4 85 c0 test eax, eax - 000f6 75 1c jne SHORT $LN4@seekoff + 000f6 85 c0 test eax, eax + 000f8 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 + 000fa 48 8d 55 08 lea rdx, QWORD PTR _Fileposition$[rbp] + 000fe 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00103 48 8b 88 80 00 + 00105 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0010a ff 15 00 00 00 + 0010c ff 15 00 00 00 00 call QWORD PTR __imp_fgetpos - 00110 85 c0 test eax, eax - 00112 74 1c je SHORT $LN3@seekoff + 00112 85 c0 test eax, eax + 00114 74 1c je SHORT $LN3@seekoff $LN4@seekoff: -; 640 : return pos_type(-1); // report failure +; 641 : return pos_type(-1); // report failure - 00114 48 c7 c2 ff ff + 00116 48 c7 c2 ff ff ff ff mov rdx, -1 - 0011b 48 8b 8d 08 01 + 0011d 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 + 00124 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 00129 48 8b 85 08 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - 0012e eb 2e jmp SHORT $LN1@seekoff + 00130 eb 2e jmp SHORT $LN1@seekoff $LN3@seekoff: -; 641 : } -; 642 : -; 643 : _Reset_back(); // revert from _Mychar buffer, discarding any putback +; 642 : } +; 643 : +; 644 : _Reset_back(); // revert from _Mychar buffer, discarding any putback - 00130 48 8b 8d 00 01 + 00132 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 + 00139 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 +; 645 : 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 + 0013e 4c 8b 45 08 mov r8, QWORD PTR _Fileposition$[rbp] + 00142 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 + 00149 48 8b 50 74 mov rdx, QWORD PTR [rax+116] + 0014d 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 + 00154 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 00159 48 8b 85 08 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] $LN1@seekoff: -; 645 : } +; 646 : } - 0015e 48 8b f8 mov rdi, rax - 00161 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00165 48 8d 15 00 00 + 00160 48 8b f8 mov rdi, rax + 00163 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00167 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 + 0016e e8 00 00 00 00 call _RTC_CheckStackVars + 00173 48 8b c7 mov rax, rdi + 00176 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 + 0017d 48 33 cd xor rcx, rbp + 00180 e8 00 00 00 00 call __security_check_cookie + 00185 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 + 0018c 5f pop rdi + 0018d 5d pop rbp + 0018e 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z _TEXT SEGMENT _Start_count$1 = 8 @@ -10608,7 +9742,7 @@ _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 { +; 597 : 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 @@ -10619,178 +9753,172 @@ $LN7: 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 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00024 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 +; 598 : // put _Count characters to stream +; 599 : if constexpr (sizeof(_Elem) == 1) { +; 600 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing - 00040 48 8b 85 20 01 + 00029 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 + 00030 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00035 74 20 je SHORT $LN2@xsputn -; 600 : return _Mysb::xsputn(_Ptr, _Count); +; 601 : return _Mysb::xsputn(_Ptr, _Count); - 0004e 4c 8b 85 30 01 + 00037 4c 8b 85 30 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 00055 48 8b 95 28 01 + 0003e 48 8b 95 28 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0005c 48 8b 8d 20 01 + 00045 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00063 ff 15 00 00 00 + 0004c 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 + 00052 e9 0c 01 00 00 jmp $LN1@xsputn $LN2@xsputn: -; 601 : } -; 602 : -; 603 : const streamsize _Start_count = _Count; +; 602 : } +; 603 : +; 604 : const streamsize _Start_count = _Count; - 0006e 48 8b 85 30 01 + 00057 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 + 0005e 48 89 45 08 mov QWORD PTR _Start_count$1[rbp], rax -; 604 : streamsize _Size = _Mysb::_Pnavail(); +; 605 : streamsize _Size = _Mysb::_Pnavail(); - 00079 48 8b 8d 20 01 + 00062 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00080 ff 15 00 00 00 + 00069 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 + 0006f 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax -; 605 : if (0 < _Count && 0 < _Size) { // copy to write buffer +; 606 : if (0 < _Count && 0 < _Size) { // copy to write buffer - 0008a 48 83 bd 30 01 + 00073 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 + 0007b 7e 7f jle SHORT $LN3@xsputn + 0007d 48 83 7d 28 00 cmp QWORD PTR _Size$2[rbp], 0 + 00082 7e 78 jle SHORT $LN3@xsputn -; 606 : if (_Count < _Size) { +; 607 : if (_Count < _Size) { - 0009b 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] - 0009f 48 39 85 30 01 + 00084 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 00088 48 39 85 30 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 000a6 7d 0b jge SHORT $LN4@xsputn + 0008f 7d 0b jge SHORT $LN4@xsputn -; 607 : _Size = _Count; +; 608 : _Size = _Count; - 000a8 48 8b 85 30 01 + 00091 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 + 00098 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax $LN4@xsputn: -; 608 : } -; 609 : -; 610 : _Traits::copy(_Mysb::pptr(), _Ptr, static_cast(_Size)); +; 609 : } +; 610 : +; 611 : _Traits::copy(_Mysb::pptr(), _Ptr, static_cast(_Size)); - 000b3 48 8b 8d 20 01 + 0009c 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ba ff 15 00 00 00 + 000a3 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 + 000a9 4c 8b 45 28 mov r8, QWORD PTR _Size$2[rbp] + 000ad 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 + 000b4 48 8b c8 mov rcx, rax + 000b7 e8 00 00 00 00 call ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy -; 611 : _Ptr += _Size; +; 612 : _Ptr += _Size; - 000d3 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] - 000d7 48 8b 8d 28 01 + 000bc 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 000c0 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 + 000c7 48 03 c8 add rcx, rax + 000ca 48 8b c1 mov rax, rcx + 000cd 48 89 85 28 01 00 00 mov QWORD PTR _Ptr$[rbp], rax -; 612 : _Count -= _Size; +; 613 : _Count -= _Size; - 000eb 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] - 000ef 48 8b 8d 30 01 + 000d4 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 000d8 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 + 000df 48 2b c8 sub rcx, rax + 000e2 48 8b c1 mov rax, rcx + 000e5 48 89 85 30 01 00 00 mov QWORD PTR _Count$[rbp], rax -; 613 : _Mysb::pbump(static_cast(_Size)); +; 614 : _Mysb::pbump(static_cast(_Size)); - 00103 8b 55 28 mov edx, DWORD PTR _Size$2[rbp] - 00106 48 8b 8d 20 01 + 000ec 8b 55 28 mov edx, DWORD PTR _Size$2[rbp] + 000ef 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0010d ff 15 00 00 00 + 000f6 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 +; 615 : } +; 616 : +; 617 : if (0 < _Count && _Myfile) { // open C stream, attempt write - 00113 48 83 bd 30 01 + 000fc 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 + 00104 7e 4c jle SHORT $LN5@xsputn + 00106 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00124 48 83 b8 80 00 + 0010d 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0012c 74 3b je SHORT $LN5@xsputn + 00115 74 3b je SHORT $LN5@xsputn -; 617 : _Count -= _CSTD fwrite(_Ptr, sizeof(_Elem), static_cast(_Count), _Myfile); +; 618 : _Count -= _CSTD fwrite(_Ptr, sizeof(_Elem), static_cast(_Count), _Myfile); - 0012e 48 8b 85 20 01 + 00117 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00135 4c 8b 88 80 00 + 0011e 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 0013c 4c 8b 85 30 01 + 00125 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 + 0012c ba 01 00 00 00 mov edx, 1 + 00131 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0014f ff 15 00 00 00 + 00138 ff 15 00 00 00 00 call QWORD PTR __imp_fwrite - 00155 48 8b 8d 30 01 + 0013e 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 + 00145 48 2b c8 sub rcx, rax + 00148 48 8b c1 mov rax, rcx + 0014b 48 89 85 30 01 00 00 mov QWORD PTR _Count$[rbp], rax $LN5@xsputn: -; 618 : } -; 619 : -; 620 : return _Start_count - _Count; +; 619 : } +; 620 : +; 621 : return _Start_count - _Count; - 00169 48 8b 85 30 01 + 00152 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 + 00159 48 8b 4d 08 mov rcx, QWORD PTR _Start_count$1[rbp] + 0015d 48 2b c8 sub rcx, rax + 00160 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 : } +; 622 : } else { // non-chars always get element-by-element processing +; 623 : return _Mysb::xsputn(_Ptr, _Count); +; 624 : } +; 625 : } - 0017a 48 8d a5 08 01 + 00163 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 + 0016a 5f pop rdi + 0016b 5d pop rbp + 0016c 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z _TEXT SEGMENT _Count_s$5 = 8 @@ -10807,7 +9935,7 @@ _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 { +; 549 : 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 @@ -10818,290 +9946,290 @@ $LN11: 00011 48 81 ec b8 01 00 00 sub rsp, 440 ; 000001b8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 d8 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 36 00 00 00 mov ecx, 54 ; 00000036H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 d8 01 00 00 mov rcx, QWORD PTR [rsp+472] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 88 01 + 0003d 48 33 c5 xor rax, rbp + 00040 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 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 549 : // get _Count characters from stream -; 550 : if _CONSTEXPR_IF (sizeof(_Elem) == 1) { -; 551 : if (_Count <= 0) { +; 550 : // get _Count characters from stream +; 551 : if constexpr (sizeof(_Elem) == 1) { +; 552 : if (_Count <= 0) { - 00051 48 83 bd c0 01 + 00053 48 83 bd c0 01 00 00 00 cmp QWORD PTR _Count$[rbp], 0 - 00059 7f 07 jg SHORT $LN4@xsgetn + 0005b 7f 07 jg SHORT $LN4@xsgetn -; 552 : return 0; +; 553 : return 0; - 0005b 33 c0 xor eax, eax - 0005d e9 e2 01 00 00 jmp $LN1@xsgetn + 0005d 33 c0 xor eax, eax + 0005f 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 +; 554 : } +; 555 : +; 556 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing - 00062 48 8b 85 b0 01 + 00064 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 + 0006b 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00070 74 20 je SHORT $LN5@xsgetn -; 556 : return _Mysb::xsgetn(_Ptr, _Count); +; 557 : return _Mysb::xsgetn(_Ptr, _Count); - 00070 4c 8b 85 c0 01 + 00072 4c 8b 85 c0 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 00077 48 8b 95 b8 01 + 00079 48 8b 95 b8 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0007e 48 8b 8d b0 01 + 00080 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00085 ff 15 00 00 00 + 00087 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 + 0008d 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); +; 558 : } +; 559 : +; 560 : // assuming this is OK because _Ptr + _Count must be valid +; 561 : auto _Count_s = static_cast(_Count); - 00090 48 8b 85 c0 01 + 00092 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 + 00099 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax -; 561 : const auto _Start_count = _Count; +; 562 : const auto _Start_count = _Count; - 0009b 48 8b 85 c0 01 + 0009d 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 + 000a4 48 89 45 28 mov QWORD PTR _Start_count$6[rbp], rax -; 562 : const auto _Available = static_cast(_Mysb::_Gnavail()); +; 563 : const auto _Available = static_cast(_Mysb::_Gnavail()); - 000a6 48 8b 8d b0 01 + 000a8 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad ff 15 00 00 00 + 000af 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 + 000b5 48 89 45 48 mov QWORD PTR _Available$7[rbp], rax -; 563 : if (0 < _Available) { // copy from get area +; 564 : 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 + 000b9 48 83 7d 48 00 cmp QWORD PTR _Available$7[rbp], 0 + 000be 76 6e jbe SHORT $LN6@xsgetn -; 564 : const auto _Read_size = (_STD min)(_Count_s, _Available); +; 565 : 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 + 000c0 48 8d 55 48 lea rdx, QWORD PTR _Available$7[rbp] + 000c4 48 8d 4d 08 lea rcx, QWORD PTR _Count_s$5[rbp] + 000c8 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 000cd 48 8b 00 mov rax, QWORD PTR [rax] + 000d0 48 89 45 68 mov QWORD PTR _Read_size$8[rbp], rax -; 565 : _Traits::copy(_Ptr, _Mysb::gptr(), _Read_size); +; 566 : _Traits::copy(_Ptr, _Mysb::gptr(), _Read_size); - 000d2 48 8b 8d b0 01 + 000d4 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000d9 ff 15 00 00 00 + 000db 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 + 000e1 4c 8b 45 68 mov r8, QWORD PTR _Read_size$8[rbp] + 000e5 48 8b d0 mov rdx, rax + 000e8 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 + 000ef e8 00 00 00 00 call ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy -; 566 : _Ptr += _Read_size; +; 567 : _Ptr += _Read_size; - 000f2 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] - 000f6 48 8b 8d b8 01 + 000f4 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] + 000f8 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 + 000ff 48 03 c8 add rcx, rax + 00102 48 8b c1 mov rax, rcx + 00105 48 89 85 b8 01 00 00 mov QWORD PTR _Ptr$[rbp], rax -; 567 : _Count_s -= _Read_size; +; 568 : _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 + 0010c 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] + 00110 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] + 00114 48 2b c8 sub rcx, rax + 00117 48 8b c1 mov rax, rcx + 0011a 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax -; 568 : _Mysb::gbump(static_cast(_Read_size)); +; 569 : _Mysb::gbump(static_cast(_Read_size)); - 0011c 8b 55 68 mov edx, DWORD PTR _Read_size$8[rbp] - 0011f 48 8b 8d b0 01 + 0011e 8b 55 68 mov edx, DWORD PTR _Read_size$8[rbp] + 00121 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00126 ff 15 00 00 00 + 00128 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 +; 570 : } +; 571 : +; 572 : if (_Myfile) { // open C stream, attempt read - 0012c 48 8b 85 b0 01 + 0012e 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00133 48 83 b8 80 00 + 00135 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0013b 0f 84 f5 00 00 + 0013d 0f 84 f5 00 00 00 je $LN7@xsgetn -; 572 : _Reset_back(); // revert from _Mychar buffer +; 573 : _Reset_back(); // revert from _Mychar buffer - 00141 48 8b 8d b0 01 + 00143 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 + 0014a 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 +; 574 : // process in 4k - 1 chunks to avoid tripping over fread's clobber-the-end behavior when +; 575 : // doing \r\n -> \n translation +; 576 : constexpr size_t _Read_size = 4095; // _INTERNAL_BUFSIZ - 1 - 0014d 48 c7 85 88 00 + 0014f 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) { +; 577 : while (_Read_size < _Count_s) { - 00158 48 81 7d 08 ff + 0015a 48 81 7d 08 ff 0f 00 00 cmp QWORD PTR _Count_s$5[rbp], 4095 ; 00000fffH - 00160 76 7f jbe SHORT $LN3@xsgetn + 00162 76 7f jbe SHORT $LN3@xsgetn -; 577 : const auto _Actual_read = _CSTD fread(_Ptr, sizeof(_Elem), _Read_size, _Myfile); +; 578 : const auto _Actual_read = _CSTD fread(_Ptr, sizeof(_Elem), _Read_size, _Myfile); - 00162 48 8b 85 b0 01 + 00164 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00169 4c 8b 88 80 00 + 0016b 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 00170 41 b8 ff 0f 00 + 00172 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 + 00178 ba 01 00 00 00 mov edx, 1 + 0017d 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00182 ff 15 00 00 00 + 00184 ff 15 00 00 00 00 call QWORD PTR __imp_fread - 00188 48 89 85 a8 00 + 0018a 48 89 85 a8 00 00 00 mov QWORD PTR _Actual_read$10[rbp], rax -; 578 : _Ptr += _Actual_read; +; 579 : _Ptr += _Actual_read; - 0018f 48 8b 85 a8 00 + 00191 48 8b 85 a8 00 00 00 mov rax, QWORD PTR _Actual_read$10[rbp] - 00196 48 8b 8d b8 01 + 00198 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 + 0019f 48 03 c8 add rcx, rax + 001a2 48 8b c1 mov rax, rcx + 001a5 48 89 85 b8 01 00 00 mov QWORD PTR _Ptr$[rbp], rax -; 579 : _Count_s -= _Actual_read; +; 580 : _Count_s -= _Actual_read; - 001aa 48 8b 85 a8 00 + 001ac 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 + 001b3 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] + 001b7 48 2b c8 sub rcx, rax + 001ba 48 8b c1 mov rax, rcx + 001bd 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax -; 580 : if (_Actual_read != _Read_size) { +; 581 : if (_Actual_read != _Read_size) { - 001bf 48 81 bd a8 00 + 001c1 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 + 001cc 74 10 je SHORT $LN8@xsgetn -; 581 : return static_cast(_Start_count - _Count_s); +; 582 : 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 + 001ce 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 001d2 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] + 001d6 48 2b c8 sub rcx, rax + 001d9 48 8b c1 mov rax, rcx + 001dc eb 68 jmp SHORT $LN1@xsgetn $LN8@xsgetn: -; 582 : } -; 583 : } +; 583 : } +; 584 : } - 001dc e9 77 ff ff ff jmp $LN2@xsgetn + 001de e9 77 ff ff ff jmp $LN2@xsgetn $LN3@xsgetn: -; 584 : -; 585 : if (0 < _Count_s) { +; 585 : +; 586 : 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 + 001e3 48 83 7d 08 00 cmp QWORD PTR _Count_s$5[rbp], 0 + 001e8 76 4e jbe SHORT $LN9@xsgetn -; 586 : _Count_s -= _CSTD fread(_Ptr, sizeof(_Elem), _Count_s, _Myfile); +; 587 : _Count_s -= _CSTD fread(_Ptr, sizeof(_Elem), _Count_s, _Myfile); - 001e8 48 8b 85 b0 01 + 001ea 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 001ef 4c 8b 88 80 00 + 001f1 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 + 001f8 4c 8b 45 08 mov r8, QWORD PTR _Count_s$5[rbp] + 001fc ba 01 00 00 00 mov edx, 1 + 00201 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00206 ff 15 00 00 00 + 00208 ff 15 00 00 00 00 call QWORD PTR __imp_fread - 0020c 48 89 85 78 01 + 0020e 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 + 00215 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 00219 48 89 85 80 01 00 00 mov QWORD PTR tv156[rbp], rax - 0021e 48 8b 85 78 01 + 00220 48 8b 85 78 01 00 00 mov rax, QWORD PTR tv158[rbp] - 00225 48 8b 8d 80 01 + 00227 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 + 0022e 48 2b c8 sub rcx, rax + 00231 48 8b c1 mov rax, rcx + 00234 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); +; 588 : } +; 589 : } +; 590 : +; 591 : 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 + 00238 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 0023c 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] + 00240 48 2b c8 sub rcx, rax + 00243 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 : } +; 592 : } else { // non-chars always get element-by-element processing +; 593 : return _Mysb::xsgetn(_Ptr, _Count); +; 594 : } +; 595 : } - 00244 48 8b f8 mov rdi, rax - 00247 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0024b 48 8d 15 00 00 + 00246 48 8b f8 mov rdi, rax + 00249 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0024d 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 + 00254 e8 00 00 00 00 call _RTC_CheckStackVars + 00259 48 8b c7 mov rax, rdi + 0025c 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 + 00263 48 33 cd xor rcx, rbp + 00266 e8 00 00 00 00 call __security_check_cookie + 0026b 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 + 00272 5f pop rdi + 00273 5d pop rbp + 00274 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ _TEXT SEGMENT _Ch$8 = 4 @@ -11127,391 +10255,390 @@ __$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 +; 491 : virtual int_type __CLR_OR_THIS_CALL uflow() override { // get an element from stream, point past it -$LN21: +$LN22: 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 + 00013 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] + 00018 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 d8 02 00 00 mov rcx, QWORD PTR [rsp+728] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 60 02 + 00033 48 33 c5 xor rax, rbp + 00036 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 + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 491 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { +; 492 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { - 00047 48 8b 8d 90 02 + 00049 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e ff 15 00 00 00 + 00050 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 + 00056 48 85 c0 test rax, rax + 00059 74 47 je SHORT $LN9@uflow + 0005b 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00060 ff 15 00 00 00 + 00062 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 + 00068 48 89 85 38 02 00 00 mov QWORD PTR tv76[rbp], rax - 0006d 48 8b 8d 90 02 + 0006f 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00074 ff 15 00 00 00 + 00076 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 + 0007c 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 + 00083 48 3b c8 cmp rcx, rax + 00086 73 1a jae SHORT $LN9@uflow -; 492 : return _Traits::to_int_type(*_Mysb::_Gninc()); // return buffered +; 493 : return _Traits::to_int_type(*_Mysb::_Gninc()); // return buffered - 00086 48 8b 8d 90 02 + 00088 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d ff 15 00 00 00 + 0008f 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 + 00095 48 8b c8 mov rcx, rax + 00098 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 0009d e9 c5 02 00 00 jmp $LN1@uflow $LN9@uflow: -; 493 : } -; 494 : -; 495 : if (!_Myfile) { +; 494 : } +; 495 : +; 496 : if (!_Myfile) { - 000a0 48 8b 85 90 02 + 000a2 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 000a7 48 83 b8 80 00 + 000a9 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 000af 75 0a jne SHORT $LN10@uflow + 000b1 75 0a jne SHORT $LN10@uflow -; 496 : return _Traits::eof(); // no open C stream, fail +; 497 : 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 + 000b3 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000b8 e9 aa 02 00 00 jmp $LN1@uflow $LN10@uflow: -; 497 : } -; 498 : -; 499 : _Reset_back(); // revert from _Mychar buffer +; 498 : } +; 499 : +; 500 : _Reset_back(); // revert from _Mychar buffer - 000bb 48 8b 8d 90 02 + 000bd 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 + 000c4 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 +; 501 : if (!_Pcvt) { // no codecvt facet, just get it - 000c7 48 8b 85 90 02 + 000c9 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 + 000d0 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 000d5 75 45 jne SHORT $LN11@uflow -; 501 : _Elem _Ch; -; 502 : return _Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch) : _Traits::eof(); +; 502 : _Elem _Ch; +; 503 : return _Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch) : _Traits::eof(); - 000d5 48 8b 85 90 02 + 000d7 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 000dc 48 8b 90 80 00 + 000de 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 + 000e5 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] + 000e9 e8 00 00 00 00 call ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ; std::_Fgetc + 000ee 0f b6 c0 movzx eax, al + 000f1 85 c0 test eax, eax + 000f3 74 11 je SHORT $LN19@uflow + 000f5 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] + 000f9 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 000fe 89 85 34 02 00 00 mov DWORD PTR tv139[rbp], eax + 00104 eb 0b jmp SHORT $LN20@uflow $LN19@uflow: - 0010f 8b 85 34 02 00 + 00106 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0010b 89 85 34 02 00 + 00 mov DWORD PTR tv139[rbp], eax +$LN20@uflow: + 00111 8b 85 34 02 00 00 mov eax, DWORD PTR tv139[rbp] - 00115 e9 4f 02 00 00 jmp $LN1@uflow + 00117 e9 4b 02 00 00 jmp $LN1@uflow $LN11@uflow: -; 503 : } -; 504 : -; 505 : // build string until codecvt succeeds -; 506 : string _Str; +; 504 : } +; 505 : +; 506 : // build string until codecvt succeeds +; 507 : 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 + 0011c 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00120 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 > + 00125 90 npad 1 $LN2@uflow: -; 507 : -; 508 : for (;;) { // get using codecvt facet -; 509 : const char* _Src; -; 510 : int _Meta = _CSTD fgetc(_Myfile); +; 508 : +; 509 : for (;;) { // get using codecvt facet +; 510 : const char* _Src; +; 511 : int _Meta = _CSTD fgetc(_Myfile); - 00124 48 8b 85 90 02 + 00126 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 0012b 48 8b 88 80 00 + 0012d 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 00132 ff 15 00 00 00 + 00134 ff 15 00 00 00 00 call QWORD PTR __imp_fgetc - 00138 89 85 84 00 00 + 0013a 89 85 84 00 00 00 mov DWORD PTR _Meta$10[rbp], eax -; 511 : -; 512 : if (_Meta == EOF) { +; 512 : +; 513 : if (_Meta == EOF) { - 0013e 83 bd 84 00 00 + 00140 83 bd 84 00 00 00 ff cmp DWORD PTR _Meta$10[rbp], -1 - 00145 75 1f jne SHORT $LN12@uflow + 00147 75 1f jne SHORT $LN12@uflow -; 513 : return _Traits::eof(); // partial char? +; 514 : 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 + 00149 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0014e 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 + 00154 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00158 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 > + 0015d 8b 85 c4 01 00 00 mov eax, DWORD PTR $T14[rbp] - 00161 e9 03 02 00 00 jmp $LN1@uflow + 00163 e9 ff 01 00 00 jmp $LN1@uflow $LN12@uflow: -; 514 : } -; 515 : -; 516 : _Str.push_back(static_cast(_Meta)); // append byte and convert +; 515 : } +; 516 : +; 517 : _Str.push_back(static_cast(_Meta)); // append byte and convert - 00166 0f b6 95 84 00 + 00168 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 + 0016f 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00173 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, +; 518 : +; 519 : _Elem _Ch; +; 520 : _Elem* _Dest; +; 521 : switch (_Pcvt->in(_State, _Str.data(), _Str.data() + _Str.size(), _Src, &_Ch, &_Ch + 1, - 00176 48 8b 85 90 02 + 00178 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 + 0017f 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 00183 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 + 0018a 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0018e 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 + 00193 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 + 0019a 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0019e 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 + 001a3 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 + 001aa 48 03 c8 add rcx, rax + 001ad 48 8b c1 mov rax, rcx + 001b0 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 + 001b7 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 001bb 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 + 001c0 48 89 85 50 02 00 00 mov QWORD PTR tv170[rbp], rax - 001c5 48 8d 85 a5 00 + 001c7 48 8d 85 a5 00 00 00 lea rax, QWORD PTR _Ch$11[rbp+1] - 001cc 48 8b 8d 90 02 + 001ce 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 + 001d5 48 83 c1 74 add rcx, 116 ; 00000074H + 001d9 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 + 001e0 48 89 54 24 38 mov QWORD PTR [rsp+56], rdx + 001e5 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 001ea 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 + 001f1 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 001f6 48 8d 45 68 lea rax, QWORD PTR _Src$9[rbp] + 001fa 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001ff 4c 8b 8d 48 02 00 00 mov r9, QWORD PTR tv172[rbp] - 00204 4c 8b 85 50 02 + 00206 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 + 0020d 48 8b d1 mov rdx, rcx + 00210 48 8b 8d 38 02 00 00 mov rcx, QWORD PTR tv174[rbp] - 00215 ff 15 00 00 00 + 00217 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 + 0021d 89 85 58 02 00 00 mov DWORD PTR tv175[rbp], eax - 00221 83 bd 58 02 00 + 00223 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 + 0022a 74 1b je SHORT $LN14@uflow + 0022c 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 + 00233 74 12 je SHORT $LN14@uflow + 00235 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: + 0023c 0f 84 d7 00 00 + 00 je $LN16@uflow + 00242 e9 f5 00 00 00 jmp $LN17@uflow +$LN14@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 +; 522 : _Dest)) { // test result of converting one element +; 523 : case codecvt_base::partial: +; 524 : case codecvt_base::ok: +; 525 : if (_Dest != &_Ch) { // got an element, put back excess and deliver it - 00249 48 8d 85 a4 00 + 00247 48 8d 85 a4 00 00 00 lea rax, QWORD PTR _Ch$11[rbp] - 00250 48 39 85 c8 00 + 0024e 48 39 85 c8 00 00 00 cmp QWORD PTR _Dest$12[rbp], rax - 00257 0f 84 9b 00 00 - 00 je $LN14@uflow + 00255 0f 84 9b 00 00 + 00 je $LN15@uflow -; 525 : auto _Nleft = _Str.data() + _Str.size() - _Src; +; 526 : 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 + 0025b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0025f 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 + 00264 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 + 0026b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0026f 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 + 00274 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 + 0027b 48 03 c8 add rcx, rax + 0027e 48 8b c1 mov rax, rcx + 00281 48 2b 45 68 sub rax, QWORD PTR _Src$9[rbp] + 00285 48 89 85 e8 00 00 00 mov QWORD PTR _Nleft$13[rbp], rax $LN7@uflow: -; 526 : while (0 < _Nleft) { +; 527 : while (0 < _Nleft) { - 0028e 48 83 bd e8 00 + 0028c 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Nleft$13[rbp], 0 - 00296 7e 3d jle SHORT $LN8@uflow + 00294 7e 3d jle SHORT $LN8@uflow -; 527 : _CSTD ungetc(_Src[--_Nleft], _Myfile); +; 528 : _CSTD ungetc(_Src[--_Nleft], _Myfile); - 00298 48 8b 85 e8 00 + 00296 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 + 0029d 48 ff c8 dec rax + 002a0 48 89 85 e8 00 00 00 mov QWORD PTR _Nleft$13[rbp], rax - 002a9 48 8b 85 e8 00 + 002a7 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 + 002ae 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] + 002b2 48 03 c8 add rcx, rax + 002b5 48 8b c1 mov rax, rcx + 002b8 0f be 00 movsx eax, BYTE PTR [rax] + 002bb 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 002c4 48 8b 91 80 00 + 002c2 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 + 002c9 8b c8 mov ecx, eax + 002cb ff 15 00 00 00 00 call QWORD PTR __imp_ungetc -; 528 : } +; 529 : } - 002d3 eb b9 jmp SHORT $LN7@uflow + 002d1 eb b9 jmp SHORT $LN7@uflow $LN8@uflow: -; 529 : -; 530 : return _Traits::to_int_type(_Ch); +; 530 : +; 531 : return _Traits::to_int_type(_Ch); - 002d5 48 8d 8d a4 00 + 002d3 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 + 002da e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 002df 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 + 002e5 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 002e9 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 > + 002ee 8b 85 e4 01 00 00 mov eax, DWORD PTR $T15[rbp] - 002f6 eb 71 jmp SHORT $LN1@uflow -$LN14@uflow: + 002f4 eb 71 jmp SHORT $LN1@uflow +$LN15@uflow: -; 531 : } -; 532 : -; 533 : _Str.erase(0, static_cast(_Src - _Str.data())); // partial, discard used input +; 532 : } +; 533 : +; 534 : _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 + 002f6 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 002fa 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 + 002ff 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] + 00303 48 2b c8 sub rcx, rax + 00306 48 8b c1 mov rax, rcx + 00309 4c 8b c0 mov r8, rax + 0030c 33 d2 xor edx, edx + 0030e 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00312 e8 00 00 00 00 call ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z ; std::basic_string,std::allocator >::erase -; 534 : break; +; 535 : break; - 00319 eb 3f jmp SHORT $LN5@uflow -$LN15@uflow: + 00317 eb 3f jmp SHORT $LN5@uflow +$LN16@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 +; 536 : +; 537 : case codecvt_base::noconv: +; 538 : // noconv is only possible if _Elem is char, so we can use it directly +; 539 : return static_cast(_Str.front()); + + 00319 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0031d 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 + 00322 0f be 00 movsx eax, BYTE PTR [rax] + 00325 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 + 0032b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0032f 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 > + 00334 8b 85 04 02 00 00 mov eax, DWORD PTR $T16[rbp] - 0033c eb 2b jmp SHORT $LN1@uflow -$LN16@uflow: + 0033a eb 2b jmp SHORT $LN1@uflow +$LN17@uflow: -; 539 : -; 540 : default: -; 541 : return _Traits::eof(); // conversion failed +; 540 : +; 541 : default: +; 542 : 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 + 0033c e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00341 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 + 00347 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0034b 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 > + 00350 8b 85 24 02 00 00 mov eax, DWORD PTR $T17[rbp] - 00358 eb 0f jmp SHORT $LN1@uflow + 00356 eb 0f jmp SHORT $LN1@uflow $LN5@uflow: -; 542 : } -; 543 : } +; 543 : } +; 544 : } - 0035a e9 c5 fd ff ff jmp $LN2@uflow + 00358 e9 c9 fd ff ff jmp $LN2@uflow -; 544 : } +; 545 : } - 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 + 0035d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00361 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 > + 00366 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 + 00367 48 8b f8 mov rdi, rax + 0036a 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 0036e 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 + 00375 e8 00 00 00 00 call _RTC_CheckStackVars + 0037a 48 8b c7 mov rax, rdi + 0037d 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 + 00384 48 33 cd xor rcx, rbp + 00387 e8 00 00 00 00 call __security_check_cookie + 0038c 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 + 00393 5f pop rdi + 00394 5d pop rbp + 00395 c3 ret 0 ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::uflow _TEXT ENDS ; COMDAT text$x @@ -11592,7 +10719,7 @@ this$ = 656 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ _TEXT SEGMENT _Meta$ = 4 @@ -11603,7 +10730,7 @@ __$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 +; 479 : 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 @@ -11612,130 +10739,130 @@ $LN7: 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 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 16 00 00 00 mov ecx, 22 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 00 01 + 00033 48 33 c5 xor rax, rbp + 00036 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 + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 479 : int_type _Meta; -; 480 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { +; 480 : int_type _Meta; +; 481 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { - 00047 48 8b 8d 30 01 + 00049 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e ff 15 00 00 00 + 00050 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 + 00056 48 85 c0 test rax, rax + 00059 74 46 je SHORT $LN2@underflow + 0005b 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00060 ff 15 00 00 00 + 00062 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 + 00068 48 89 85 f8 00 00 00 mov QWORD PTR tv76[rbp], rax - 0006d 48 8b 8d 30 01 + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00074 ff 15 00 00 00 + 00076 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 + 0007c 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 + 00083 48 3b c8 cmp rcx, rax + 00086 73 19 jae SHORT $LN2@underflow -; 481 : return _Traits::to_int_type(*_Mysb::gptr()); // return buffered +; 482 : return _Traits::to_int_type(*_Mysb::gptr()); // return buffered - 00086 48 8b 8d 30 01 + 00088 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d ff 15 00 00 00 + 0008f 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 + 00095 48 8b c8 mov rcx, rax + 00098 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 0009d eb 6a jmp SHORT $LN1@underflow + 0009f eb 68 jmp SHORT $LN3@underflow $LN2@underflow: -; 482 : } else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) { +; 483 : } else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) { - 0009f 48 8b 85 30 01 + 000a1 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 + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 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 + 000b2 ff 50 38 call QWORD PTR [rax+56] + 000b5 89 45 04 mov DWORD PTR _Meta$[rbp], eax + 000b8 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000bd 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 + 000c3 48 8d 55 04 lea rdx, QWORD PTR _Meta$[rbp] + 000c7 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 + 000ce e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000d3 0f b6 c0 movzx eax, al + 000d6 85 c0 test eax, eax + 000d8 74 07 je SHORT $LN4@underflow -; 483 : return _Meta; // uflow failed, return EOF +; 484 : return _Meta; // uflow failed, return EOF - 000d8 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] - 000db eb 2a jmp SHORT $LN1@underflow + 000da 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] + 000dd eb 2a jmp SHORT $LN1@underflow -; 484 : } else { // get a char, don't point past it +; 485 : } else { // get a char, don't point past it - 000dd eb 28 jmp SHORT $LN5@underflow + 000df eb 28 jmp SHORT $LN5@underflow $LN4@underflow: -; 485 : pbackfail(_Meta); +; 486 : pbackfail(_Meta); - 000df 48 8b 85 30 01 + 000e1 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 + 000e8 48 8b 00 mov rax, QWORD PTR [rax] + 000eb 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 000ef 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 + 000f6 8b 55 04 mov edx, DWORD PTR _Meta$[rbp] + 000f9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000fe ff 95 f8 00 00 + 00100 ff 95 f8 00 00 00 call QWORD PTR tv148[rbp] -; 486 : return _Meta; +; 487 : return _Meta; - 00104 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] + 00106 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] $LN5@underflow: $LN3@underflow: $LN1@underflow: -; 487 : } -; 488 : } +; 488 : } +; 489 : } - 00107 48 8b f8 mov rdi, rax - 0010a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0010e 48 8d 15 00 00 + 00109 48 8b f8 mov rdi, rax + 0010c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00110 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 + 00117 e8 00 00 00 00 call _RTC_CheckStackVars + 0011c 48 8b c7 mov rax, rdi + 0011f 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 + 00126 48 33 cd xor rcx, rbp + 00129 e8 00 00 00 00 call __security_check_cookie + 0012e 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 + 00135 5f pop rdi + 00136 5d pop rbp + 00137 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z _TEXT SEGMENT $T1 = 196 @@ -11748,7 +10875,7 @@ 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 { +; 458 : 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 @@ -11758,212 +10885,206 @@ $LN13: 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 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 459 : // put an element back to stream +; 460 : if (_Mysb::gptr() && _Mysb::eback() < _Mysb::gptr() +; 461 : && (_Traits::eq_int_type(_Traits::eof(), _Meta) + + 00023 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00041 ff 15 00 00 00 + 0002a 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 + 00030 48 85 c0 test rax, rax + 00033 0f 84 ba 00 00 00 je $LN2@pbackfail - 00050 48 8b 8d 60 01 + 00039 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00057 ff 15 00 00 00 + 00040 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 + 00046 48 89 85 38 01 00 00 mov QWORD PTR tv76[rbp], rax - 00064 48 8b 8d 60 01 + 0004d 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0006b ff 15 00 00 00 + 00054 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 + 0005a 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 + 00061 48 3b c8 cmp rcx, rax + 00064 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 + 0006a e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0006f 89 85 c4 00 00 00 mov DWORD PTR $T1[rbp], eax - 0008c 48 8d 95 68 01 + 00075 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 00093 48 8d 8d c4 00 + 0007c 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 + 00083 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00088 0f b6 c0 movzx eax, al + 0008b 85 c0 test eax, eax + 0008d 75 41 jne SHORT $LN4@pbackfail + 0008f 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad ff 15 00 00 00 + 00096 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 + 0009c b9 01 00 00 00 mov ecx, 1 + 000a1 48 6b c9 ff imul rcx, rcx, -1 + 000a5 48 03 c1 add rax, rcx + 000a8 48 8b c8 mov rcx, rax + 000ab e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 000b0 89 85 e4 00 00 00 mov DWORD PTR $T2[rbp], eax - 000cd 48 8d 95 68 01 + 000b6 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 000d4 48 8d 8d e4 00 + 000bd 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 + 000c4 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000c9 0f b6 c0 movzx eax, al + 000cc 85 c0 test eax, eax + 000ce 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(); +; 462 : || _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]), +; 463 : _Meta))) { // just back up position +; 464 : _Mysb::_Gndec(); - 000e7 48 8b 8d 60 01 + 000d0 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ee ff 15 00 00 00 + 000d7 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); +; 465 : return _Traits::not_eof(_Meta); - 000f4 48 8d 8d 68 01 + 000dd 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 + 000e4 e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof + 000e9 e9 f1 00 00 00 jmp $LN1@pbackfail + 000ee e9 ec 00 00 00 jmp $LN3@pbackfail $LN2@pbackfail: -; 465 : } else if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), _Meta)) { +; 466 : } else if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), _Meta)) { - 0010a 48 8b 85 60 01 + 000f3 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00111 48 83 b8 80 00 + 000fa 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 + 00102 74 25 je SHORT $LN7@pbackfail + 00104 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00109 89 85 04 01 00 00 mov DWORD PTR $T3[rbp], eax - 00126 48 8d 95 68 01 + 0010f 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 0012d 48 8d 8d 04 01 + 00116 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 + 0011d e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00122 0f b6 c0 movzx eax, al + 00125 85 c0 test eax, eax + 00127 74 0f je SHORT $LN5@pbackfail $LN7@pbackfail: -; 466 : return _Traits::eof(); // no open C stream or EOF, fail +; 467 : 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 + 00129 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0012e e9 ac 00 00 00 jmp $LN1@pbackfail + 00133 e9 a7 00 00 00 jmp $LN6@pbackfail $LN5@pbackfail: -; 467 : } else if (!_Pcvt && _Ungetc(_Traits::to_char_type(_Meta), _Myfile)) { +; 468 : } else if (!_Pcvt && _Ungetc(_Traits::to_char_type(_Meta), _Myfile)) { - 0014f 48 8b 85 60 01 + 00138 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 + 0013f 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00144 75 4b jne SHORT $LN8@pbackfail + 00146 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00164 48 8b 80 80 00 + 0014d 48 8b 80 80 00 00 00 mov rax, QWORD PTR [rax+128] - 0016b 48 89 85 38 01 + 00154 48 89 85 38 01 00 00 mov QWORD PTR tv162[rbp], rax - 00172 48 8d 8d 68 01 + 0015b 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 + 00162 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 00167 88 85 24 01 00 00 mov BYTE PTR $T4[rbp], al - 00184 48 8b 95 38 01 + 0016d 48 8b 95 38 01 00 00 mov rdx, QWORD PTR tv162[rbp] - 0018b 48 8d 8d 24 01 + 00174 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 + 0017b e8 00 00 00 00 call ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ; std::_Ungetc + 00180 0f b6 c0 movzx eax, al + 00183 85 c0 test eax, eax + 00185 74 0a je SHORT $LN8@pbackfail -; 468 : return _Meta; // no facet and unget succeeded, return +; 469 : return _Meta; // no facet and unget succeeded, return - 0019e 8b 85 68 01 00 + 00187 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 + 0018d eb 50 jmp SHORT $LN1@pbackfail + 0018f eb 4e jmp SHORT $LN9@pbackfail $LN8@pbackfail: -; 469 : } else if (_Mysb::gptr() != &_Mychar) { // putback to _Mychar +; 470 : } else if (_Mysb::gptr() != &_Mychar) { // putback to _Mychar - 001a8 48 8b 8d 60 01 + 00191 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 001af ff 15 00 00 00 + 00198 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 + 0019e 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 + 001a5 48 83 c1 70 add rcx, 112 ; 00000070H + 001a9 48 3b c1 cmp rax, rcx + 001ac 74 2c je SHORT $LN10@pbackfail -; 470 : _Mychar = _Traits::to_char_type(_Meta); +; 471 : _Mychar = _Traits::to_char_type(_Meta); - 001c5 48 8d 8d 68 01 + 001ae 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 + 001b5 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 001ba 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 001d8 88 41 70 mov BYTE PTR [rcx+112], al + 001c1 88 41 70 mov BYTE PTR [rcx+112], al -; 471 : _Set_back(); // switch to _Mychar buffer +; 472 : _Set_back(); // switch to _Mychar buffer - 001db 48 8b 8d 60 01 + 001c4 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 + 001cb 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; +; 473 : return _Meta; - 001e7 8b 85 68 01 00 + 001d0 8b 85 68 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 001ed eb 07 jmp SHORT $LN1@pbackfail + 001d6 eb 07 jmp SHORT $LN1@pbackfail -; 473 : } else { +; 474 : } else { - 001ef eb 05 jmp SHORT $LN11@pbackfail + 001d8 eb 05 jmp SHORT $LN11@pbackfail $LN10@pbackfail: -; 474 : return _Traits::eof(); // nowhere to put back +; 475 : 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 + 001da 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 : } +; 476 : } +; 477 : } - 001f6 48 8d a5 48 01 + 001df 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 + 001e6 5f pop rdi + 001e7 5d pop rbp + 001e8 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z _TEXT SEGMENT _Codecvt_temp_buf$ = 8 @@ -11988,7 +11109,7 @@ _Meta$ = 504 ; 406 : virtual int_type __CLR_OR_THIS_CALL overflow(int_type _Meta = _Traits::eof()) override { // put an element to stream -$LN18: +$LN19: 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 @@ -11996,155 +11117,155 @@ $LN18: 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 + 00017 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] + 0001c b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 c8 01 + 00037 48 33 c5 xor rax, rbp + 0003a 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 + 00041 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00048 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 + 0004d e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00052 89 85 a4 01 00 00 mov DWORD PTR $T8[rbp], eax - 00056 48 8d 95 f8 01 + 00058 48 8d 95 f8 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 0005d 48 8d 8d a4 01 + 0005f 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 + 00066 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0006b 0f b6 c0 movzx eax, al + 0006e 85 c0 test eax, eax + 00070 74 11 je SHORT $LN4@overflow ; 408 : return _Traits::not_eof(_Meta); // EOF, return success code - 00070 48 8d 8d f8 01 + 00072 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 + 00079 e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof + 0007e e9 6d 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 + 00083 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00088 ff 15 00 00 00 + 0008a 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 + 00090 48 85 c0 test rax, rax + 00093 74 60 je SHORT $LN5@overflow + 00095 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009a ff 15 00 00 00 + 0009c 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 + 000a2 48 89 85 b8 01 00 00 mov QWORD PTR tv84[rbp], rax - 000a7 48 8b 8d f0 01 + 000a9 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ae ff 15 00 00 00 + 000b0 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 + 000b6 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 + 000bd 48 3b c8 cmp rcx, rax + 000c0 73 33 jae SHORT $LN5@overflow ; 412 : *_Mysb::_Pninc() = _Traits::to_char_type(_Meta); - 000c0 48 8d 8d f8 01 + 000c2 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 + 000c9 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 000ce 88 85 b4 01 00 00 mov BYTE PTR tv133[rbp], al - 000d2 48 8b 8d f0 01 + 000d4 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000d9 ff 15 00 00 00 + 000db 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 + 000e1 0f b6 8d b4 01 00 00 movzx ecx, BYTE PTR tv133[rbp] - 000e6 88 08 mov BYTE PTR [rax], cl + 000e8 88 08 mov BYTE PTR [rax], cl ; 413 : return _Meta; - 000e8 8b 85 f8 01 00 + 000ea 8b 85 f8 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 000ee e9 ff 01 00 00 jmp $LN1@overflow + 000f0 e9 fb 01 00 00 jmp $LN1@overflow $LN5@overflow: ; 414 : } ; 415 : ; 416 : if (!_Myfile) { - 000f3 48 8b 85 f0 01 + 000f5 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fa 48 83 b8 80 00 + 000fc 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00102 75 0a jne SHORT $LN6@overflow + 00104 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 + 00106 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0010b e9 e0 01 00 00 jmp $LN1@overflow $LN6@overflow: ; 418 : } ; 419 : ; 420 : _Reset_back(); // revert from _Mychar buffer - 0010e 48 8b 8d f0 01 + 00110 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 + 00117 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 + 0011c 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 + 00123 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00128 75 65 jne SHORT $LN7@overflow ; 422 : return _Fputc(_Traits::to_char_type(_Meta), _Myfile) ? _Meta : _Traits::eof(); - 00128 48 8b 85 f0 01 + 0012a 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0012f 48 8b 80 80 00 + 00131 48 8b 80 80 00 00 00 mov rax, QWORD PTR [rax+128] - 00136 48 89 85 b8 01 + 00138 48 89 85 b8 01 00 00 mov QWORD PTR tv149[rbp], rax - 0013d 48 8d 8d f8 01 + 0013f 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 + 00146 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 0014b 88 85 c0 01 00 00 mov BYTE PTR tv147[rbp], al - 0014f 48 8b 95 b8 01 + 00151 48 8b 95 b8 01 00 00 mov rdx, QWORD PTR tv149[rbp] - 00156 0f b6 8d c0 01 + 00158 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 + 0015f e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc + 00164 0f b6 c0 movzx eax, al + 00167 85 c0 test eax, eax + 00169 74 0e je SHORT $LN15@overflow + 0016b 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 + 00171 89 85 c4 01 00 00 mov DWORD PTR tv153[rbp], eax + 00177 eb 0b jmp SHORT $LN16@overflow $LN15@overflow: - 00182 8b 85 c4 01 00 + 00179 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0017e 89 85 c4 01 00 + 00 mov DWORD PTR tv153[rbp], eax +$LN16@overflow: + 00184 8b 85 c4 01 00 00 mov eax, DWORD PTR tv153[rbp] - 00188 e9 65 01 00 00 jmp $LN1@overflow + 0018a e9 61 01 00 00 jmp $LN1@overflow $LN7@overflow: ; 423 : } @@ -12152,189 +11273,190 @@ $LN7@overflow: ; 425 : // put using codecvt facet ; 426 : constexpr size_t _Codecvt_temp_buf = 32; - 0018d 48 c7 45 08 20 + 0018f 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 + 00197 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 + 0019e e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 001a3 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 + 001a6 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 + 001ad 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 001b1 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 + 001b8 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] + 001bc 48 8d 4d 65 lea rcx, QWORD PTR _Ch$[rbp+1] + 001c0 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 + 001c7 48 83 c2 74 add rdx, 116 ; 00000074H + 001cb 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 + 001d2 4c 89 44 24 38 mov QWORD PTR [rsp+56], r8 + 001d7 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 001dc 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 001e0 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 001e5 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 + 001ec 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001f1 4c 8b c9 mov r9, rcx + 001f4 4c 8d 45 64 lea r8, QWORD PTR _Ch$[rbp] + 001f8 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR tv170[rbp] - 001fd ff 15 00 00 00 + 001ff 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 + 00205 89 85 c0 01 00 00 mov DWORD PTR tv171[rbp], eax - 00209 83 bd c0 01 00 + 0020b 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 + 00212 74 1b je SHORT $LN9@overflow + 00214 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 + 0021b 74 12 je SHORT $LN8@overflow + 0021d 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 + 00224 0f 84 82 00 00 + 00 je $LN12@overflow + 0022a e9 bc 00 00 00 jmp $LN13@overflow $LN8@overflow: +$LN9@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); +; 434 : case codecvt_base::ok: +; 435 : { // converted something, try to put it out +; 436 : const auto _Count = static_cast(_Dest - _Str); - 00231 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] - 00235 48 8b 8d a8 00 + 0022f 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 00233 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 + 0023a 48 2b c8 sub rcx, rax + 0023d 48 8b c1 mov rax, rcx + 00240 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))) { +; 437 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { - 00249 48 83 bd c8 00 + 00247 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 + 0024f 76 34 jbe SHORT $LN10@overflow + 00251 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0025a 4c 8b 88 80 00 + 00258 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 00261 4c 8b 85 c8 00 + 0025f 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 + 00266 ba 01 00 00 00 mov edx, 1 + 0026b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0026f ff 15 00 00 00 00 call QWORD PTR __imp_fwrite - 00277 48 39 85 c8 00 + 00275 48 39 85 c8 00 00 00 cmp QWORD PTR _Count$7[rbp], rax - 0027e 74 07 je SHORT $LN9@overflow + 0027c 74 07 je SHORT $LN10@overflow -; 437 : return _Traits::eof(); // write failed +; 438 : 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: + 0027e e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00283 eb 6b jmp SHORT $LN1@overflow +$LN10@overflow: -; 438 : } -; 439 : -; 440 : _Wrotesome = true; // write succeeded +; 439 : } +; 440 : +; 441 : _Wrotesome = true; // write succeeded - 00287 48 8b 85 f0 01 + 00285 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0028e c6 40 71 01 mov BYTE PTR [rax+113], 1 + 0028c c6 40 71 01 mov BYTE PTR [rax+113], 1 -; 441 : if (_Src != &_Ch) { +; 442 : if (_Src != &_Ch) { - 00292 48 8d 45 64 lea rax, QWORD PTR _Ch$[rbp] - 00296 48 39 85 88 00 + 00290 48 8d 45 64 lea rax, QWORD PTR _Ch$[rbp] + 00294 48 39 85 88 00 00 00 cmp QWORD PTR _Src$[rbp], rax - 0029d 74 08 je SHORT $LN10@overflow + 0029b 74 08 je SHORT $LN11@overflow -; 442 : return _Meta; // converted whole element +; 443 : return _Meta; // converted whole element - 0029f 8b 85 f8 01 00 + 0029d 8b 85 f8 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 002a5 eb 4b jmp SHORT $LN1@overflow -$LN10@overflow: + 002a3 eb 4b jmp SHORT $LN1@overflow +$LN11@overflow: -; 443 : } -; 444 : -; 445 : return _Traits::eof(); // conversion failed +; 444 : } +; 445 : +; 446 : 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: + 002a5 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002aa eb 44 jmp SHORT $LN1@overflow +$LN12@overflow: -; 446 : } -; 447 : -; 448 : case codecvt_base::noconv: -; 449 : // no conversion, put as is -; 450 : return _Fputc(_Ch, _Myfile) ? _Meta : _Traits::eof(); +; 447 : } +; 448 : +; 449 : case codecvt_base::noconv: +; 450 : // no conversion, put as is +; 451 : return _Fputc(_Ch, _Myfile) ? _Meta : _Traits::eof(); - 002ae 48 8b 85 f0 01 + 002ac 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 002b5 48 8b 90 80 00 + 002b3 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 + 002ba 0f b6 4d 64 movzx ecx, BYTE PTR _Ch$[rbp] + 002be e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc + 002c3 0f b6 c0 movzx eax, al + 002c6 85 c0 test eax, eax + 002c8 74 0e je SHORT $LN17@overflow + 002ca 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 + 002d0 89 85 b4 01 00 00 mov DWORD PTR tv192[rbp], eax + 002d6 eb 0b jmp SHORT $LN18@overflow $LN17@overflow: - 002e5 8b 85 b4 01 00 + 002d8 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002dd 89 85 b4 01 00 + 00 mov DWORD PTR tv192[rbp], eax +$LN18@overflow: + 002e3 8b 85 b4 01 00 00 mov eax, DWORD PTR tv192[rbp] - 002eb eb 05 jmp SHORT $LN1@overflow -$LN12@overflow: + 002e9 eb 05 jmp SHORT $LN1@overflow +$LN13@overflow: -; 451 : -; 452 : default: -; 453 : return _Traits::eof(); // conversion failed +; 452 : +; 453 : default: +; 454 : return _Traits::eof(); // conversion failed - 002ed e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002eb e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof $LN1@overflow: -; 454 : } -; 455 : } +; 455 : } +; 456 : } - 002f2 48 8b f8 mov rdi, rax - 002f5 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 002f9 48 8d 15 00 00 + 002f0 48 8b f8 mov rdi, rax + 002f3 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 002f7 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 + 002fe e8 00 00 00 00 call _RTC_CheckStackVars + 00303 48 8b c7 mov rax, rdi + 00306 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 + 0030d 48 33 cd xor rcx, rbp + 00310 e8 00 00 00 00 call __security_check_cookie + 00315 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 + 0031c 5f pop rdi + 0031d 5d pop rbp + 0031e 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ _TEXT SEGMENT this$ = 224 @@ -12349,46 +11471,40 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 400 : if (_Myfile) { - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 b8 80 00 + 00026 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00045 74 14 je SHORT $LN2@Unlock + 0002e 74 14 je SHORT $LN2@Unlock ; 401 : _CSTD _unlock_file(_Myfile); - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 8b 88 80 00 + 00037 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 00055 ff 15 00 00 00 + 0003e ff 15 00 00 00 00 call QWORD PTR __imp__unlock_file $LN2@Unlock: ; 402 : } ; 403 : } - 0005b 48 8d a5 c8 00 + 00044 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 + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ _TEXT SEGMENT this$ = 224 @@ -12403,46 +11519,40 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 394 : if (_Myfile) { - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 b8 80 00 + 00026 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00045 74 14 je SHORT $LN2@Lock + 0002e 74 14 je SHORT $LN2@Lock ; 395 : _CSTD _lock_file(_Myfile); - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 8b 88 80 00 + 00037 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 00055 ff 15 00 00 00 + 0003e ff 15 00 00 00 00 call QWORD PTR __imp__lock_file $LN2@Lock: ; 396 : } ; 397 : } - 0005b 48 8d a5 c8 00 + 00044 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 + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ _TEXT SEGMENT _Ans$ = 8 @@ -12458,43 +11568,37 @@ $LN7: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a 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 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 b8 80 00 + 00026 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00045 74 48 je SHORT $LN2@close + 0002e 74 48 je SHORT $LN2@close ; 377 : _Ans = this; - 00047 48 8b 85 00 01 + 00030 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 89 45 08 mov QWORD PTR _Ans$[rbp], rax + 00037 48 89 45 08 mov QWORD PTR _Ans$[rbp], rax ; 378 : if (!_Endwrite()) { - 00052 48 8b 8d 00 01 + 0003b 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 + 00042 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 00047 0f b6 c0 movzx eax, al + 0004a 85 c0 test eax, eax + 0004c 75 08 jne SHORT $LN4@close ; 379 : _Ans = nullptr; - 00065 48 c7 45 08 00 + 0004e 48 c7 45 08 00 00 00 00 mov QWORD PTR _Ans$[rbp], 0 $LN4@close: @@ -12502,30 +11606,30 @@ $LN4@close: ; 381 : ; 382 : if (_CSTD fclose(_Myfile) != 0) { - 0006d 48 8b 85 00 01 + 00056 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00074 48 8b 88 80 00 + 0005d 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0007b ff 15 00 00 00 + 00064 ff 15 00 00 00 00 call QWORD PTR __imp_fclose - 00081 85 c0 test eax, eax - 00083 74 08 je SHORT $LN5@close + 0006a 85 c0 test eax, eax + 0006c 74 08 je SHORT $LN5@close ; 383 : _Ans = nullptr; - 00085 48 c7 45 08 00 + 0006e 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 + 00076 eb 08 jmp SHORT $LN3@close $LN2@close: ; 386 : _Ans = nullptr; - 0008f 48 c7 45 08 00 + 00078 48 c7 45 08 00 00 00 00 mov QWORD PTR _Ans$[rbp], 0 $LN3@close: @@ -12533,28 +11637,28 @@ $LN3@close: ; 388 : ; 389 : _Init(nullptr, _Closefl); - 00097 41 b8 02 00 00 + 00080 41 b8 02 00 00 00 mov r8d, 2 - 0009d 33 d2 xor edx, edx - 0009f 48 8b 8d 00 01 + 00086 33 d2 xor edx, edx + 00088 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 + 0008f 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] + 00094 48 8b 45 08 mov rax, QWORD PTR _Ans$[rbp] ; 391 : } - 000af 48 8d a5 e8 00 + 00098 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000b6 5f pop rdi - 000b7 5d pop rbp - 000b8 c3 ret 0 + 0009f 5f pop rdi + 000a0 5d pop rbp + 000a1 c3 ret 0 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z _TEXT SEGMENT _File$ = 8 @@ -12579,105 +11683,99 @@ $LN6: 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 + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 276 : // _Prot is an extension ; 277 : if (_Myfile) { - 00045 48 8b 85 40 01 + 0002e 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004c 48 83 b8 80 00 + 00035 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00054 74 07 je SHORT $LN2@open + 0003d 74 07 je SHORT $LN2@open ; 278 : return nullptr; - 00056 33 c0 xor eax, eax - 00058 e9 96 00 00 00 jmp $LN1@open + 0003f 33 c0 xor eax, eax + 00041 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 + 00046 44 8b 85 58 01 00 00 mov r8d, DWORD PTR _Prot$[rbp] - 00064 8b 95 50 01 00 + 0004d 8b 95 50 01 00 00 mov edx, DWORD PTR _Mode$[rbp] - 0006a 48 8b 8d 48 01 + 00053 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 + 0005a e8 00 00 00 00 call ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z ; std::_Fiopen + 0005f 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 + 00063 48 83 7d 08 00 cmp QWORD PTR _File$[rbp], 0 + 00068 75 04 jne SHORT $LN3@open ; 283 : return nullptr; // open failed - 00081 33 c0 xor eax, eax - 00083 eb 6e jmp SHORT $LN1@open + 0006a 33 c0 xor eax, eax + 0006c eb 6e jmp SHORT $LN1@open $LN3@open: ; 284 : } ; 285 : ; 286 : _Init(_File, _Openfl); - 00085 41 b8 01 00 00 + 0006e 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 + 00074 48 8b 55 08 mov rdx, QWORD PTR _File$[rbp] + 00078 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 + 0007f 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 + 00084 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 000a2 48 8b 8d 40 01 + 0008b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000a9 ff 15 00 00 00 + 00092 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 + 00098 48 89 85 08 01 00 00 mov QWORD PTR tv90[rbp], rax - 000b6 48 8b 85 08 01 + 0009f 48 8b 85 08 01 00 00 mov rax, QWORD PTR tv90[rbp] - 000bd 48 89 85 10 01 + 000a6 48 89 85 10 01 00 00 mov QWORD PTR tv89[rbp], rax - 000c4 48 8b 8d 10 01 + 000ad 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 + 000b4 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 > + 000b9 48 8b d0 mov rdx, rax + 000bc 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 + 000c3 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 + 000c8 90 npad 1 + 000c9 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 + 000d0 e8 00 00 00 00 call ??1locale@std@@QEAA@XZ ; std::locale::~locale ; 288 : return this; // open succeeded - 000ec 48 8b 85 40 01 + 000d5 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] $LN1@open: ; 289 : } - 000f3 48 8d a5 28 01 + 000dc 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 + 000e3 5f pop rdi + 000e4 5d pop rbp + 000e5 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 @@ -12734,7 +11832,7 @@ _Prot$ = 344 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -12749,70 +11847,64 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d 0d 00 00 + 00026 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ - 00044 48 89 08 mov QWORD PTR [rax], rcx + 0002d 48 89 08 mov QWORD PTR [rax], rcx ; 171 : if (_Myfile) { - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 b8 80 00 + 00037 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00056 74 0c je SHORT $LN2@basic_file + 0003f 74 0c je SHORT $LN2@basic_file ; 172 : _Reset_back(); // revert from _Mychar buffer - 00058 48 8b 8d e0 00 + 00041 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 + 00048 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 + 0004d 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 + 00054 0f b6 40 7c movzx eax, BYTE PTR [rax+124] + 00058 85 c0 test eax, eax + 0005a 74 0c je SHORT $LN3@basic_file ; 176 : close(); - 00073 48 8b 8d e0 00 + 0005c 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 + 00063 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 + 00068 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00086 ff 15 00 00 00 + 0006f 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 + 00075 90 npad 1 + 00076 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 + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -12827,44 +11919,38 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d ff 15 00 00 00 + 00026 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 + 0002c 90 npad 1 + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d 0d 00 00 + 00034 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 + 0003b 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 + 0003e 45 33 c0 xor r8d, r8d + 00041 33 d2 xor edx, edx + 00043 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 + 0004a 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 + 0004f 90 npad 1 ; 164 : } - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006e 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_filebuf >::basic_filebuf > _TEXT ENDS ; COMDAT text$x @@ -12909,14 +11995,14 @@ this$ = 224 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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() { +; 1169 : void close() { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -12925,58 +12011,52 @@ $LN4: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1170 : if (!_Filebuffer.close()) { + + 0001f 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 + 00026 48 83 c0 08 add rax, 8 + 0002a 48 8b c8 mov rcx, rax + 0002d e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close + 00032 48 85 c0 test rax, rax + 00035 75 37 jne SHORT $LN2@close -; 1170 : _Myios::setstate(ios_base::failbit); +; 1171 : _Myios::setstate(ios_base::failbit); - 0004e 48 8b 85 f0 00 + 00037 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 + 0003e 48 8b 00 mov rax, QWORD PTR [rax] + 00041 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00045 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 + 0004c 48 03 c8 add rcx, rax + 0004f 48 8b c1 mov rax, rcx + 00052 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 + 00059 45 33 c0 xor r8d, r8d + 0005c ba 02 00 00 00 mov edx, 2 + 00061 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv82[rbp] - 0007f ff 15 00 00 00 + 00068 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 : } +; 1172 : } +; 1173 : } - 00085 48 8d a5 d8 00 + 0006e 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 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z _TEXT SEGMENT tv135 = 192 @@ -12988,7 +12068,7 @@ _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) { +; 1149 : 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 @@ -13000,100 +12080,94 @@ $LN5: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1149 : // _Prot is an extension -; 1150 : if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot)) { +; 1150 : // _Prot is an extension +; 1151 : if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot)) { - 00045 48 8b 85 f0 00 + 0002e 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 + 00035 48 83 c0 08 add rax, 8 + 00039 48 89 85 c0 00 00 00 mov QWORD PTR tv72[rbp], rax - 00057 8b 85 00 01 00 + 00040 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 + 00046 83 c8 02 or eax, 2 + 00049 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 + 00050 44 8b c0 mov r8d, eax + 00053 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _Filename$[rbp] - 00071 48 8b 8d c0 00 + 0005a 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 + 00061 e8 00 00 00 00 call ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ; std::basic_filebuf >::open + 00066 48 85 c0 test rax, rax + 00069 74 36 je SHORT $LN2@open -; 1151 : _Myios::clear(); +; 1152 : _Myios::clear(); - 00082 48 8b 85 f0 00 + 0006b 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 + 00072 48 8b 00 mov rax, QWORD PTR [rax] + 00075 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00079 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 + 00080 48 03 c8 add rcx, rax + 00083 48 8b c1 mov rax, rcx + 00086 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 + 0008d 45 33 c0 xor r8d, r8d + 00090 33 d2 xor edx, edx + 00092 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv88[rbp] - 000b0 ff 15 00 00 00 + 00099 ff 15 00 00 00 00 call QWORD PTR __imp_?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 1152 : } else { +; 1153 : } else { - 000b6 eb 37 jmp SHORT $LN3@open + 0009f eb 37 jmp SHORT $LN3@open $LN2@open: -; 1153 : _Myios::setstate(ios_base::failbit); +; 1154 : _Myios::setstate(ios_base::failbit); - 000b8 48 8b 85 f0 00 + 000a1 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 + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000af 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 + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 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 + 000c3 45 33 c0 xor r8d, r8d + 000c6 ba 02 00 00 00 mov edx, 2 + 000cb 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv135[rbp] - 000e9 ff 15 00 00 00 + 000d2 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 : } +; 1155 : } +; 1156 : } - 000ef 48 8d a5 d8 00 + 000d8 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 + 000df 5f pop rdi + 000e0 5d pop rbp + 000e1 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 {} +; 1138 : virtual __CLR_OR_THIS_CALL ~basic_ofstream() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13102,65 +12176,58 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 80 58 ff + 00026 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 + 0002d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004f 48 8d 15 00 00 + 00038 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 + 0003f 48 89 94 01 58 ff ff ff mov QWORD PTR [rcx+rax-168], rdx - 0005e 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00065 48 8b 80 58 ff + 0004e 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 + 00055 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00059 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 00076 48 8b 8d e0 00 + 0005f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0007d 48 8b 89 58 ff + 00066 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 + 0006d 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] + 00071 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR this$[rbp] - 0008f 89 84 0a 54 ff + 00078 89 84 0a 54 ff ff ff mov DWORD PTR [rdx+rcx-172], eax - 00096 48 8b 85 e0 00 + 0007f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0009d 48 2d a0 00 00 + 00086 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 + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > + 00094 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000b2 48 2d 98 00 00 + 0009b 48 2d 98 00 00 00 sub rax, 152 ; 00000098H - 000b8 48 8b c8 mov rcx, rax - 000bb ff 15 00 00 00 + 000a1 48 8b c8 mov rcx, rax + 000a4 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 + 000aa 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 + 000b1 5f pop rdi + 000b2 5d pop rbp + 000b3 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -13168,7 +12235,7 @@ 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)) {} +; 999 : basic_ofstream() : _Mybase(_STD addressof(_Filebuffer)) {} $LN8: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx @@ -13178,87 +12245,81 @@ $LN8: 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 + 00017 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 + 00021 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0002d 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 + 00034 74 37 je SHORT $LN2@basic_ofst + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00054 48 8d 0d 00 00 + 0003d 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 + 00044 48 89 08 mov QWORD PTR [rax], rcx + 00047 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00065 48 05 a8 00 00 + 0004e 48 05 a8 00 00 00 add rax, 168 ; 000000a8H - 0006b 48 8b c8 mov rcx, rax - 0006e ff 15 00 00 00 + 00054 48 8b c8 mov rcx, rax + 00057 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 + 0005d 90 npad 1 + 0005e 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 + 00064 83 c8 01 or eax, 1 + 00067 89 85 c4 00 00 00 mov DWORD PTR $T1[rbp], eax $LN2@basic_ofst: - 00084 48 8b 85 00 01 + 0006d 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 + 00074 48 83 c0 08 add rax, 8 + 00078 48 8b c8 mov rcx, rax + 0007b 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 > > + 00080 45 33 c9 xor r9d, r9d + 00083 45 33 c0 xor r8d, r8d + 00086 48 8b d0 mov rdx, rax + 00089 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000a7 ff 15 00 00 00 + 00090 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 + 00096 90 npad 1 + 00097 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 + 0009e 48 8b 00 mov rax, QWORD PTR [rax] + 000a1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000a5 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c3 48 8d 15 00 00 + 000ac 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 + 000b3 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 000b7 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 + 000be 48 8b 00 mov rax, QWORD PTR [rax] + 000c1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000c5 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 000e2 48 8b 8d 00 01 + 000cb 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 + 000d2 48 8b 09 mov rcx, QWORD PTR [rcx] + 000d5 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] + 000d9 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 + 000e0 89 44 0a fc mov DWORD PTR [rdx+rcx-4], eax + 000e4 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 + 000eb 48 83 c0 08 add rax, 8 + 000ef 48 8b c8 mov rcx, rax + 000f2 e8 00 00 00 00 call ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_filebuf >::basic_filebuf > + 000f7 90 npad 1 + 000f8 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00116 48 8d a5 e8 00 + 000ff 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 + 00106 5f pop rdi + 00107 5d pop rbp + 00108 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 @@ -13374,7 +12435,7 @@ $initVBases$ = 264 ?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 +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?PutToFile@@YAXPEAXK@Z _TEXT SEGMENT fout$ = 16 @@ -13393,76 +12454,78 @@ $LN4: 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 + 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001c b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 e8 01 + 00037 48 33 c5 xor rax, rbp + 0003a 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 + 00041 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : 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 + 0004d ba 08 01 00 00 mov edx, 264 ; 00000108H + 00052 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00056 e8 00 00 00 00 call ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z + 0005b ba 01 00 00 00 mov edx, 1 + 00060 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00064 e8 00 00 00 00 call ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ofstream >::basic_ofstream > + 00069 90 npad 1 -; 30 : fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); +; 30 : // +; 31 : fout.open("C:\\Users\\James\\Desktop\\fantern\\Test.m", std::ios::binary | std::ios::out); - 00068 41 b9 40 00 00 + 0006a 41 b9 40 00 00 00 mov r9d, 64 ; 00000040H - 0006e 41 b8 22 00 00 + 00070 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 + 00076 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ + 0007d 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00081 e8 00 00 00 00 call ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ; std::basic_ofstream >::open -; 31 : fout.write((PCHAR)Buffer, BufferSize); +; 32 : //fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); +; 33 : fout.write((PCHAR)Buffer, BufferSize); - 00084 8b 85 18 02 00 + 00086 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 + 0008c 44 8b c0 mov r8d, eax + 0008f 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 + 00096 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 0009a ff 15 00 00 00 00 call QWORD PTR __imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z -; 32 : fout.close(); +; 34 : 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 + 000a0 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 000a4 e8 00 00 00 00 call ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ; std::basic_ofstream >::close + 000a9 90 npad 1 -; 33 : } +; 35 : } - 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 + 000aa 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 000ae e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 000b3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b7 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 + 000be e8 00 00 00 00 call _RTC_CheckStackVars + 000c3 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 + 000ca 48 33 cd xor rcx, rbp + 000cd e8 00 00 00 00 call __security_check_cookie + 000d2 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 + 000d9 5f pop rdi + 000da 5d pop rbp + 000db c3 ret 0 ?PutToFile@@YAXPEAXK@Z ENDP ; PutToFile _TEXT ENDS ; COMDAT text$x @@ -13509,7 +12572,7 @@ BufferSize$ = 536 ?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 +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z _TEXT SEGMENT ExecBuffer$ = 8 @@ -13527,281 +12590,57 @@ $LN4: 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 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 21 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); - 0003a 8b 85 08 01 00 + 00023 8b 85 08 01 00 00 mov eax, DWORD PTR BufferSize$[rbp] - 00040 41 b9 40 00 00 + 00029 41 b9 40 00 00 00 mov r9d, 64 ; 00000040H - 00046 41 b8 00 10 00 + 0002f 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 + 00035 8b d0 mov edx, eax + 00037 33 c9 xor ecx, ecx + 00039 ff 15 00 00 00 00 call QWORD PTR __imp_VirtualAlloc - 00056 48 89 45 08 mov QWORD PTR ExecBuffer$[rbp], rax + 0003f 48 89 45 08 mov QWORD PTR ExecBuffer$[rbp], rax ; 22 : if (!ExecBuffer) - 0005a 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 - 0005f 75 04 jne SHORT $LN2@MakeExecut + 00043 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 + 00048 75 04 jne SHORT $LN2@MakeExecut ; 23 : return NULL; - 00061 33 c0 xor eax, eax - 00063 eb 19 jmp SHORT $LN1@MakeExecut + 0004a 33 c0 xor eax, eax + 0004c eb 19 jmp SHORT $LN1@MakeExecut $LN2@MakeExecut: ; 24 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); - 00065 8b 85 08 01 00 + 0004e 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 + 00054 44 8b c0 mov r8d, eax + 00057 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 + 0005e 48 8b 4d 08 mov rcx, QWORD PTR ExecBuffer$[rbp] + 00062 e8 00 00 00 00 call memcpy $LN1@MakeExecut: ; 25 : } - 0007e 48 8d a5 e8 00 + 00067 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 + 0006e 5f pop rdi + 0006f 5d pop rbp + 00070 c3 ret 0 ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ENDP ; MakeExecutableBuffer _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; 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 - -; 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 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 35 : return _Fillobj<_Elem>(_Ch); - - 0003a 0f b6 95 e8 00 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 00041 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj - 0004d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - -; 36 : } - - 00054 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z -_TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT - -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - - 0003b 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 0004c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005a 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Manip$[rbp] - 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] - 00072 48 8b c8 mov rcx, rax - 00075 ff 95 c0 00 00 - 00 call QWORD PTR tv79[rbp] - -; 425 : return _Ostr; - - 0007b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 426 : } - - 00082 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z _TEXT SEGMENT _State$ = 4 @@ -13837,7 +12676,7 @@ _Ostr$ = 592 _Ch$ = 600 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT -; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream +; 779 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream $LN23: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -13847,414 +12686,414 @@ $LN23: 0000b 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 78 + 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001c b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 48 8b 8c 24 78 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 20 02 + 00037 48 33 c5 xor rax, rbp + 0003a 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00041 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 781 : using _Elem = char; -; 782 : using _Myos = basic_ostream<_Elem, _Traits>; -; 783 : -; 784 : ios_base::iostate _State = ios_base::goodbit; +; 780 : using _Elem = char; +; 781 : using _Myos = basic_ostream<_Elem, _Traits>; +; 782 : +; 783 : ios_base::iostate _State = ios_base::goodbit; - 0004b c7 45 04 00 00 + 0004d c7 45 04 00 00 00 00 mov DWORD PTR _State$[rbp], 0 -; 785 : const typename _Myos::sentry _Ok(_Ostr); +; 784 : const typename _Myos::sentry _Ok(_Ostr); - 00052 48 8b 95 50 02 + 00054 48 8b 95 50 02 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry - 00062 90 npad 1 - -; 786 : -; 787 : if (_Ok) { // state okay, insert - - 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool - 0006c 0f b6 c0 movzx eax, al - 0006f 85 c0 test eax, eax - 00071 0f 84 1d 03 00 + 0005b 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0005f e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry + 00064 90 npad 1 + +; 785 : +; 786 : if (_Ok) { // state okay, insert + + 00065 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00069 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool + 0006e 0f b6 c0 movzx eax, al + 00071 85 c0 test eax, eax + 00073 0f 84 1d 03 00 00 je $LN8@operator -; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; +; 787 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - 00077 48 8b 85 50 02 + 00079 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0007e 48 8b 00 mov rax, QWORD PTR [rax] - 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00085 48 8b 8d 50 02 + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00087 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0008c 48 03 c8 add rcx, rax - 0008f 48 8b c1 mov rax, rcx - 00092 48 8b c8 mov rcx, rax - 00095 ff 15 00 00 00 + 0008e 48 03 c8 add rcx, rax + 00091 48 8b c1 mov rax, rcx + 00094 48 8b c8 mov rcx, rax + 00097 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 0009b 48 83 f8 01 cmp rax, 1 - 0009f 7f 0d jg SHORT $LN15@operator - 000a1 48 c7 85 08 02 + 0009d 48 83 f8 01 cmp rax, 1 + 000a1 7f 0d jg SHORT $LN15@operator + 000a3 48 c7 85 08 02 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 - 000ac eb 2e jmp SHORT $LN16@operator + 000ae eb 2e jmp SHORT $LN16@operator $LN15@operator: - 000ae 48 8b 85 50 02 + 000b0 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000b5 48 8b 00 mov rax, QWORD PTR [rax] - 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000bc 48 8b 8d 50 02 + 000b7 48 8b 00 mov rax, QWORD PTR [rax] + 000ba 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000be 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000c3 48 03 c8 add rcx, rax - 000c6 48 8b c1 mov rax, rcx - 000c9 48 8b c8 mov rcx, rax - 000cc ff 15 00 00 00 + 000c5 48 03 c8 add rcx, rax + 000c8 48 8b c1 mov rax, rcx + 000cb 48 8b c8 mov rcx, rax + 000ce ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 000d2 48 ff c8 dec rax - 000d5 48 89 85 08 02 + 000d4 48 ff c8 dec rax + 000d7 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax $LN16@operator: - 000dc 48 8b 85 08 02 + 000de 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv130[rbp] - 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 000e5 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -; 789 : -; 790 : _TRY_IO_BEGIN -; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { +; 788 : +; 789 : _TRY_IO_BEGIN +; 790 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - 000e7 48 8b 85 50 02 + 000e9 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000ee 48 8b 00 mov rax, QWORD PTR [rax] - 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000f5 48 8b 8d 50 02 + 000f0 48 8b 00 mov rax, QWORD PTR [rax] + 000f3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000f7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000fc 48 03 c8 add rcx, rax - 000ff 48 8b c1 mov rax, rcx - 00102 48 8b c8 mov rcx, rax - 00105 ff 15 00 00 00 + 000fe 48 03 c8 add rcx, rax + 00101 48 8b c1 mov rax, rcx + 00104 48 8b c8 mov rcx, rax + 00107 ff 15 00 00 00 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ - 0010b 89 85 04 02 00 + 0010d 89 85 04 02 00 00 mov DWORD PTR tv65[rbp], eax - 00111 8b 85 04 02 00 + 00113 8b 85 04 02 00 00 mov eax, DWORD PTR tv65[rbp] - 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011c 83 f8 40 cmp eax, 64 ; 00000040H - 0011f 0f 84 eb 00 00 + 00119 25 c0 01 00 00 and eax, 448 ; 000001c0H + 0011e 83 f8 40 cmp eax, 64 ; 00000040H + 00121 0f 84 eb 00 00 00 je $LN10@operator -; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left +; 791 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left - 00125 eb 0b jmp SHORT $LN4@operator + 00127 eb 0b jmp SHORT $LN4@operator $LN2@operator: - 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 0012b 48 ff c8 dec rax - 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 00129 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 0012d 48 ff c8 dec rax + 00130 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN4@operator: - 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00136 0f 85 d4 00 00 + 00134 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00138 0f 85 d4 00 00 00 jne $LN10@operator - 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00141 0f 8e c9 00 00 + 0013e 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00143 0f 8e c9 00 00 00 jle $LN10@operator -; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 792 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 00147 48 8b 85 50 02 + 00149 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0014e 48 8b 00 mov rax, QWORD PTR [rax] - 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00155 48 8b 8d 50 02 + 00150 48 8b 00 mov rax, QWORD PTR [rax] + 00153 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00157 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0015c 48 03 c8 add rcx, rax - 0015f 48 8b c1 mov rax, rcx - 00162 48 8b c8 mov rcx, rax - 00165 ff 15 00 00 00 + 0015e 48 03 c8 add rcx, rax + 00161 48 8b c1 mov rax, rcx + 00164 48 8b c8 mov rcx, rax + 00167 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0016b 48 89 85 08 02 + 0016d 48 89 85 08 02 00 00 mov QWORD PTR tv300[rbp], rax - 00172 48 8b 85 08 02 + 00174 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv300[rbp] - 00179 48 89 85 10 02 + 0017b 48 89 85 10 02 00 00 mov QWORD PTR tv179[rbp], rax - 00180 48 8b 85 50 02 + 00182 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00187 48 8b 00 mov rax, QWORD PTR [rax] - 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0018e 48 8b 8d 50 02 + 00189 48 8b 00 mov rax, QWORD PTR [rax] + 0018c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00190 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 8b c8 mov rcx, rax - 0019e ff 15 00 00 00 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 8b c8 mov rcx, rax + 001a0 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 001a4 88 85 18 02 00 + 001a6 88 85 18 02 00 00 mov BYTE PTR tv301[rbp], al - 001aa 0f b6 85 18 02 + 001ac 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b1 88 85 19 02 00 + 001b3 88 85 19 02 00 00 mov BYTE PTR tv177[rbp], al - 001b7 0f b6 95 19 02 + 001b9 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv177[rbp] - 001be 48 8b 8d 10 02 + 001c0 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c5 ff 15 00 00 00 + 001c7 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cb 89 85 1c 02 00 + 001cd 89 85 1c 02 00 00 mov DWORD PTR tv302[rbp], eax - 001d1 8b 85 1c 02 00 + 001d3 8b 85 1c 02 00 00 mov eax, DWORD PTR tv302[rbp] - 001d7 89 85 34 01 00 + 001d9 89 85 34 01 00 00 mov DWORD PTR $T5[rbp], eax - 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 001e2 89 85 54 01 00 + 001df e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001e4 89 85 54 01 00 00 mov DWORD PTR $T6[rbp], eax - 001e8 48 8d 95 34 01 + 001ea 48 8d 95 34 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 001ef 48 8d 8d 54 01 + 001f1 48 8d 8d 54 01 00 00 lea rcx, QWORD PTR $T6[rbp] - 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 001fb 0f b6 c0 movzx eax, al - 001fe 85 c0 test eax, eax - 00200 74 09 je SHORT $LN11@operator + 001f8 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 001fd 0f b6 c0 movzx eax, al + 00200 85 c0 test eax, eax + 00202 74 09 je SHORT $LN11@operator -; 794 : _State |= ios_base::badbit; +; 793 : _State |= ios_base::badbit; - 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00205 83 c8 04 or eax, 4 - 00208 89 45 04 mov DWORD PTR _State$[rbp], eax + 00204 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00207 83 c8 04 or eax, 4 + 0020a 89 45 04 mov DWORD PTR _State$[rbp], eax $LN11@operator: -; 795 : } -; 796 : } +; 794 : } +; 795 : } - 0020b e9 17 ff ff ff jmp $LN2@operator + 0020d e9 17 ff ff ff jmp $LN2@operator $LN10@operator: -; 797 : } -; 798 : -; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { +; 796 : } +; 797 : +; 798 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { - 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00214 0f 85 8d 00 00 + 00212 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00216 0f 85 8d 00 00 00 jne $LN12@operator - 0021a 48 8b 85 50 02 + 0021c 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00221 48 8b 00 mov rax, QWORD PTR [rax] - 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00228 48 8b 8d 50 02 + 00223 48 8b 00 mov rax, QWORD PTR [rax] + 00226 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0022a 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0022f 48 03 c8 add rcx, rax - 00232 48 8b c1 mov rax, rcx - 00235 48 8b c8 mov rcx, rax - 00238 ff 15 00 00 00 + 00231 48 03 c8 add rcx, rax + 00234 48 8b c1 mov rax, rcx + 00237 48 8b c8 mov rcx, rax + 0023a ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0023e 48 89 85 08 02 + 00240 48 89 85 08 02 00 00 mov QWORD PTR tv303[rbp], rax - 00245 48 8b 85 08 02 + 00247 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv303[rbp] - 0024c 48 89 85 10 02 + 0024e 48 89 85 10 02 00 00 mov QWORD PTR tv204[rbp], rax - 00253 0f b6 95 58 02 + 00255 0f b6 95 58 02 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025a 48 8b 8d 10 02 + 0025c 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv204[rbp] - 00261 ff 15 00 00 00 + 00263 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00267 89 85 18 02 00 + 00269 89 85 18 02 00 00 mov DWORD PTR tv304[rbp], eax - 0026d 8b 85 18 02 00 + 0026f 8b 85 18 02 00 00 mov eax, DWORD PTR tv304[rbp] - 00273 89 85 74 01 00 + 00275 89 85 74 01 00 00 mov DWORD PTR $T7[rbp], eax - 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0027e 89 85 94 01 00 + 0027b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00280 89 85 94 01 00 00 mov DWORD PTR $T8[rbp], eax - 00284 48 8d 95 74 01 + 00286 48 8d 95 74 01 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028b 48 8d 8d 94 01 + 0028d 48 8d 8d 94 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00297 0f b6 c0 movzx eax, al - 0029a 85 c0 test eax, eax - 0029c 74 09 je SHORT $LN12@operator + 00294 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00299 0f b6 c0 movzx eax, al + 0029c 85 c0 test eax, eax + 0029e 74 09 je SHORT $LN12@operator -; 800 : _State |= ios_base::badbit; +; 799 : _State |= ios_base::badbit; - 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 002a1 83 c8 04 or eax, 4 - 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax + 002a0 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 002a3 83 c8 04 or eax, 4 + 002a6 89 45 04 mov DWORD PTR _State$[rbp], eax $LN12@operator: -; 801 : } -; 802 : -; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right +; 800 : } +; 801 : +; 802 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right - 002a7 eb 0b jmp SHORT $LN7@operator + 002a9 eb 0b jmp SHORT $LN7@operator $LN5@operator: - 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 002ad 48 ff c8 dec rax - 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 002ab 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 002af 48 ff c8 dec rax + 002b2 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN7@operator: - 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002b8 0f 85 d4 00 00 + 002b6 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002ba 0f 85 d4 00 00 00 jne $LN6@operator - 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c3 0f 8e c9 00 00 + 002c0 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c5 0f 8e c9 00 00 00 jle $LN6@operator -; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 803 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 002c9 48 8b 85 50 02 + 002cb 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 002d0 48 8b 00 mov rax, QWORD PTR [rax] - 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 002d7 48 8b 8d 50 02 + 002d2 48 8b 00 mov rax, QWORD PTR [rax] + 002d5 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 002d9 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 002de 48 03 c8 add rcx, rax - 002e1 48 8b c1 mov rax, rcx - 002e4 48 8b c8 mov rcx, rax - 002e7 ff 15 00 00 00 + 002e0 48 03 c8 add rcx, rax + 002e3 48 8b c1 mov rax, rcx + 002e6 48 8b c8 mov rcx, rax + 002e9 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 002ed 48 89 85 08 02 + 002ef 48 89 85 08 02 00 00 mov QWORD PTR tv305[rbp], rax - 002f4 48 8b 85 08 02 + 002f6 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv305[rbp] - 002fb 48 89 85 10 02 + 002fd 48 89 85 10 02 00 00 mov QWORD PTR tv245[rbp], rax - 00302 48 8b 85 50 02 + 00304 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00309 48 8b 00 mov rax, QWORD PTR [rax] - 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00310 48 8b 8d 50 02 + 0030b 48 8b 00 mov rax, QWORD PTR [rax] + 0030e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00312 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00317 48 03 c8 add rcx, rax - 0031a 48 8b c1 mov rax, rcx - 0031d 48 8b c8 mov rcx, rax - 00320 ff 15 00 00 00 + 00319 48 03 c8 add rcx, rax + 0031c 48 8b c1 mov rax, rcx + 0031f 48 8b c8 mov rcx, rax + 00322 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 00326 88 85 18 02 00 + 00328 88 85 18 02 00 00 mov BYTE PTR tv306[rbp], al - 0032c 0f b6 85 18 02 + 0032e 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv306[rbp] - 00333 88 85 19 02 00 + 00335 88 85 19 02 00 00 mov BYTE PTR tv243[rbp], al - 00339 0f b6 95 19 02 + 0033b 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv243[rbp] - 00340 48 8b 8d 10 02 + 00342 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv245[rbp] - 00347 ff 15 00 00 00 + 00349 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034d 89 85 1c 02 00 + 0034f 89 85 1c 02 00 00 mov DWORD PTR tv307[rbp], eax - 00353 8b 85 1c 02 00 + 00355 8b 85 1c 02 00 00 mov eax, DWORD PTR tv307[rbp] - 00359 89 85 b4 01 00 + 0035b 89 85 b4 01 00 00 mov DWORD PTR $T9[rbp], eax - 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00364 89 85 d4 01 00 + 00361 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00366 89 85 d4 01 00 00 mov DWORD PTR $T10[rbp], eax - 0036a 48 8d 95 b4 01 + 0036c 48 8d 95 b4 01 00 00 lea rdx, QWORD PTR $T9[rbp] - 00371 48 8d 8d d4 01 + 00373 48 8d 8d d4 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0037d 0f b6 c0 movzx eax, al - 00380 85 c0 test eax, eax - 00382 74 09 je SHORT $LN13@operator + 0037a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0037f 0f b6 c0 movzx eax, al + 00382 85 c0 test eax, eax + 00384 74 09 je SHORT $LN13@operator -; 805 : _State |= ios_base::badbit; +; 804 : _State |= ios_base::badbit; - 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00387 83 c8 04 or eax, 4 - 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax + 00386 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00389 83 c8 04 or eax, 4 + 0038c 89 45 04 mov DWORD PTR _State$[rbp], eax $LN13@operator: -; 806 : } -; 807 : } +; 805 : } +; 806 : } - 0038d e9 17 ff ff ff jmp $LN5@operator + 0038f e9 17 ff ff ff jmp $LN5@operator $LN6@operator: - 00392 eb 00 jmp SHORT $LN8@operator + 00394 eb 00 jmp SHORT $LN8@operator $LN21@operator: $LN8@operator: -; 808 : _CATCH_IO_(ios_base, _Ostr) -; 809 : } -; 810 : -; 811 : _Ostr.width(0); +; 807 : _CATCH_IO_(ios_base, _Ostr) +; 808 : } +; 809 : +; 810 : _Ostr.width(0); - 00394 48 8b 85 50 02 + 00396 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0039b 48 8b 00 mov rax, QWORD PTR [rax] - 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003a2 48 8b 8d 50 02 + 0039d 48 8b 00 mov rax, QWORD PTR [rax] + 003a0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003a4 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003a9 48 03 c8 add rcx, rax - 003ac 48 8b c1 mov rax, rcx - 003af 48 89 85 08 02 + 003ab 48 03 c8 add rcx, rax + 003ae 48 8b c1 mov rax, rcx + 003b1 48 89 85 08 02 00 00 mov QWORD PTR tv281[rbp], rax - 003b6 33 d2 xor edx, edx - 003b8 48 8b 8d 08 02 + 003b8 33 d2 xor edx, edx + 003ba 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv281[rbp] - 003bf ff 15 00 00 00 + 003c1 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z -; 812 : _Ostr.setstate(_State); +; 811 : _Ostr.setstate(_State); - 003c5 48 8b 85 50 02 + 003c7 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 003cc 48 8b 00 mov rax, QWORD PTR [rax] - 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003d3 48 8b 8d 50 02 + 003ce 48 8b 00 mov rax, QWORD PTR [rax] + 003d1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003d5 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003da 48 03 c8 add rcx, rax - 003dd 48 8b c1 mov rax, rcx - 003e0 48 89 85 08 02 + 003dc 48 03 c8 add rcx, rax + 003df 48 8b c1 mov rax, rcx + 003e2 48 89 85 08 02 00 00 mov QWORD PTR tv295[rbp], rax - 003e7 45 33 c0 xor r8d, r8d - 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ed 48 8b 8d 08 02 + 003e9 45 33 c0 xor r8d, r8d + 003ec 8b 55 04 mov edx, DWORD PTR _State$[rbp] + 003ef 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv295[rbp] - 003f4 ff 15 00 00 00 + 003f6 ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 813 : return _Ostr; +; 812 : return _Ostr; - 003fa 48 8b 85 50 02 + 003fc 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00401 48 89 85 f8 01 + 00403 48 89 85 f8 01 00 00 mov QWORD PTR $T11[rbp], rax - 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 00411 48 8b 85 f8 01 + 0040a 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0040e e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00413 48 8b 85 f8 01 00 00 mov rax, QWORD PTR $T11[rbp] -; 814 : } +; 813 : } - 00418 48 8b f8 mov rdi, rax - 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0041f 48 8d 15 00 00 + 0041a 48 8b f8 mov rdi, rax + 0041d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00421 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData - 00426 e8 00 00 00 00 call _RTC_CheckStackVars - 0042b 48 8b c7 mov rax, rdi - 0042e 48 8b 8d 20 02 + 00428 e8 00 00 00 00 call _RTC_CheckStackVars + 0042d 48 8b c7 mov rax, rdi + 00430 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00435 48 33 cd xor rcx, rbp - 00438 e8 00 00 00 00 call __security_check_cookie - 0043d 48 8d a5 38 02 + 00437 48 33 cd xor rcx, rbp + 0043a e8 00 00 00 00 call __security_check_cookie + 0043f 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 00444 5f pop rdi - 00445 5d pop rbp - 00446 c3 ret 0 + 00446 5f pop rdi + 00447 5d pop rbp + 00448 c3 ret 0 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > _TEXT ENDS ; COMDAT text$x @@ -14340,7 +13179,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 808 : _CATCH_IO_(ios_base, _Ostr) +; 807 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -14460,7 +13299,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 808 : _CATCH_IO_(ios_base, _Ostr) +; 807 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -14471,32 +13310,226 @@ _Ch$ = 600 __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 + 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 +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT + +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); + + 00024 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00035 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00043 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0004a 48 03 c8 add rcx, rax + 0004d 48 8b c1 mov rax, rcx + 00050 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Manip$[rbp] + 00057 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] + 0005b 48 8b c8 mov rcx, rax + 0005e ff 95 c0 00 00 + 00 call QWORD PTR tv79[rbp] + +; 425 : return _Ostr; + + 00064 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 426 : } + + 0006b 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?PrintByteArr@@YAXPEAXK@Z _TEXT SEGMENT i$1 = 4 @@ -14522,97 +13555,91 @@ $LN6: 0000b 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 a8 - 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : for (uint32_t i = 0; i < BufSize; i++) - 0003a c7 45 04 00 00 + 00023 c7 45 04 00 00 00 00 mov DWORD PTR i$1[rbp], 0 - 00041 eb 08 jmp SHORT $LN4@PrintByteA + 0002a eb 08 jmp SHORT $LN4@PrintByteA $LN2@PrintByteA: - 00043 8b 45 04 mov eax, DWORD PTR i$1[rbp] - 00046 ff c0 inc eax - 00048 89 45 04 mov DWORD PTR i$1[rbp], eax + 0002c 8b 45 04 mov eax, DWORD PTR i$1[rbp] + 0002f ff c0 inc eax + 00031 89 45 04 mov DWORD PTR i$1[rbp], eax $LN4@PrintByteA: - 0004b 8b 85 88 01 00 + 00034 8b 85 88 01 00 00 mov eax, DWORD PTR BufSize$[rbp] - 00051 39 45 04 cmp DWORD PTR i$1[rbp], eax - 00054 0f 83 b2 00 00 + 0003a 39 45 04 cmp DWORD PTR i$1[rbp], eax + 0003d 0f 83 b2 00 00 00 jae $LN3@PrintByteA ; 14 : { ; 15 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)((PUCHAR)Buff)[i] << ' '; - 0005a 48 8d 15 00 00 + 00043 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 00061 48 8b 0d 00 00 + 0004a 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 00068 ff 15 00 00 00 + 00051 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 - 0006e 48 89 85 28 01 + 00057 48 89 85 28 01 00 00 mov QWORD PTR tv83[rbp], rax - 00075 ba 02 00 00 00 mov edx, 2 - 0007a 48 8d 8d 08 01 + 0005e ba 02 00 00 00 mov edx, 2 + 00063 48 8d 8d 08 01 00 00 lea rcx, QWORD PTR $T3[rbp] - 00081 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 00086 48 89 85 30 01 + 0006a e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 0006f 48 89 85 30 01 00 00 mov QWORD PTR tv85[rbp], rax - 0008d 48 8b 95 30 01 + 00076 48 8b 95 30 01 00 00 mov rdx, QWORD PTR tv85[rbp] - 00094 48 8b 8d 28 01 + 0007d 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR tv83[rbp] - 0009b 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> - 000a0 48 89 85 38 01 + 00084 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> + 00089 48 89 85 38 01 00 00 mov QWORD PTR tv88[rbp], rax - 000a7 b2 30 mov dl, 48 ; 00000030H - 000a9 48 8d 8d e4 00 + 00090 b2 30 mov dl, 48 ; 00000030H + 00092 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 000b0 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill - 000b5 48 89 85 40 01 + 00099 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill + 0009e 48 89 85 40 01 00 00 mov QWORD PTR tv90[rbp], rax - 000bc 48 8b 95 40 01 + 000a5 48 8b 95 40 01 00 00 mov rdx, QWORD PTR tv90[rbp] - 000c3 48 8b 8d 38 01 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv88[rbp] - 000ca 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> - 000cf 48 89 85 48 01 + 000b3 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> + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv133[rbp], rax - 000d6 8b 45 04 mov eax, DWORD PTR i$1[rbp] - 000d9 48 8b 8d 80 01 + 000bf 8b 45 04 mov eax, DWORD PTR i$1[rbp] + 000c2 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Buff$[rbp] - 000e0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000e4 89 85 50 01 00 + 000c9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 000cd 89 85 50 01 00 00 mov DWORD PTR tv131[rbp], eax - 000ea 8b 95 50 01 00 + 000d3 8b 95 50 01 00 00 mov edx, DWORD PTR tv131[rbp] - 000f0 48 8b 8d 48 01 + 000d9 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR tv133[rbp] - 000f7 ff 15 00 00 00 + 000e0 ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 000fd b2 20 mov dl, 32 ; 00000020H - 000ff 48 8b c8 mov rcx, rax - 00102 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<< > + 000e6 b2 20 mov dl, 32 ; 00000020H + 000e8 48 8b c8 mov rcx, rax + 000eb 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<< > ; 16 : } - 00107 e9 37 ff ff ff jmp $LN2@PrintByteA + 000f0 e9 37 ff ff ff jmp $LN2@PrintByteA $LN3@PrintByteA: ; 17 : } - 0010c 48 8d a5 68 01 + 000f5 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00113 5f pop rdi - 00114 5d pop rbp - 00115 c3 ret 0 + 000fc 5f pop rdi + 000fd 5d pop rbp + 000fe c3 ret 0 ?PrintByteArr@@YAXPEAXK@Z ENDP ; PrintByteArr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -14627,32 +13654,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 83 c0 10 add rax, 16 - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > - 0003d 48 8d a5 c8 00 + 0001a 48 83 c0 10 add rax, 16 + 0001e 48 8b c8 mov rcx, rax + 00021 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1343 : constexpr _Ty1& _Get_first() noexcept { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14661,38 +13682,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1731 : _Alty& _Getal() noexcept { +; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14701,35 +13716,28 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1732 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1818 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first -; 1733 : } +; 1819 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -14742,7 +13750,7 @@ tv86 = 328 this$ = 368 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 1685 : void _Tidy() noexcept { // free all storage +; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14751,123 +13759,117 @@ $LN4: 00007 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1686 : auto& _My_data = _Mypair._Myval2; - - 00036 48 8b 85 70 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1756 : auto& _My_data = _Mypair._Myval2; + + 0001f 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1687 : pointer& _Myfirst = _My_data._Myfirst; +; 1757 : pointer& _Myfirst = _My_data._Myfirst; - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 83 c0 08 add rax, 8 - 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 83 c0 08 add rax, 8 + 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1688 : pointer& _Mylast = _My_data._Mylast; +; 1758 : pointer& _Mylast = _My_data._Mylast; - 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00051 48 83 c0 10 add rax, 16 - 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003a 48 83 c0 10 add rax, 16 + 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1689 : pointer& _Myend = _My_data._Myend; +; 1759 : pointer& _Myend = _My_data._Myend; - 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005d 48 83 c0 18 add rax, 24 - 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00046 48 83 c0 18 add rax, 24 + 0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1690 : -; 1691 : _My_data._Orphan_all(); +; 1760 : +; 1761 : _My_data._Orphan_all(); - 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1692 : -; 1693 : if (_Myfirst) { // destroy and deallocate old array +; 1762 : +; 1763 : if (_Myfirst) { // destroy and deallocate old array - 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00072 48 83 38 00 cmp QWORD PTR [rax], 0 - 00076 0f 84 92 00 00 + 00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0005b 48 83 38 00 cmp QWORD PTR [rax], 0 + 0005f 0f 84 92 00 00 00 je $LN2@Tidy -; 1694 : _Destroy(_Myfirst, _Mylast); +; 1764 : _Destroy(_Myfirst, _Mylast); - 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00080 4c 8b 00 mov r8, QWORD PTR [rax] - 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00087 48 8b 10 mov rdx, QWORD PTR [rax] - 0008a 48 8b 8d 70 01 + 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00069 4c 8b 00 mov r8, QWORD PTR [rax] + 0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00070 48 8b 10 mov rdx, QWORD PTR [rax] + 00073 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 00096 48 8b 8d 70 01 + 0007f 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 000a2 48 89 85 38 01 + 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0008b 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] - 000b4 48 8b 00 mov rax, QWORD PTR [rax] - 000b7 48 2b c1 sub rax, rcx - 000ba 48 c1 f8 02 sar rax, 2 - 000be 48 89 85 40 01 + 00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0009d 48 8b 00 mov rax, QWORD PTR [rax] + 000a0 48 2b c1 sub rax, rcx + 000a3 48 c1 f8 02 sar rax, 2 + 000a7 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000c9 48 8b 00 mov rax, QWORD PTR [rax] - 000cc 48 89 85 48 01 + 000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000b2 48 8b 00 mov rax, QWORD PTR [rax] + 000b5 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000d3 4c 8b 85 40 01 + 000bc 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000da 48 8b 95 48 01 + 000c3 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000e1 48 8b 8d 38 01 + 000ca 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1696 : -; 1697 : _Myfirst = pointer(); +; 1766 : +; 1767 : _Myfirst = nullptr; - 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000f1 48 c7 00 00 00 + 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000da 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1698 : _Mylast = pointer(); +; 1768 : _Mylast = nullptr; - 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000fc 48 c7 00 00 00 + 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000e5 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1699 : _Myend = pointer(); +; 1769 : _Myend = nullptr; - 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00107 48 c7 00 00 00 + 000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000f0 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN2@Tidy: -; 1700 : } -; 1701 : } +; 1770 : } +; 1771 : } - 0010e 48 8d a5 58 01 + 000f7 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 000fe 5f pop rdi + 000ff 5d pop rbp + 00100 c3 ret 0 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -14875,7 +13877,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator +; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14886,39 +13888,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1612 : _Destroy_range(_First, _Last, _Getal()); +; 1679 : // destroy [_First, _Last) using allocator +; 1680 : _Destroy_range(_First, _Last, _Getal()); - 00040 48 8b 8d e0 00 + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 4c 8b c0 mov r8, rax - 0004f 48 8b 95 f0 00 + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 4c 8b c0 mov r8, rax + 00038 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d e8 00 + 0003f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1613 : } +; 1681 : } - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -14928,7 +13925,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 672 : ~vector() noexcept { +; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14937,75 +13934,74 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 1a 00 00 00 mov ecx, 26 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 18 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 673 : _Tidy(); +; 712 : _Tidy(); - 00047 48 8b 8d 40 01 + 00049 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00053 48 8b 8d 40 01 + 00055 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0005f 48 8b d0 mov rdx, rax - 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] - 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] - 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00061 48 8b d0 mov rdx, rax + 00064 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00068 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00073 48 c7 85 04 01 + 00075 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 0007e 48 8b 85 40 01 + 00080 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00085 48 8d 95 04 01 + 00087 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00094 48 8b d0 mov rdx, rax - 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 0008e 48 8b c8 mov rcx, rax + 00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00096 48 8b d0 mov rdx, rax + 00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 678 : } +; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 717 : } - 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a4 48 8d 15 00 00 + 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData - 000ab e8 00 00 00 00 call _RTC_CheckStackVars - 000b0 90 npad 1 - 000b1 48 8b 8d 18 01 + 000ad e8 00 00 00 00 call _RTC_CheckStackVars + 000b2 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b8 48 33 cd xor rcx, rbp - 000bb e8 00 00 00 00 call __security_check_cookie - 000c0 48 8d a5 28 01 + 000b9 48 33 cd xor rcx, rbp + 000bc e8 00 00 00 00 call __security_check_cookie + 000c1 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c7 5f pop rdi - 000c8 5d pop rbp - 000c9 c3 ret 0 + 000c8 5f pop rdi + 000c9 5d pop rbp + 000ca c3 ret 0 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -15013,7 +14009,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -15024,38 +14020,32 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 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); +; 834 : // no overflow check on the following multiply; we assume _Allocate did that check +; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Count$[rbp] - 00047 48 c1 e0 02 shl rax, 2 - 0004b 48 8b d0 mov rdx, rax - 0004e 48 8b 8d e8 00 + 00030 48 c1 e0 02 shl rax, 2 + 00034 48 8b d0 mov rdx, rax + 00037 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -15066,7 +14056,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -15078,147 +14068,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -15229,7 +14213,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -15241,188 +14225,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z _TEXT SEGMENT tv69 = 192 @@ -15440,49 +14377,43 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 130 : return _CSTD ungetc(static_cast(_Byte), _File) != EOF; - 0003b 48 8b 85 f0 00 + 00024 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 + 0002b 0f b6 00 movzx eax, BYTE PTR [rax] + 0002e 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 + 00035 8b c8 mov ecx, eax + 00037 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 + 0003d 83 f8 ff cmp eax, -1 + 00040 74 0c je SHORT $LN3@Ungetc + 00042 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00063 eb 0a jmp SHORT $LN4@Ungetc + 0004c eb 0a jmp SHORT $LN4@Ungetc $LN3@Ungetc: - 00065 c7 85 c0 00 00 + 0004e c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@Ungetc: - 0006f 0f b6 85 c0 00 + 00058 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] ; 131 : } - 00076 48 8d a5 d8 00 + 0005f 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 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z _TEXT SEGMENT tv69 = 192 @@ -15500,48 +14431,42 @@ $LN5: 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 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 107 : return _CSTD fputc(_Byte, _File) != EOF; - 0003a 0f be 85 f0 00 + 00023 0f be 85 f0 00 00 00 movsx eax, BYTE PTR _Byte$[rbp] - 00041 48 8b 95 f8 00 + 0002a 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 + 00031 8b c8 mov ecx, eax + 00033 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 + 00039 83 f8 ff cmp eax, -1 + 0003c 74 0c je SHORT $LN3@Fputc + 0003e c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 0005f eb 0a jmp SHORT $LN4@Fputc + 00048 eb 0a jmp SHORT $LN4@Fputc $LN3@Fputc: - 00061 c7 85 c0 00 00 + 0004a c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@Fputc: - 0006b 0f b6 85 c0 00 + 00054 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] ; 108 : } - 00072 48 8d a5 d8 00 + 0005b 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00079 5f pop rdi - 0007a 5d pop rbp - 0007b c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??$_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream ; COMDAT ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z _TEXT SEGMENT _Meta$ = 4 @@ -15559,62 +14484,56 @@ $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 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 66 : int _Meta; ; 67 : if ((_Meta = _CSTD fgetc(_File)) == EOF) { - 0003b 48 8b 8d 08 01 + 00024 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _File$[rbp] - 00042 ff 15 00 00 00 + 0002b 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 + 00031 89 45 04 mov DWORD PTR _Meta$[rbp], eax + 00034 83 7d 04 ff cmp DWORD PTR _Meta$[rbp], -1 + 00038 75 06 jne SHORT $LN2@Fgetc ; 68 : return false; - 00051 32 c0 xor al, al - 00053 eb 11 jmp SHORT $LN1@Fgetc + 0003a 32 c0 xor al, al + 0003c eb 11 jmp SHORT $LN1@Fgetc ; 69 : } else { // got one, convert to char - 00055 eb 0f jmp SHORT $LN3@Fgetc + 0003e eb 0f jmp SHORT $LN3@Fgetc $LN2@Fgetc: ; 70 : _Byte = static_cast(_Meta); - 00057 48 8b 85 00 01 + 00040 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 + 00047 0f b6 4d 04 movzx ecx, BYTE PTR _Meta$[rbp] + 0004b 88 08 mov BYTE PTR [rax], cl ; 71 : return true; - 00064 b0 01 mov al, 1 + 0004d b0 01 mov al, 1 $LN3@Fgetc: $LN1@Fgetc: ; 72 : } ; 73 : } - 00066 48 8d a5 e8 00 + 0004f 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 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 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\ios +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ios ; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z _TEXT SEGMENT _Iosbase$ = 224 @@ -15629,42 +14548,36 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FD1AE8DD_ios + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); - 00036 41 b8 00 0e 00 + 0001f 41 b8 00 0e 00 00 mov r8d, 3584 ; 00000e00H - 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H - 00041 48 8b 8d e0 00 + 00025 ba 00 08 00 00 mov edx, 2048 ; 00000800H + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00048 ff 15 00 00 00 + 00031 ff 15 00 00 00 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z ; 208 : return _Iosbase; - 0004e 48 8b 85 e0 00 + 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Iosbase$[rbp] ; 209 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -15675,7 +14588,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -15686,104 +14599,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00040 48 8b 8d 40 01 + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -15800,79 +14707,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iosfwd +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd ; COMDAT ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ _TEXT SEGMENT this$ = 224 @@ -15887,38 +14788,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd + 0001a 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 + 0001f 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 + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 48 03 41 08 add rax, QWORD PTR [rcx+8] + 00030 48 03 41 08 add rax, QWORD PTR [rcx+8] ; 71 : } - 0004b 48 8d a5 c8 00 + 00034 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ??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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd ; COMDAT ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ _TEXT SEGMENT this$ = 224 @@ -15935,38 +14830,32 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 60 : return _Mystate; - 0003b 48 8b 85 e0 00 + 00024 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 + 0002b 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0002f 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 + 00036 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 8b 85 e8 00 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] ; 61 : } - 00057 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd ; COMDAT ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z _TEXT SEGMENT this$ = 224 @@ -15985,40 +14874,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 85 e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 8b 8d f0 00 + 00030 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 + 00037 48 89 08 mov QWORD PTR [rax], rcx + 0003a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 c7 40 08 00 + 00041 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00060 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00067 48 8b 8d e8 00 + 00050 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 + 00057 48 89 48 10 mov QWORD PTR [rax+16], rcx + 0005b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00079 48 8d a5 c8 00 + 00062 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 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd ; COMDAT ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z _TEXT SEGMENT this$ = 224 @@ -16035,42 +14918,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 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d e8 00 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Off$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx - 0004c 48 8b 85 e0 00 + 00032 48 89 08 mov QWORD PTR [rax], rcx + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 c7 40 08 00 + 0003c 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0005b 48 8b 85 e0 00 + 00044 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 + 0004b 48 83 c0 10 add rax, 16 + 0004f 48 8b f8 mov rdi, rax + 00052 33 c0 xor eax, eax + 00054 b9 08 00 00 00 mov ecx, 8 + 00059 f3 aa rep stosb + 0005b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00079 48 8d a5 c8 00 + 00062 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 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -16089,7 +14966,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16100,255 +14977,255 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z _TEXT SEGMENT _Facptr$ = 8 @@ -16368,60 +15245,54 @@ $LN8: 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0001f 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 + 00024 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 + 0002b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0002f 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00033 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 + 0003a 73 23 jae SHORT $LN6@Getfacet + 0003c 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 + 00043 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00047 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0004b 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 + 00052 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] + 00056 48 89 85 f8 00 00 00 mov QWORD PTR tv71[rbp], rax - 00074 eb 0b jmp SHORT $LN7@Getfacet + 0005d eb 0b jmp SHORT $LN7@Getfacet $LN6@Getfacet: - 00076 48 c7 85 f8 00 + 0005f 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 + 0006a 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv71[rbp] - 00088 48 89 45 08 mov QWORD PTR _Facptr$[rbp], rax + 00071 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 + 00075 48 83 7d 08 00 cmp QWORD PTR _Facptr$[rbp], 0 + 0007a 75 13 jne SHORT $LN3@Getfacet + 0007c 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 + 00083 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00087 0f b6 40 24 movzx eax, BYTE PTR [rax+36] + 0008b 85 c0 test eax, eax + 0008d 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 + 0008f 48 8b 45 08 mov rax, QWORD PTR _Facptr$[rbp] + 00093 eb 31 jmp SHORT $LN1@Getfacet $LN2@Getfacet: ; 377 : } @@ -16429,45 +15300,45 @@ $LN2@Getfacet: ; 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 + 00095 e8 00 00 00 00 call ?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ ; std::locale::_Getgloballocale + 0009a 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 + 0009e 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] + 000a2 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 000a6 48 39 85 28 01 00 00 cmp QWORD PTR _Id$[rbp], rax - 000c4 73 15 jae SHORT $LN4@Getfacet + 000ad 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 + 000af 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] + 000b3 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000b7 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 + 000be 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] + 000c2 eb 02 jmp SHORT $LN1@Getfacet $LN4@Getfacet: ; 383 : } ; 384 : ; 385 : return nullptr; // no entry in current locale - 000db 33 c0 xor eax, eax + 000c4 33 c0 xor eax, eax $LN1@Getfacet: ; 386 : } - 000dd 48 8d a5 08 01 + 000c6 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 + 000cd 5f pop rdi + 000ce 5d pop rbp + 000cf 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.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??1locale@std@@QEAA@XZ _TEXT SEGMENT $T1 = 200 @@ -16485,54 +15356,48 @@ $LN6: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 351 : if (_Ptr) { - 00036 48 8b 85 10 01 + 0001f 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 + 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0002b 74 67 je SHORT $LN2@locale ; 352 : delete _Ptr->_Decref(); - 00044 48 8b 85 10 01 + 0002d 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 + 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00038 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 + 0003f 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 ff 50 10 call QWORD PTR [rax+16] + 00049 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00067 48 83 bd c8 00 + 00050 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 + 00058 74 2f je SHORT $LN4@locale + 0005a 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 + 00061 48 8b 00 mov rax, QWORD PTR [rax] + 00064 48 8b 00 mov rax, QWORD PTR [rax] + 00067 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 + 0006e ba 01 00 00 00 mov edx, 1 + 00073 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00091 ff 95 d8 00 00 + 0007a ff 95 d8 00 00 00 call QWORD PTR tv85[rbp] - 00097 48 89 85 e0 00 + 00080 48 89 85 e0 00 00 00 mov QWORD PTR tv86[rbp], rax - 0009e eb 0b jmp SHORT $LN2@locale + 00087 eb 0b jmp SHORT $LN2@locale $LN4@locale: - 000a0 48 c7 85 e0 00 + 00089 48 c7 85 e0 00 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN2@locale: @@ -16540,15 +15405,15 @@ $LN2@locale: ; 353 : } ; 354 : } - 000ab 48 8d a5 f8 00 + 00094 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 + 0009b 5f pop rdi + 0009c 5d pop rbp + 0009d 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.27.29110\include\typeinfo +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\typeinfo ; COMDAT ?_Throw_bad_cast@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -16562,33 +15427,29 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__33FB35AA_typeinfo - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0C3682BF_typeinfo + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 65 : _THROW(bad_cast{}); - 0002a 48 8d 8d c8 00 + 0001b 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00031 e8 00 00 00 00 call ??0bad_cast@std@@QEAA@XZ ; std::bad_cast::bad_cast - 00036 48 8d 15 00 00 + 00022 e8 00 00 00 00 call ??0bad_cast@std@@QEAA@XZ ; std::bad_cast::bad_cast + 00027 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI2?AVbad_cast@std@@ - 0003d 48 8d 8d c8 00 + 0002e 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00044 e8 00 00 00 00 call _CxxThrowException + 00035 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 66 : } - 00049 48 8d a5 f8 00 + 0003a 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00041 5f pop rdi + 00042 5d pop rbp + 00043 c3 ret 0 ?_Throw_bad_cast@std@@YAXXZ ENDP ; std::_Throw_bad_cast _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -16605,32 +15466,26 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_cast@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_cast@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_cast@std@@UEAAPEAXI@Z ENDP ; std::bad_cast::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -16647,29 +15502,23 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_cast@std@@QEAA@AEBV01@@Z ENDP ; std::bad_cast::bad_cast _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -16684,76 +15533,99 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 + +; 137 : { + +$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:__65F43743_vcruntime_typeinfo@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 136 : : exception("bad cast", 1) + + 0001f 41 b8 01 00 00 + 00 mov r8d, 1 + 00025 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast@ + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + +; 137 : { + + 00038 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ + 00046 48 89 08 mov QWORD PTR [rax], rcx + +; 138 : } + + 00049 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00050 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 +??0bad_cast@std@@QEAA@XZ ENDP ; std::bad_cast::bad_cast +_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 -this$ = 224 -??0bad_cast@std@@QEAA@XZ PROC ; std::bad_cast::bad_cast, COMDAT +_Time$ = 224 +time PROC ; COMDAT -; 135 : { +; 521 : { -$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 - 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A0B61CF9_time@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 135 : { +; 522 : return _time64(_Time); - 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 + 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 -; 136 : } +; 523 : } - 00060 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00067 48 8d a5 c8 00 + 0002c 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 + 00033 5f pop rdi + 00034 5d pop rbp + 00035 c3 ret 0 +time ENDP _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 @@ -16767,31 +15639,25 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 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 + 0001a 48 8b c8 mov rcx, rax + 0001d e8 00 00 00 00 call ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ + 00022 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 + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b 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 +; 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@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 { +; 1381 : constexpr const _Ty1& _Get_first() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16800,38 +15666,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1348 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1382 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1349 : } +; 1383 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@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 +; 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@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 { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16840,38 +15700,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 { +; 4654 : _CONSTEXPR20_CONTAINER const _Alty& _Getal() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16880,41 +15734,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4329 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 4655 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@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 + 00026 48 8b c8 mov rcx, rax + 00029 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 -; 4330 : } +; 4656 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 { +; 4650 : _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16923,35 +15770,28 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4325 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 4651 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@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 + 00026 48 8b c8 mov rcx, rax + 00029 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 -; 4326 : } +; 4652 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ _TEXT SEGMENT _Ptr$1 = 8 @@ -16960,7 +15800,7 @@ $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 -; 4299 : void _Tidy_deallocate() noexcept { // initialize buffer, deallocating any storage +; 4616 : _CONSTEXPR20_CONTAINER void _Tidy_deallocate() noexcept { // initialize buffer, deallocating any storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16969,176 +15809,190 @@ $LN4: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4300 : _Mypair._Myval2._Orphan_all(); +; 4617 : _Mypair._Myval2._Orphan_all(); - 00036 48 8b 85 40 01 + 0001f 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 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 4301 : if (_Mypair._Myval2._Large_string_engaged()) { +; 4618 : if (_Mypair._Myval2._Large_string_engaged()) { - 00045 48 8b 85 40 01 + 0002e 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 + 00035 48 8b c8 mov rcx, rax + 00038 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 + 0003d 0f b6 c0 movzx eax, al + 00040 85 c0 test eax, eax + 00042 74 50 je SHORT $LN2@Tidy_deall -; 4302 : const pointer _Ptr = _Mypair._Myval2._Bx._Ptr; +; 4619 : const pointer _Ptr = _Mypair._Myval2._Bx._Ptr; - 0005b 48 8b 85 40 01 + 00044 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 + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 45 08 mov QWORD PTR _Ptr$1[rbp], rax -; 4303 : auto& _Al = _Getal(); +; 4620 : auto& _Al = _Getal(); - 0006a 48 8b 8d 40 01 + 00053 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 + 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 89 45 28 mov QWORD PTR _Al$2[rbp], rax -; 4304 : _Destroy_in_place(_Mypair._Myval2._Bx._Ptr); +; 4621 : _Destroy_in_place(_Mypair._Myval2._Bx._Ptr); - 0007a 48 8b 85 40 01 + 00063 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 + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 8b c8 mov rcx, rax + 00071 e8 00 00 00 00 call ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ; std::_Destroy_in_place -; 4305 : _Al.deallocate(_Ptr, _Mypair._Myval2._Myres + 1); +; 4622 : _Al.deallocate(_Ptr, _Mypair._Myval2._Myres + 1); - 0008d 48 8b 85 40 01 + 00076 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 + 0007d 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00081 48 ff c0 inc rax + 00084 4c 8b c0 mov r8, rax + 00087 48 8b 55 08 mov rdx, QWORD PTR _Ptr$1[rbp] + 0008b 48 8b 4d 28 mov rcx, QWORD PTR _Al$2[rbp] + 0008f 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 +; 4623 : } +; 4624 : +; 4625 : #ifdef __cpp_lib_constexpr_string +; 4626 : if (_STD is_constant_evaluated()) { +; 4627 : _Mypair._Myval2._Bx._Ptr = nullptr; +; 4628 : _Mypair._Myval2._Mysize = 0; +; 4629 : _Mypair._Myval2._Myres = 0; +; 4630 : } else +; 4631 : #endif // __cpp_lib_constexpr_string +; 4632 : { +; 4633 : _Mypair._Myval2._Mysize = 0; + + 00094 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 000b2 48 c7 40 18 00 + 0009b 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 -; 4309 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; +; 4634 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; - 000ba 48 8b 85 40 01 + 000a3 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 000c1 48 c7 40 20 0f + 000aa 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()); +; 4635 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this +; 4636 : _Traits::assign(_Mypair._Myval2._Bx._Buf[0], _Elem()); - 000c9 c6 85 04 01 00 + 000b2 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 + 000b9 b8 01 00 00 00 mov eax, 1 + 000be 48 6b c0 00 imul rax, rax, 0 + 000c2 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 + 000c9 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] + 000ce 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 + 000d5 48 8b c8 mov rcx, rax + 000d8 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 000dd 90 npad 1 -; 4312 : } +; 4637 : } +; 4638 : } - 000f5 48 8d a5 28 01 + 000de 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 + 000e5 5f pop rdi + 000e6 5d pop rbp + 000e7 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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ _TEXT SEGMENT -$T1 = 196 -this$ = 256 +_My_data$ = 8 +$T1 = 228 +this$ = 288 ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ PROC ; std::basic_string,std::allocator >::_Tidy_init, COMDAT -; 4292 : void _Tidy_init() noexcept { // initialize basic_string data members +; 4594 : _CONSTEXPR20_CONTAINER void _Tidy_init() noexcept { // initialize basic_string data members $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 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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4293 : _Mypair._Myval2._Mysize = 0; +; 4595 : auto& _My_data = _Mypair._Myval2; - 00036 48 8b 85 00 01 + 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 c7 40 18 00 - 00 00 00 mov QWORD PTR [rax+24], 0 + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 4294 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; +; 4596 : _My_data._Mysize = 0; - 00045 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004c 48 c7 40 20 0f + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 + +; 4597 : +; 4598 : #ifdef __cpp_lib_constexpr_string +; 4599 : if (_STD is_constant_evaluated()) { +; 4600 : _My_data._Myres = _BUF_SIZE; // SSO disabled in constexpr context +; 4601 : auto& _Al = _Getal(); +; 4602 : const pointer _New_ptr = _Al.allocate(_BUF_SIZE + 1); // throws +; 4603 : _My_data._Bx._Ptr = _New_ptr; +; 4604 : +; 4605 : _Elem* const _Raw_new = _Unfancy(_New_ptr); +; 4606 : _Traits::assign(_Raw_new, _BUF_SIZE + 1, _Elem()); +; 4607 : } else +; 4608 : #endif // __cpp_lib_constexpr_string +; 4609 : { +; 4610 : _My_data._Myres = _BUF_SIZE - 1; + + 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003a 48 c7 40 20 0f 00 00 00 mov QWORD PTR [rax+32], 15 -; 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()); +; 4611 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this +; 4612 : _Traits::assign(_My_data._Bx._Buf[0], _Elem()); - 00054 c6 85 c4 00 00 + 00042 c6 85 e4 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 + 00049 b8 01 00 00 00 mov eax, 1 + 0004e 48 6b c0 00 imul rax, rax, 0 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00056 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] + 0005b 48 8d 95 e4 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 + 00062 48 8b c8 mov rcx, rax + 00065 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 4297 : } +; 4613 : } +; 4614 : } - 00080 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00087 5f pop rdi - 00088 5d pop rbp - 00089 c3 ret 0 + 0006a 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00071 5f pop rdi + 00072 5d pop rbp + 00073 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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z _TEXT SEGMENT tv76 = 192 @@ -17147,7 +16001,7 @@ 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 -; 4213 : _NODISCARD size_type _Calculate_growth(const size_type _Requested) const noexcept { +; 4500 : _NODISCARD _CONSTEXPR20_CONTAINER size_type _Calculate_growth(const size_type _Requested) const noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17157,48 +16011,41 @@ $LN3: 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 - -; 4214 : return _Calculate_growth(_Requested, _Mypair._Myval2._Myres, max_size()); - - 0003b 48 8b 8d f0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4501 : return _Calculate_growth(_Requested, _Mypair._Myval2._Myres, max_size()); + + 00024 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 + 0002b 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 + 00030 48 89 85 c0 00 00 00 mov QWORD PTR tv76[rbp], rax - 0004e 48 8b 85 f0 00 + 00037 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00059 48 89 85 c8 00 + 0003e 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00042 48 89 85 c8 00 00 00 mov QWORD PTR tv74[rbp], rax - 00060 4c 8b 85 c0 00 + 00049 4c 8b 85 c0 00 00 00 mov r8, QWORD PTR tv76[rbp] - 00067 48 8b 95 c8 00 + 00050 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR tv74[rbp] - 0006e 48 8b 8d f8 00 + 00057 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 + 0005e 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 -; 4215 : } +; 4502 : } - 0007b 48 8d a5 d8 00 + 00063 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 + 0006a 5f pop rdi + 0006b 5d pop rbp + 0006c 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z _TEXT SEGMENT _Masked$ = 8 @@ -17209,7 +16056,7 @@ _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 -; 4200 : const size_type _Requested, const size_type _Old, const size_type _Max) noexcept { +; 4487 : const size_type _Requested, const size_type _Old, const size_type _Max) noexcept { $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17220,109 +16067,109 @@ $LN5: 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 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 12 00 00 00 mov ecx, 18 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 00 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4201 : const size_type _Masked = _Requested | _ALLOC_MASK; +; 4488 : const size_type _Masked = _Requested | _ALLOC_MASK; - 00051 48 8b 85 20 01 + 00053 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 + 0005a 48 83 c8 0f or rax, 15 + 0005e 48 89 45 08 mov QWORD PTR _Masked$[rbp], rax -; 4202 : if (_Masked > _Max) { // the mask overflows, settle for max_size() +; 4489 : if (_Masked > _Max) { // the mask overflows, settle for max_size() - 00060 48 8b 85 30 01 + 00062 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_ + 00069 48 39 45 08 cmp QWORD PTR _Masked$[rbp], rax + 0006d 76 09 jbe SHORT $LN2@Calculate_ -; 4203 : return _Max; +; 4490 : return _Max; - 0006d 48 8b 85 30 01 + 0006f 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Max$[rbp] - 00074 eb 68 jmp SHORT $LN1@Calculate_ + 00076 eb 68 jmp SHORT $LN1@Calculate_ $LN2@Calculate_: -; 4204 : } -; 4205 : -; 4206 : if (_Old > _Max - _Old / 2) { // similarly, geometric overflows +; 4491 : } +; 4492 : +; 4493 : if (_Old > _Max - _Old / 2) { // similarly, geometric overflows - 00076 33 d2 xor edx, edx - 00078 48 8b 85 28 01 + 00078 33 d2 xor edx, edx + 0007a 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 + 00081 b9 02 00 00 00 mov ecx, 2 + 00086 48 f7 f1 div rcx + 00089 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 + 00090 48 2b c8 sub rcx, rax + 00093 48 8b c1 mov rax, rcx + 00096 48 39 85 28 01 00 00 cmp QWORD PTR _Old$[rbp], rax - 0009b 76 09 jbe SHORT $LN3@Calculate_ + 0009d 76 09 jbe SHORT $LN3@Calculate_ -; 4207 : return _Max; +; 4494 : return _Max; - 0009d 48 8b 85 30 01 + 0009f 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Max$[rbp] - 000a4 eb 38 jmp SHORT $LN1@Calculate_ + 000a6 eb 38 jmp SHORT $LN1@Calculate_ $LN3@Calculate_: -; 4208 : } -; 4209 : -; 4210 : return (_STD max)(_Masked, _Old + _Old / 2); +; 4495 : } +; 4496 : +; 4497 : return (_STD max)(_Masked, _Old + _Old / 2); - 000a6 33 d2 xor edx, edx - 000a8 48 8b 85 28 01 + 000a8 33 d2 xor edx, edx + 000aa 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 + 000b1 b9 02 00 00 00 mov ecx, 2 + 000b6 48 f7 f1 div rcx + 000b9 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 + 000c0 48 03 c8 add rcx, rax + 000c3 48 8b c1 mov rax, rcx + 000c6 48 89 85 e8 00 00 00 mov QWORD PTR $T4[rbp], rax - 000cb 48 8d 95 e8 00 + 000cd 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] + 000d4 48 8d 4d 08 lea rcx, QWORD PTR _Masked$[rbp] + 000d8 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max + 000dd 48 8b 00 mov rax, QWORD PTR [rax] $LN1@Calculate_: -; 4211 : } +; 4498 : } - 000de 48 8b f8 mov rdi, rax - 000e1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000e5 48 8d 15 00 00 + 000e0 48 8b f8 mov rdi, rax + 000e3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e7 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 + 000ee e8 00 00 00 00 call _RTC_CheckStackVars + 000f3 48 8b c7 mov rax, rdi + 000f6 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 + 000fd 48 33 cd xor rcx, rbp + 00100 e8 00 00 00 00 call __security_check_cookie + 00105 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 + 0010c 5f pop rdi + 0010d 5d pop rbp + 0010e 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ _TEXT SEGMENT _Alloc_max$ = 8 @@ -17334,7 +16181,7 @@ __$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 -; 3689 : _NODISCARD size_type max_size() const noexcept { +; 3943 : _NODISCARD _CONSTEXPR20_CONTAINER size_type max_size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17343,88 +16190,88 @@ $LN3: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 58 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3690 : const size_type _Alloc_max = _Alty_traits::max_size(_Getal()); +; 3944 : const size_type _Alloc_max = _Alty_traits::max_size(_Getal()); - 00047 48 8b 8d 80 01 + 00049 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 + 00050 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 + 00055 48 8b c8 mov rcx, rax + 00058 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 + 0005d 48 89 45 08 mov QWORD PTR _Alloc_max$[rbp], rax -; 3691 : const size_type _Storage_max = // can always store small string +; 3945 : const size_type _Storage_max = // can always store small string - 0005f 48 c7 85 08 01 + 00061 48 c7 85 08 01 00 00 10 00 00 00 mov QWORD PTR $T4[rbp], 16 - 0006a 48 8d 95 08 01 + 0006c 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 + 00073 48 8d 4d 08 lea rcx, QWORD PTR _Alloc_max$[rbp] + 00077 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max + 0007c 48 8b 00 mov rax, QWORD PTR [rax] + 0007f 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)()), +; 3946 : (_STD max)(_Alloc_max, static_cast(_BUF_SIZE)); +; 3947 : 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 + 00083 48 8b 45 28 mov rax, QWORD PTR _Storage_max$[rbp] + 00087 48 ff c8 dec rax + 0008a 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 + 00091 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 00096 48 89 85 48 01 00 00 mov QWORD PTR $T6[rbp], rax - 0009b 48 8d 95 28 01 + 0009d 48 8d 95 28 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 000a2 48 8d 8d 48 01 + 000a4 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] + 000ab e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 000b0 48 8b 00 mov rax, QWORD PTR [rax] -; 3694 : _Storage_max - 1 // -1 is for null terminator and/or npos -; 3695 : ); -; 3696 : } +; 3948 : _Storage_max - 1 // -1 is for null terminator and/or npos +; 3949 : ); +; 3950 : } - 000b1 48 8b f8 mov rdi, rax - 000b4 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b8 48 8d 15 00 00 + 000b3 48 8b f8 mov rdi, rax + 000b6 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000ba 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 + 000c1 e8 00 00 00 00 call _RTC_CheckStackVars + 000c6 48 8b c7 mov rax, rdi + 000c9 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000ce 48 33 cd xor rcx, rbp - 000d1 e8 00 00 00 00 call __security_check_cookie - 000d6 48 8d a5 68 01 + 000d0 48 33 cd xor rcx, rbp + 000d3 e8 00 00 00 00 call __security_check_cookie + 000d8 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 + 000df 5f pop rdi + 000e0 5d pop rbp + 000e1 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 ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?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 { +; 3939 : _NODISCARD _CONSTEXPR20_CONTAINER size_type size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17433,39 +16280,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 3686 : return _Mypair._Myval2._Mysize; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 3940 : return _Mypair._Myval2._Mysize; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00026 48 8b 40 18 mov rax, QWORD PTR [rax+24] -; 3687 : } +; 3941 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ?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 -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?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 { +; 3930 : _NODISCARD _CONSTEXPR20_CONTAINER _Ret_z_ _Elem* data() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17474,41 +16315,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 3677 : return _Mypair._Myval2._Myptr(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 3931 : return _Mypair._Myval2._Myptr(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr - 00045 90 npad 1 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr -; 3678 : } +; 3932 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?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 -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?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 */ { +; 3889 : _NODISCARD _CONSTEXPR20_CONTAINER reference front() noexcept /* strengthened */ { $LN12: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17517,89 +16351,83 @@ $LN12: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a 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"); +; 3890 : #if _CONTAINER_DEBUG_LEVEL > 0 +; 3891 : _STL_VERIFY(_Mypair._Myval2._Mysize != 0, "front() called on empty string"); - 00036 48 8b 85 e0 00 + 0001f 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 + 00026 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 + 0002b 74 02 je SHORT $LN7@front + 0002d eb 6b jmp SHORT $LN9@front $LN7@front: - 00046 48 8d 05 00 00 + 0002f 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 + 00036 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0003b 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 + 00042 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00047 45 33 c9 xor r9d, r9d + 0004a 41 b8 33 0f 00 + 00 mov r8d, 3891 ; 00000f33H + 00050 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00057 b9 02 00 00 00 mov ecx, 2 + 0005c 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 + 00062 83 f8 01 cmp eax, 1 + 00065 75 03 jne SHORT $LN11@front + 00067 cc int 3 + 00068 33 c0 xor eax, eax $LN11@front: - 00081 48 c7 44 24 20 + 0006a 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 + 00073 41 b9 33 0f 00 + 00 mov r9d, 3891 ; 00000f33H + 00079 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@LAIGCHJK@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00080 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 + 00087 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 + 0008e 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 + 00094 33 c0 xor eax, eax + 00096 85 c0 test eax, eax + 00098 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 + 0009a 33 c0 xor eax, eax + 0009c 85 c0 test eax, eax + 0009e 0f 85 7b ff ff ff jne $LN4@front -; 3638 : #endif // _CONTAINER_DEBUG_LEVEL > 0 -; 3639 : -; 3640 : return _Mypair._Myval2._Myptr()[0]; +; 3892 : #endif // _CONTAINER_DEBUG_LEVEL > 0 +; 3893 : +; 3894 : return _Mypair._Myval2._Myptr()[0]; - 000bb 48 8b 85 e0 00 + 000a4 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 + 000ab 48 8b c8 mov rcx, rax + 000ae e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 000b3 b9 01 00 00 00 mov ecx, 1 + 000b8 48 6b c9 00 imul rcx, rcx, 0 + 000bc 48 03 c1 add rax, rcx -; 3641 : } +; 3895 : } - 000d6 48 8d a5 c8 00 + 000bf 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 + 000c6 5f pop rdi + 000c7 5d pop rbp + 000c8 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z _TEXT SEGMENT _Old_size$ = 8 @@ -17610,7 +16438,7 @@ 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 -; 3607 : void push_back(const _Elem _Ch) { // insert element at end +; 3861 : _CONSTEXPR20_CONTAINER void push_back(const _Elem _Ch) { // insert element at end $LN4: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -17620,127 +16448,177 @@ $LN4: 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:__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 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3862 : const size_type _Old_size = _Mypair._Myval2._Mysize; + + 00023 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 + 0002a 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0002e 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax -; 3609 : if (_Old_size < _Mypair._Myval2._Myres) { +; 3863 : if (_Old_size < _Mypair._Myval2._Myres) { - 00049 48 8b 85 60 01 + 00032 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 + 00039 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0003d 48 39 45 08 cmp QWORD PTR _Old_size$[rbp], rax + 00041 73 67 jae SHORT $LN2@push_back -; 3610 : _Mypair._Myval2._Mysize = _Old_size + 1; +; 3864 : _Mypair._Myval2._Mysize = _Old_size + 1; - 0005a 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] - 0005e 48 ff c0 inc rax - 00061 48 8b 8d 60 01 + 00043 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] + 00047 48 ff c0 inc rax + 0004a 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00068 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00051 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 3611 : _Elem* const _Ptr = _Mypair._Myval2._Myptr(); +; 3865 : _Elem* const _Ptr = _Mypair._Myval2._Myptr(); - 0006c 48 8b 85 60 01 + 00055 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 + 0005c 48 8b c8 mov rcx, rax + 0005f e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 00064 48 89 45 28 mov QWORD PTR _Ptr$1[rbp], rax -; 3612 : _Traits::assign(_Ptr[_Old_size], _Ch); +; 3866 : _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 + 00068 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] + 0006c 48 8b 4d 28 mov rcx, QWORD PTR _Ptr$1[rbp] + 00070 48 03 c8 add rcx, rax + 00073 48 8b c1 mov rax, rcx + 00076 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 + 0007d 48 8b c8 mov rcx, rax + 00080 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()); +; 3867 : _Traits::assign(_Ptr[_Old_size + 1], _Elem()); - 0009c c6 85 04 01 00 + 00085 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 + 0008c 48 8b 45 28 mov rax, QWORD PTR _Ptr$1[rbp] + 00090 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] + 00094 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] + 00099 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 + 000a0 48 8b c8 mov rcx, rax + 000a3 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 3614 : return; +; 3868 : return; - 000bf eb 34 jmp SHORT $LN1@push_back + 000a8 eb 34 jmp SHORT $LN1@push_back $LN2@push_back: -; 3615 : } -; 3616 : -; 3617 : _Reallocate_grow_by( +; 3869 : } +; 3870 : +; 3871 : _Reallocate_grow_by( - 000c1 48 8d 85 24 01 + 000aa 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 + 000b1 48 8b f8 mov rdi, rax + 000b4 33 c0 xor eax, eax + 000b6 b9 01 00 00 00 mov ecx, 1 + 000bb f3 aa rep stosb + 000bd 44 0f b6 8d 68 01 00 00 movzx r9d, BYTE PTR _Ch$[rbp] - 000dc 44 0f b6 85 24 + 000c5 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 + 000cd ba 01 00 00 00 mov edx, 1 + 000d2 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> + 000d9 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 : } +; 3872 : 1, +; 3873 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { +; 3874 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); +; 3875 : _Traits::assign(_New_ptr[_Old_size], _Ch); +; 3876 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); +; 3877 : }, +; 3878 : _Ch); +; 3879 : } - 000f5 48 8d a5 48 01 + 000de 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 + 000e5 5f pop rdi + 000e6 5d pop rbp + 000e7 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z +_TEXT SEGMENT +tv69 = 192 +this$ = 240 +_Off$ = 248 +_Count$ = 256 +?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z PROC ; std::basic_string,std::allocator >::erase, COMDAT + +; 3472 : _CONSTEXPR20_CONTAINER basic_string& erase(const size_type _Off, 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 f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3473 : // erase elements [_Off, _Off + _Count) +; 3474 : _Mypair._Myval2._Check_offset(_Off); + + 00029 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00030 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 00037 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _Off$[rbp] + 0003e 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 00045 e8 00 00 00 00 call ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ; std::_String_val >::_Check_offset + +; 3475 : return _Erase_noexcept(_Off, _Count); + + 0004a 4c 8b 85 00 01 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00051 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _Off$[rbp] + 00058 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::_Erase_noexcept + +; 3476 : } + + 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 +?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z ENDP ; std::basic_string,std::allocator >::erase +_TEXT 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 +; COMDAT ?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z _TEXT SEGMENT _Old_size$ = 8 _My_ptr$ = 40 _Erase_at$ = 72 _New_size$ = 104 -tv77 = 312 -tv69 = 312 +tv71 = 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 +?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z PROC ; std::basic_string,std::allocator >::_Erase_noexcept, COMDAT -; 3215 : basic_string& erase(const size_type _Off, size_type _Count) { // erase elements [_Off, _Off + _Count) +; 3460 : _CONSTEXPR20_CONTAINER basic_string& _Erase_noexcept(const size_type _Off, size_type _Count) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17751,118 +16629,100 @@ $LN3: 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 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3216 : _Mypair._Myval2._Check_offset(_Off); +; 3461 : _Count = _Mypair._Myval2._Clamp_suffix_size(_Off, _Count); - 00040 48 8b 85 60 01 + 00029 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 - -; 3217 : _Count = _Mypair._Myval2._Clamp_suffix_size(_Off, _Count); - - 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 + 00030 48 89 85 38 01 + 00 00 mov QWORD PTR tv71[rbp], rax + 00037 4c 8b 85 70 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 00076 48 8b 95 68 01 + 0003e 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 + 00045 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv71[rbp] + 0004c 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 + 00051 48 89 85 70 01 00 00 mov QWORD PTR _Count$[rbp], rax -; 3218 : const size_type _Old_size = _Mypair._Myval2._Mysize; +; 3462 : const size_type _Old_size = _Mypair._Myval2._Mysize; - 00090 48 8b 85 60 01 + 00058 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 + 0005f 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00063 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax -; 3219 : _Elem* const _My_ptr = _Mypair._Myval2._Myptr(); +; 3463 : _Elem* const _My_ptr = _Mypair._Myval2._Myptr(); - 0009f 48 8b 85 60 01 + 00067 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 + 0006e 48 8b c8 mov rcx, rax + 00071 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 00076 48 89 45 28 mov QWORD PTR _My_ptr$[rbp], rax -; 3220 : _Elem* const _Erase_at = _My_ptr + _Off; +; 3464 : _Elem* const _Erase_at = _My_ptr + _Off; - 000b2 48 8b 85 68 01 + 0007a 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 + 00081 48 8b 4d 28 mov rcx, QWORD PTR _My_ptr$[rbp] + 00085 48 03 c8 add rcx, rax + 00088 48 8b c1 mov rax, rcx + 0008b 48 89 45 48 mov QWORD PTR _Erase_at$[rbp], rax -; 3221 : const size_type _New_size = _Old_size - _Count; +; 3465 : const size_type _New_size = _Old_size - _Count; - 000c7 48 8b 85 70 01 + 0008f 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 + 00096 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] + 0009a 48 2b c8 sub rcx, rax + 0009d 48 8b c1 mov rax, rcx + 000a0 48 89 45 68 mov QWORD PTR _New_size$[rbp], rax -; 3222 : _Mypair._Myval2._Mysize = _New_size; +; 3466 : _Mypair._Myval2._Mysize = _New_size; - 000dc 48 8b 85 60 01 + 000a4 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 + 000ab 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] + 000af 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 +; 3467 : _Traits::move(_Erase_at, _Erase_at + _Count, _New_size - _Off + 1); // move suffix + null up - 000eb 48 8b 85 68 01 + 000b3 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 + 000ba 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] + 000be 48 2b c8 sub rcx, rax + 000c1 48 8b c1 mov rax, rcx + 000c4 48 ff c0 inc rax + 000c7 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 + 000ce 48 8b 55 48 mov rdx, QWORD PTR _Erase_at$[rbp] + 000d2 48 03 d1 add rdx, rcx + 000d5 48 8b ca mov rcx, rdx + 000d8 4c 8b c0 mov r8, rax + 000db 48 8b d1 mov rdx, rcx + 000de 48 8b 4d 48 mov rcx, QWORD PTR _Erase_at$[rbp] + 000e2 e8 00 00 00 00 call ?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::move -; 3224 : return *this; +; 3468 : return *this; - 0011f 48 8b 85 60 01 + 000e7 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] -; 3225 : } +; 3469 : } - 00126 48 8d a5 48 01 + 000ee 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 + 000f5 5f pop rdi + 000f6 5d pop rbp + 000f7 c3 ret 0 +?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z ENDP ; std::basic_string,std::allocator >::_Erase_noexcept _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -17872,7 +16732,7 @@ __$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 { +; 3002 : _CONSTEXPR20_CONTAINER ~basic_string() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17881,84 +16741,83 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 1a 00 00 00 mov ecx, 26 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 18 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2723 : _Tidy_deallocate(); +; 3003 : _Tidy_deallocate(); - 00047 48 8b 8d 40 01 + 00049 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e e8 00 00 00 00 call ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_deallocate + 00050 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()); +; 3004 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 3005 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00053 48 8b 8d 40 01 + 00055 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a e8 00 00 00 00 call ?_Getal@?$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 + 0005c 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 + 00061 48 8b d0 mov rdx, rax + 00064 48 8d 4d 24 lea rcx, QWORD PTR $S9$[rbp] + 00068 e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator + 0006d 48 8d 45 24 lea rax, QWORD PTR $S9$[rbp] + 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 2726 : const auto _To_delete = _Mypair._Myval2._Myproxy; +; 3006 : const auto _To_delete = _Mypair._Myval2._Myproxy; - 00073 48 8b 85 40 01 + 00075 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 + 0007c 48 8b 00 mov rax, QWORD PTR [rax] + 0007f 48 89 45 48 mov QWORD PTR _To_delete$[rbp], rax -; 2727 : _Mypair._Myval2._Myproxy = nullptr; +; 3007 : _Mypair._Myval2._Myproxy = nullptr; - 00081 48 8b 85 40 01 + 00083 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00088 48 c7 00 00 00 + 0008a 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 2728 : _Delete_plain_internal(_Alproxy, _To_delete); +; 3008 : _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 > + 00091 48 8b 55 48 mov rdx, QWORD PTR _To_delete$[rbp] + 00095 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 00099 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 : } +; 3009 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 3010 : } - 0009c 48 8b 85 40 01 + 0009e 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 + 000a5 48 8b c8 mov rcx, rax + 000a8 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 + 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b1 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 + 000b8 e8 00 00 00 00 call _RTC_CheckStackVars + 000bd 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 + 000c4 48 33 cd xor rcx, rbp + 000c7 e8 00 00 00 00 call __security_check_cookie + 000cc 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 + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -17968,7 +16827,7 @@ 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{}) { +; 2467 : : _Mypair(_Zero_then_variadic_args_t{}) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17977,58 +16836,52 @@ $LN3: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 20 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 85 f8 00 + 00026 48 89 85 f8 00 00 00 mov QWORD PTR tv69[rbp], rax - 00044 0f b6 95 c4 00 + 0002d 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 0004b 48 8b 8d f8 00 + 00034 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00052 e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@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><> + 0003b 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())); +; 2468 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 00057 48 8b 85 20 01 + 00040 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005e 48 89 85 f8 00 + 00047 48 89 85 f8 00 00 00 mov QWORD PTR tv86[rbp], rax - 00065 48 8b 8d 20 01 + 0004e 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0006c e8 00 00 00 00 call ?_Getal@?$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 + 00055 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 + 0005a 48 8b d0 mov rdx, rax + 0005d 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 0007b e8 00 00 00 00 call ??$?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 + 00064 e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator + 00069 48 8b d0 mov rdx, rax + 0006c 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 > + 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 > -; 2289 : _Tidy_init(); +; 2469 : _Tidy_init(); - 0008f 48 8b 8d 20 01 + 00078 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 + 0007f 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 : } +; 2470 : } - 0009b 48 8b 85 20 01 + 00084 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a2 48 8d a5 08 01 + 0008b 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 + 00092 5f pop rdi + 00093 5d pop rbp + 00094 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 @@ -18043,32 +16896,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 83 c0 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 + 0001a 48 83 c0 08 add rax, 8 + 0001e 48 8b c8 mov rcx, rax + 00021 e8 00 00 00 00 call ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::~_Bxty + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??1?$_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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??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 +; 2348 : _CONSTEXPR20_CONTAINER ~_Bxty() noexcept {} // user-provided, for fancy pointers $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18077,31 +16924,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 -; 2178 : _Bxty() {} // user-provided, for fancy pointers +; 2346 : _CONSTEXPR20_CONTAINER _Bxty() noexcept : _Ptr() {} // user-provided, for fancy pointers $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18110,26 +16950,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d a5 c8 00 + 00026 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + 0002d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00034 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 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z _TEXT SEGMENT $T1 = 200 @@ -18138,7 +16976,7 @@ _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 { +; 2340 : _CONSTEXPR20_CONTAINER 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 @@ -18149,50 +16987,44 @@ $LN3: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00024 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); +; 2341 : // trims _Size to the longest it can be assuming a string at/after _Off +; 2342 : return (_STD min)(_Size, _Mysize - _Off); - 00040 48 8b 85 00 01 + 00029 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 8b 8d 08 01 + 00030 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 + 00037 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0003b 48 2b c1 sub rax, rcx + 0003e 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0005c 48 8d 95 c8 00 + 00045 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00063 48 8d 8d 10 01 + 0004c 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] + 00053 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 00058 48 8b 00 mov rax, QWORD PTR [rax] -; 2175 : } +; 2343 : } - 00072 48 8d a5 e8 00 + 0005b 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 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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() { +; 2336 : [[noreturn]] static void _Xran() { $LN3: 00000 40 55 push rbp @@ -18200,39 +17032,35 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2169 : _Xout_of_range("invalid string position"); +; 2337 : _Xout_of_range("invalid string position"); - 0002a 48 8d 0d 00 00 + 0001b 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 + 00022 e8 00 00 00 00 call ?_Xout_of_range@std@@YAXPEBD@Z ; std::_Xout_of_range $LN2@Xran: -; 2170 : } +; 2338 : } - 00036 48 8d a5 c8 00 + 00027 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 0002e 5f pop rdi + 0002f 5d pop rbp + 00030 c3 ret 0 ?_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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()] +; 2322 : _CONSTEXPR20_CONTAINER void _Check_offset(const size_type _Off) const { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18242,50 +17070,45 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 2157 : if (_Mysize < _Off) { - - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2323 : // checks whether _Off is in the bounds of [0, size()] +; 2324 : if (_Mysize < _Off) { + + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d e8 00 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Off$[rbp] - 00049 48 39 48 18 cmp QWORD PTR [rax+24], rcx - 0004d 73 05 jae SHORT $LN2@Check_offs + 00032 48 39 48 18 cmp QWORD PTR [rax+24], rcx + 00036 73 05 jae SHORT $LN2@Check_offs -; 2158 : _Xran(); +; 2325 : _Xran(); - 0004f e8 00 00 00 00 call ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ; std::_String_val >::_Xran + 00038 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: -; 2159 : } -; 2160 : } +; 2326 : } +; 2327 : } - 00054 48 8d a5 c8 00 + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ _TEXT SEGMENT 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 -; 2152 : bool _Large_string_engaged() const noexcept { +; 2313 : _CONSTEXPR20_CONTAINER bool _Large_string_engaged() const noexcept { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18294,50 +17117,49 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 2153 : return _BUF_SIZE <= _Myres; - - 00036 48 8b 85 f0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2314 : #ifdef __cpp_lib_constexpr_string +; 2315 : if (_STD is_constant_evaluated()) { +; 2316 : return true; +; 2317 : } +; 2318 : #endif // __cpp_lib_constexpr_string +; 2319 : return _BUF_SIZE <= _Myres; + + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 00026 48 83 78 20 10 cmp QWORD PTR [rax+32], 16 + 0002b 72 0c jb SHORT $LN3@Large_stri + 0002d c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 - 0004e eb 0a jmp SHORT $LN4@Large_stri + 00037 eb 0a jmp SHORT $LN4@Large_stri $LN3@Large_stri: - 00050 c7 85 c0 00 00 + 00039 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 + 00043 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv66[rbp] -; 2154 : } +; 2320 : } - 00061 48 8d a5 d8 00 + 0004a 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 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ _TEXT SEGMENT _Result$ = 8 this$ = 256 ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ PROC ; std::_String_val >::_Myptr, COMDAT -; 2134 : value_type* _Myptr() noexcept { +; 2295 : _CONSTEXPR20_CONTAINER value_type* _Myptr() noexcept { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18346,114 +17168,181 @@ $LN4: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2135 : value_type* _Result = _Bx._Buf; +; 2296 : value_type* _Result = _Bx._Buf; - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 c0 08 add rax, 8 - 00041 48 89 45 08 mov QWORD PTR _Result$[rbp], rax + 00026 48 83 c0 08 add rax, 8 + 0002a 48 89 45 08 mov QWORD PTR _Result$[rbp], rax -; 2136 : if (_Large_string_engaged()) { +; 2297 : if (_Large_string_engaged()) { - 00045 48 8b 8d 00 01 + 0002e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 00035 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 + 0003a 0f b6 c0 movzx eax, al + 0003d 85 c0 test eax, eax + 0003f 74 14 je SHORT $LN2@Myptr -; 2137 : _Result = _Unfancy(_Bx._Ptr); +; 2298 : _Result = _Unfancy(_Bx._Ptr); - 00058 48 8b 85 00 01 + 00041 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 + 00048 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 0004c e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 00051 48 89 45 08 mov QWORD PTR _Result$[rbp], rax $LN2@Myptr: -; 2138 : } -; 2139 : -; 2140 : return _Result; +; 2299 : } +; 2300 : +; 2301 : return _Result; - 0006c 48 8b 45 08 mov rax, QWORD PTR _Result$[rbp] + 00055 48 8b 45 08 mov rax, QWORD PTR _Result$[rbp] -; 2141 : } +; 2302 : } - 00070 48 8d a5 e8 00 + 00059 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 + 00060 5f pop rdi + 00061 5d pop rbp + 00062 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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_String_val >, COMDAT -; 2124 : _String_val() : _Bx(), _Mysize(0), _Myres(0) {} +; 2284 : _CONSTEXPR20_CONTAINER _String_val() noexcept : _Bx() {} -$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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 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 + 00032 48 83 c0 08 add rax, 8 + 00036 48 8b c8 mov rcx, rax + 00039 e8 00 00 00 00 call ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::_Bxty + +; 2285 : +; 2286 : // length of internal buffer, [1, 16]: +; 2287 : static constexpr size_type _BUF_SIZE = 16 / sizeof(value_type) < 1 ? 1 : 16 / sizeof(value_type); +; 2288 : // roundup mask for allocated buffers, [0, 15]: +; 2289 : static constexpr size_type _ALLOC_MASK = sizeof(value_type) <= 1 ? 15 +; 2290 : : sizeof(value_type) <= 2 ? 7 +; 2291 : : sizeof(value_type) <= 4 ? 3 +; 2292 : : sizeof(value_type) <= 8 ? 1 +; 2293 : : 0; +; 2294 : +; 2295 : _CONSTEXPR20_CONTAINER value_type* _Myptr() noexcept { +; 2296 : value_type* _Result = _Bx._Buf; +; 2297 : if (_Large_string_engaged()) { +; 2298 : _Result = _Unfancy(_Bx._Ptr); +; 2299 : } +; 2300 : +; 2301 : return _Result; +; 2302 : } +; 2303 : +; 2304 : _CONSTEXPR20_CONTAINER const value_type* _Myptr() const noexcept { +; 2305 : const value_type* _Result = _Bx._Buf; +; 2306 : if (_Large_string_engaged()) { +; 2307 : _Result = _Unfancy(_Bx._Ptr); +; 2308 : } +; 2309 : +; 2310 : return _Result; +; 2311 : } +; 2312 : +; 2313 : _CONSTEXPR20_CONTAINER bool _Large_string_engaged() const noexcept { +; 2314 : #ifdef __cpp_lib_constexpr_string +; 2315 : if (_STD is_constant_evaluated()) { +; 2316 : return true; +; 2317 : } +; 2318 : #endif // __cpp_lib_constexpr_string +; 2319 : return _BUF_SIZE <= _Myres; +; 2320 : } +; 2321 : +; 2322 : _CONSTEXPR20_CONTAINER void _Check_offset(const size_type _Off) const { +; 2323 : // checks whether _Off is in the bounds of [0, size()] +; 2324 : if (_Mysize < _Off) { +; 2325 : _Xran(); +; 2326 : } +; 2327 : } +; 2328 : +; 2329 : _CONSTEXPR20_CONTAINER void _Check_offset_exclusive(const size_type _Off) const { +; 2330 : // checks whether _Off is in the bounds of [0, size()) +; 2331 : if (_Mysize <= _Off) { +; 2332 : _Xran(); +; 2333 : } +; 2334 : } +; 2335 : +; 2336 : [[noreturn]] static void _Xran() { +; 2337 : _Xout_of_range("invalid string position"); +; 2338 : } +; 2339 : +; 2340 : _CONSTEXPR20_CONTAINER size_type _Clamp_suffix_size(const size_type _Off, const size_type _Size) const noexcept { +; 2341 : // trims _Size to the longest it can be assuming a string at/after _Off +; 2342 : return (_STD min)(_Size, _Mysize - _Off); +; 2343 : } +; 2344 : +; 2345 : union _Bxty { // storage for small buffer or pointer to larger one +; 2346 : _CONSTEXPR20_CONTAINER _Bxty() noexcept : _Ptr() {} // user-provided, for fancy pointers +; 2347 : +; 2348 : _CONSTEXPR20_CONTAINER ~_Bxty() noexcept {} // user-provided, for fancy pointers +; 2349 : +; 2350 : value_type _Buf[_BUF_SIZE]; +; 2351 : pointer _Ptr; +; 2352 : char _Alias[_BUF_SIZE]; // TRANSITION, ABI: _Alias is preserved for binary compatibility (especially /clr) +; 2353 : } _Bx; +; 2354 : +; 2355 : size_type _Mysize = 0; // current length of string + + 0003e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005c 48 c7 40 18 00 + 00045 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 - 00064 48 8b 85 e0 00 + +; 2356 : size_type _Myres = 0; // current storage reserved for string + + 0004d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 c7 40 20 00 + 00054 48 c7 40 20 00 00 00 00 mov QWORD PTR [rax+32], 0 - 00073 48 8b 85 e0 00 + +; 2284 : _CONSTEXPR20_CONTAINER _String_val() noexcept : _Bx() {} + + 0005c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0007a 48 8d a5 c8 00 + 00063 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00081 5f pop rdi - 00082 5d pop rbp - 00083 c3 ret 0 + 0006a 5f pop rdi + 0006b 5d pop rbp + 0006c 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.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z _TEXT SEGMENT __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 -; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { +; 727 : _NODISCARD static _CONSTEXPR20_DYNALLOC size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18462,37 +17351,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 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 c7 c0 ff ff + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 728 : return static_cast(-1) / sizeof(value_type); + + 0001f 48 c7 c0 ff ff ff ff mov rax, -1 -; 704 : } +; 729 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?_Xlen_string@std@@YAXXZ _TEXT SEGMENT ?_Xlen_string@std@@YAXXZ PROC ; std::_Xlen_string, COMDAT -; 2200 : [[noreturn]] inline void _Xlen_string() { +; 2373 : [[noreturn]] inline void _Xlen_string() { $LN3: 00000 40 55 push rbp @@ -18500,37 +17383,33 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2201 : _Xlength_error("string too long"); +; 2374 : _Xlength_error("string too long"); - 0002a 48 8d 0d 00 00 + 0001b 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 + 00022 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error $LN2@Xlen_strin: -; 2202 : } +; 2375 : } - 00036 48 8d a5 c8 00 + 00027 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 0002e 5f pop rdi + 0002f 5d pop rbp + 00030 c3 ret 0 ?_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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ _TEXT SEGMENT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 400 : _NODISCARD static constexpr int_type eof() noexcept { +; 477 : _NODISCARD static constexpr int_type eof() noexcept { $LN3: 00000 40 55 push rbp @@ -18538,29 +17417,25 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 401 : return static_cast(EOF); +; 478 : return static_cast(EOF); - 0002a b8 ff ff ff ff mov eax, -1 + 0001b b8 ff ff ff ff mov eax, -1 -; 402 : } +; 479 : } - 0002f 48 8d a5 c8 00 + 00020 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00036 5f pop rdi - 00037 5d pop rbp - 00038 c3 ret 0 + 00027 5f pop rdi + 00028 5d pop rbp + 00029 c3 ret 0 ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z _TEXT SEGMENT tv69 = 192 @@ -18568,7 +17443,7 @@ tv68 = 196 _Meta$ = 240 ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z PROC ; std::_Narrow_char_traits::not_eof, COMDAT -; 396 : _NODISCARD static constexpr int_type not_eof(const int_type& _Meta) noexcept { +; 473 : _NODISCARD static constexpr int_type not_eof(const int_type& _Meta) noexcept { $LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18577,59 +17452,53 @@ $LN7: 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 474 : return _Meta != eof() ? _Meta : !eof(); + + 0001f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00024 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 + 0002b 39 01 cmp DWORD PTR [rcx], eax + 0002d 74 11 je SHORT $LN5@not_eof + 0002f 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 + 00036 8b 00 mov eax, DWORD PTR [rax] + 00038 89 85 c0 00 00 00 mov DWORD PTR tv69[rbp], eax - 00055 eb 2b jmp SHORT $LN6@not_eof + 0003e 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 + 00040 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00045 85 c0 test eax, eax + 00047 75 0c jne SHORT $LN3@not_eof + 00049 c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 0006a eb 0a jmp SHORT $LN4@not_eof + 00053 eb 0a jmp SHORT $LN4@not_eof $LN3@not_eof: - 0006c c7 85 c4 00 00 + 00055 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 + 0005f 8b 85 c4 00 00 00 mov eax, DWORD PTR tv68[rbp] - 0007c 89 85 c0 00 00 + 00065 89 85 c0 00 00 00 mov DWORD PTR tv69[rbp], eax $LN6@not_eof: - 00082 8b 85 c0 00 00 + 0006b 8b 85 c0 00 00 00 mov eax, DWORD PTR tv69[rbp] -; 398 : } +; 475 : } - 00088 48 8d a5 d8 00 + 00071 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 + 00078 5f pop rdi + 00079 5d pop rbp + 0007a 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z _TEXT SEGMENT tv65 = 192 @@ -18637,7 +17506,7 @@ _Left$ = 240 _Right$ = 248 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT -; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 469 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18647,52 +17516,46 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 393 : return _Left == _Right; - - 0003b 48 8b 85 f0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 470 : return _Left == _Right; + + 00024 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 00042 48 8b 8d f8 00 + 0002b 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00049 8b 09 mov ecx, DWORD PTR [rcx] - 0004b 39 08 cmp DWORD PTR [rax], ecx - 0004d 75 0c jne SHORT $LN3@eq_int_typ - 0004f c7 85 c0 00 00 + 00032 8b 09 mov ecx, DWORD PTR [rcx] + 00034 39 08 cmp DWORD PTR [rax], ecx + 00036 75 0c jne SHORT $LN3@eq_int_typ + 00038 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 - 00059 eb 0a jmp SHORT $LN4@eq_int_typ + 00042 eb 0a jmp SHORT $LN4@eq_int_typ $LN3@eq_int_typ: - 0005b c7 85 c0 00 00 + 00044 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 $LN4@eq_int_typ: - 00065 0f b6 85 c0 00 + 0004e 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv65[rbp] -; 394 : } +; 471 : } - 0006c 48 8d a5 d8 00 + 00055 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 -; 388 : _NODISCARD static constexpr int_type to_int_type(const _Elem& _Ch) noexcept { +; 465 : _NODISCARD static constexpr int_type to_int_type(const _Elem& _Ch) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18701,39 +17564,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 389 : return static_cast(_Ch); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 466 : return static_cast(_Ch); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ch$[rbp] - 0003d 0f b6 00 movzx eax, BYTE PTR [rax] + 00026 0f b6 00 movzx eax, BYTE PTR [rax] -; 390 : } +; 467 : } - 00040 48 8d a5 c8 00 + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 -; 384 : _NODISCARD static constexpr _Elem to_char_type(const int_type& _Meta) noexcept { +; 461 : _NODISCARD static constexpr _Elem to_char_type(const int_type& _Meta) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18742,40 +17599,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 385 : return static_cast<_Elem>(_Meta); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 462 : return static_cast<_Elem>(_Meta); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Meta$[rbp] - 0003d 0f b6 00 movzx eax, BYTE PTR [rax] + 00026 0f b6 00 movzx eax, BYTE PTR [rax] -; 386 : } +; 463 : } - 00040 48 8d a5 c8 00 + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?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.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z _TEXT SEGMENT _Left$ = 224 _Right$ = 232 ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z PROC ; std::_Narrow_char_traits::assign, COMDAT -; 372 : static _CONSTEXPR17 void assign(_Elem& _Left, const _Elem& _Right) noexcept { +; 449 : static _CONSTEXPR17 void assign(_Elem& _Left, const _Elem& _Right) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18785,44 +17636,38 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 373 : _Left = _Right; - - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 450 : _Left = _Right; + + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 00042 48 8b 8d e8 00 + 0002b 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 + 00032 0f b6 09 movzx ecx, BYTE PTR [rcx] + 00035 88 08 mov BYTE PTR [rax], cl -; 374 : } +; 451 : } - 0004e 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00055 5f pop rdi - 00056 5d pop rbp - 00057 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; COMDAT ?move@?$_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 +?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Char_traits::move, COMDAT -; 361 : const size_t _Count) noexcept /* strengthened */ { +; 80 : _In_reads_(_Count) const _Elem* const _First2, const size_t _Count) noexcept /* strengthened */ { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -18833,47 +17678,87 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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)); + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 81 : // copy [_First2, _First2 + _Count) to [_First1, ...), allowing overlap +; 82 : #if _HAS_MEMCPY_MEMMOVE_INTRINSICS +; 83 : __builtin_memmove(_First1, _First2, _Count * sizeof(_Elem)); +; 84 : #else // ^^^ _HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ / vvv !_HAS_MEMCPY_MEMMOVE_INTRINSICS vvv +; 85 : #ifdef __cpp_lib_is_constant_evaluated +; 86 : if (_STD is_constant_evaluated()) { +; 87 : // dest: [_First1, _First1 + _Count) +; 88 : // src: [_First2, _First2 + _Count) +; 89 : // We need to handle overlapping ranges. +; 90 : // If _First1 is in the src range, we need a backward loop. +; 91 : // Otherwise, the forward loop works (even if the back of dest overlaps the front of src). +; 92 : +; 93 : if (_First1 == _First2) { +; 94 : return _First1; // Self-assignment; either loop would work, but returning immediately is faster. +; 95 : } +; 96 : +; 97 : // Usually, we would compare pointers with less-than, even though they could belong to different arrays. +; 98 : // However, we're not allowed to do that during constant evaluation, so we need a linear scan for equality. +; 99 : bool _Loop_forward = true; +; 100 : +; 101 : for (const _Elem* _Src = _First2; _Src != _First2 + _Count; ++_Src) { +; 102 : if (_First1 == _Src) { +; 103 : _Loop_forward = false; +; 104 : break; +; 105 : } +; 106 : } +; 107 : +; 108 : if (_Loop_forward) { +; 109 : for (size_t _Idx = 0; _Idx < _Count; ++_Idx) { +; 110 : _First1[_Idx] = _First2[_Idx]; +; 111 : } +; 112 : } else { +; 113 : for (size_t _Idx = 0; _Idx < _Count; ++_Idx) { +; 114 : _First1[_Count - 1 - _Idx] = _First2[_Count - 1 - _Idx]; +; 115 : } +; 116 : } +; 117 : +; 118 : return _First1; +; 119 : } +; 120 : #endif // __cpp_lib_is_constant_evaluated +; 121 : +; 122 : _CSTD memmove(_First1, _First2, _Count * sizeof(_Elem)); - 00040 4c 8b 85 f0 00 + 00029 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR _Count$[rbp] - 00047 48 8b 95 e8 00 + 00030 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _First2$[rbp] - 0004e 48 8b 8d e0 00 + 00037 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 + 0003e e8 00 00 00 00 call memmove + +; 123 : #endif // ^^^ !_HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ +; 124 : +; 125 : return _First1; + + 00043 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First1$[rbp] -; 364 : } +; 126 : } - 0005b 48 8d a5 c8 00 + 0004a 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 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 +?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; COMDAT ?copy@?$_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 +?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Char_traits::copy, COMDAT -; 326 : const size_t _Count) noexcept /* strengthened */ { +; 49 : _In_reads_(_Count) const _Elem* const _First2, const size_t _Count) noexcept /* strengthened */ { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -18884,46 +17769,60 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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)); + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 50 : // copy [_First2, _First2 + _Count) to [_First1, ...) +; 51 : #if _HAS_MEMCPY_MEMMOVE_INTRINSICS +; 52 : __builtin_memcpy(_First1, _First2, _Count * sizeof(_Elem)); +; 53 : #else // ^^^ _HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ / vvv !_HAS_MEMCPY_MEMMOVE_INTRINSICS vvv +; 54 : #ifdef __cpp_lib_is_constant_evaluated +; 55 : if (_STD is_constant_evaluated()) { +; 56 : // pre: [_First1, _First1 + _Count) and [_First2, _First2 + _Count) do not overlap; see LWG-3085 +; 57 : for (size_t _Idx = 0; _Idx < _Count; ++_Idx) { +; 58 : _First1[_Idx] = _First2[_Idx]; +; 59 : } +; 60 : +; 61 : return _First1; +; 62 : } +; 63 : #endif // __cpp_lib_is_constant_evaluated +; 64 : +; 65 : _CSTD memcpy(_First1, _First2, _Count * sizeof(_Elem)); - 00040 4c 8b 85 f0 00 + 00029 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR _Count$[rbp] - 00047 48 8b 95 e8 00 + 00030 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _First2$[rbp] - 0004e 48 8b 8d e0 00 + 00037 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 + 0003e e8 00 00 00 00 call memcpy + +; 66 : #endif // ^^^ !_HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ +; 67 : +; 68 : return _First1; -; 329 : } + 00043 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First1$[rbp] - 0005b 48 8d a5 c8 00 +; 69 : } + + 0004a 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 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 +?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\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 -; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18933,35 +17832,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$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> + 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$00@std@@YA_K_K@Z ; std::_Get_size_of_n<1> + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 808 : } +; 840 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?allocate@?$allocator@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z _TEXT SEGMENT this$ = 224 @@ -18969,7 +17862,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -18980,42 +17873,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 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 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 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); +; 834 : // no overflow check on the following multiply; we assume _Allocate did that check +; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - 00040 48 8b 95 f0 00 + 00029 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Count$[rbp] - 00047 48 8b 8d e8 00 + 00030 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0004e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00037 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 00053 48 8d a5 c8 00 + 0003c 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 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0?$allocator@D@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$allocator@D@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 795 : constexpr allocator() noexcept {} +; 825 : constexpr allocator() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -19024,35 +17911,29 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??0?$allocator@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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z _TEXT SEGMENT $T1 = 200 -tv78 = 216 +tv80 = 216 _Obj$ = 256 <_Args_0>$ = 264 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z PROC ; std::_Construct_in_place, COMDAT -; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { +; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -19062,171 +17943,244 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 8d 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 00042 e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof - 00047 48 8b d0 mov rdx, rax - 0004a b9 10 00 00 00 mov ecx, 16 - 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00054 48 89 85 c8 00 + 0002b e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter + 00038 48 8b d0 mov rdx, rax + 0003b b9 10 00 00 00 mov ecx, 16 + 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00045 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0005b 48 8b 8d 08 01 + 0004c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00062 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 89 85 d8 00 - 00 00 mov QWORD PTR tv78[rbp], rax - 00071 48 8b 95 d8 00 - 00 00 mov rdx, QWORD PTR tv78[rbp] - 00078 48 8b 8d c8 00 + 00053 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward + 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0005b 48 89 85 d8 00 + 00 00 mov QWORD PTR tv80[rbp], rax + 00062 48 8b 95 d8 00 + 00 00 mov rdx, QWORD PTR tv80[rbp] + 00069 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0007f e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy - 00084 90 npad 1 - -; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) -; 230 : _Ty(_STD forward<_Types>(_Args)...); -; 231 : } - - 00085 48 8d a5 e8 00 + 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 : } + + 00075 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ENDP ; std::_Construct_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ _TEXT SEGMENT -_Lock$4 = 4 -_Pnext$5 = 40 -__$ArrayPad$ = 248 -this$ = 288 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 1205 : inline void _Container_base12::_Orphan_all() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { -$LN7: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8b 05 00 00 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 0a 00 00 00 mov ecx, 10 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 f8 00 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1207 : if (_Myproxy) { // proxy allocated, drain it +; 1096 : _Lockit _Lock(_LOCK_DEBUG); - 00047 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00052 74 6b je SHORT $LN5@Orphan_all + 00049 ba 03 00 00 00 mov edx, 3 + 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00052 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1208 : _Lockit _Lock(_LOCK_DEBUG); +; 1097 : _Orphan_all_unlocked(); - 00054 ba 03 00 00 00 mov edx, 3 - 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 0005d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00058 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked + +; 1098 : } + + 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00068 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData + 00079 e8 00 00 00 00 call _RTC_CheckStackVars + 0007e 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00085 48 33 cd xor rcx, rbp + 00088 e8 00 00 00 00 call __security_check_cookie + 0008d 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +_TEXT SEGMENT +_Pnext$1 = 8 +this$ = 256 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + +; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { + +$LN6: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1209 : -; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { +; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 - 00063 48 8b 85 20 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 83 c0 08 add rax, 8 - 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax - 00075 eb 12 jmp SHORT $LN4@Orphan_all + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 83 c0 08 add rax, 8 + 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + 00031 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0007b 48 8b 00 mov rax, QWORD PTR [rax] - 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] - 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00086 48 89 01 mov QWORD PTR [rcx], rax + 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] + 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00042 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00091 74 10 je SHORT $LN3@Orphan_all + 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00049 48 83 38 00 cmp QWORD PTR [rax], 0 + 0004d 74 10 je SHORT $LN3@Orphan_all -; 1211 : (*_Pnext)->_Myproxy = nullptr; +; 1222 : _Pnext->_Myproxy = nullptr; - 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 c7 00 00 00 + 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1212 : } +; 1223 : } - 000a1 eb d4 jmp SHORT $LN2@Orphan_all + 0005d eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1213 : -; 1214 : _Myproxy->_Myfirstiter = nullptr; +; 1224 : _Myproxy->_Myfirstiter = nullptr; - 000a3 48 8b 85 20 01 + 0005f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 8b 00 mov rax, QWORD PTR [rax] - 000ad 48 c7 40 08 00 + 00066 48 8b 00 mov rax, QWORD PTR [rax] + 00069 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1215 : } +; 1225 : } - 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000b9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ -$LN5@Orphan_all: + 00071 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1217 : } +; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c3 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData - 000ca e8 00 00 00 00 call _RTC_CheckStackVars - 000cf 90 npad 1 - 000d0 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d7 48 33 cd xor rcx, rbp - 000da e8 00 00 00 00 call __security_check_cookie - 000df 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e6 5f pop rdi - 000e7 5d pop rbp - 000e8 c3 ret 0 +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1229 : if (_Myproxy) { // proxy allocated, drain it + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0c je SHORT $LN2@Orphan_all + +; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1231 : if (_STD is_constant_evaluated()) { +; 1232 : _Orphan_all_unlocked(); +; 1233 : } else +; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1235 : { +; 1236 : _Orphan_all_locked(); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked +$LN2@Orphan_all: + +; 1237 : } +; 1238 : } +; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1240 : } + + 00038 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Container_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT -; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} +; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -19235,37 +18189,61 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1065 : +; 1066 : _Container_base12(const _Container_base12&) = delete; +; 1067 : _Container_base12& operator=(const _Container_base12&) = delete; +; 1068 : +; 1069 : _CONSTEXPR20_CONTAINER void _Orphan_all() noexcept; +; 1070 : _CONSTEXPR20_CONTAINER void _Swap_proxy_and_iterators(_Container_base12&) noexcept; +; 1071 : +; 1072 : template +; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { +; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); +; 1075 : _Construct_in_place(*_New_proxy, this); +; 1076 : _Myproxy = _New_proxy; +; 1077 : _New_proxy->_Mycont = this; +; 1078 : } +; 1079 : +; 1080 : template +; 1081 : _CONSTEXPR20_CONTAINER void _Reload_proxy(_Alloc&& _Old_alloc, _Alloc&& _New_alloc) { +; 1082 : // pre: no iterators refer to the existing proxy +; 1083 : _Container_proxy* const _New_proxy = _Unfancy(_New_alloc.allocate(1)); +; 1084 : _Construct_in_place(*_New_proxy, this); +; 1085 : _New_proxy->_Mycont = this; +; 1086 : _Delete_plain_internal(_Old_alloc, _STD exchange(_Myproxy, _New_proxy)); +; 1087 : } +; 1088 : +; 1089 : _Container_proxy* _Myproxy = nullptr; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 c7 00 00 00 + 00026 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00044 48 8b 85 e0 00 + +; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; + + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d a5 c8 00 + 00034 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ??0_Container_base12@std@@QEAA@XZ ENDP ; std::_Container_base12::_Container_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 _Mycont_$ = 232 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z PROC ; std::_Container_proxy::_Container_proxy, COMDAT -; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} +; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -19275,35 +18253,37 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d e8 00 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx - 0004c 48 8b 85 e0 00 + 00032 48 89 08 mov QWORD PTR [rax], rcx + +; 1057 : +; 1058 : const _Container_base12* _Mycont = nullptr; +; 1059 : mutable _Iterator_base12* _Myfirstiter = nullptr; + + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 c7 40 08 00 + 0003c 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0005b 48 8b 85 e0 00 + +; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} + + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ENDP ; std::_Container_proxy::_Container_proxy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -19314,7 +18294,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -19324,202 +18304,196 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 134 : _Bytes += _Non_user_size; - - 0003b 48 8b 85 68 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 155 : _Bytes += _Non_user_size; + + 00024 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 83 c0 2f add rax, 47 ; 0000002fH - 00049 48 8b 8d 68 01 + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 83 c0 2f add rax, 47 ; 0000002fH + 00032 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00050 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 89 01 mov QWORD PTR [rcx], rax -; 135 : -; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 156 : +; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00053 48 8b 85 60 01 + 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0005a 48 8b 00 mov rax, QWORD PTR [rax] - 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00061 b8 08 00 00 00 mov eax, 8 - 00066 48 6b c0 ff imul rax, rax, -1 - 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 0004a b8 08 00 00 00 mov eax, 8 + 0004f 48 6b c0 ff imul rax, rax, -1 + 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 138 : -; 139 : // If the following asserts, it likely means that we are performing -; 140 : // an aligned delete on memory coming from an unaligned allocation. -; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); +; 159 : +; 160 : // If the following asserts, it likely means that we are performing +; 161 : // an aligned delete on memory coming from an unaligned allocation. +; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - 00076 b8 08 00 00 00 mov eax, 8 - 0007b 48 6b c0 fe imul rax, rax, -2 - 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00083 48 ba fa fa fa + 0005f b8 08 00 00 00 mov eax, 8 + 00064 48 6b c0 fe imul rax, rax, -2 + 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006c 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 00091 75 02 jne SHORT $LN14@Adjust_man - 00093 eb 77 jmp SHORT $LN15@Adjust_man + 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 0007a 75 02 jne SHORT $LN14@Adjust_man + 0007c eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 00095 8b 05 00 00 00 + 0007e 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0009b 83 c0 09 add eax, 9 - 0009e 48 8d 0d 00 00 + 00084 83 c0 09 add eax, 9 + 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 000aa 48 8d 0d 00 00 + 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00093 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 000b6 45 33 c9 xor r9d, r9d - 000b9 44 8b c0 mov r8d, eax - 000bc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000c3 b9 02 00 00 00 mov ecx, 2 - 000c8 ff 15 00 00 00 + 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0009f 45 33 c9 xor r9d, r9d + 000a2 44 8b c0 mov r8d, eax + 000a5 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000ac b9 02 00 00 00 mov ecx, 2 + 000b1 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000ce 83 f8 01 cmp eax, 1 - 000d1 75 03 jne SHORT $LN19@Adjust_man - 000d3 cc int 3 - 000d4 33 c0 xor eax, eax + 000b7 83 f8 01 cmp eax, 1 + 000ba 75 03 jne SHORT $LN19@Adjust_man + 000bc cc int 3 + 000bd 33 c0 xor eax, eax $LN19@Adjust_man: - 000d6 8b 05 00 00 00 + 000bf 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000dc 83 c0 09 add eax, 9 - 000df 48 c7 44 24 20 + 000c5 83 c0 09 add eax, 9 + 000c8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000e8 44 8b c8 mov r9d, eax - 000eb 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000f2 48 8d 15 00 00 + 000d1 44 8b c8 mov r9d, eax + 000d4 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000db 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000f9 48 8d 0d 00 00 + 000e2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00100 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00106 33 c0 xor eax, eax - 00108 85 c0 test eax, eax - 0010a 75 89 jne SHORT $LN7@Adjust_man + 000ef 33 c0 xor eax, eax + 000f1 85 c0 test eax, eax + 000f3 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 0010c 33 c0 xor eax, eax - 0010e 85 c0 test eax, eax - 00110 0f 85 60 ff ff + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 142 : -; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 144 : // in range [_Min_back_shift, _Non_user_size] -; 145 : #ifdef _DEBUG -; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 163 : +; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 165 : // in range [_Min_back_shift, _Non_user_size] +; 166 : #ifdef _DEBUG +; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 00116 48 c7 45 48 10 + 000ff 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 149 : #endif // _DEBUG -; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 170 : #endif // _DEBUG +; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 0011e 48 8b 85 60 01 + 00107 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00129 48 8b 00 mov rax, QWORD PTR [rax] - 0012c 48 2b c1 sub rax, rcx - 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00112 48 8b 00 mov rax, QWORD PTR [rax] + 00115 48 2b c1 sub rax, rcx + 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00138 72 09 jb SHORT $LN16@Adjust_man - 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 0013f 77 02 ja SHORT $LN16@Adjust_man - 00141 eb 77 jmp SHORT $LN17@Adjust_man + 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00121 72 09 jb SHORT $LN16@Adjust_man + 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 00128 77 02 ja SHORT $LN16@Adjust_man + 0012a eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 00143 8b 05 00 00 00 + 0012c 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00149 83 c0 13 add eax, 19 - 0014c 48 8d 0d 00 00 + 00132 83 c0 13 add eax, 19 + 00135 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00158 48 8d 0d 00 00 + 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00141 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00164 45 33 c9 xor r9d, r9d - 00167 44 8b c0 mov r8d, eax - 0016a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00171 b9 02 00 00 00 mov ecx, 2 - 00176 ff 15 00 00 00 + 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0014d 45 33 c9 xor r9d, r9d + 00150 44 8b c0 mov r8d, eax + 00153 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0015a b9 02 00 00 00 mov ecx, 2 + 0015f ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0017c 83 f8 01 cmp eax, 1 - 0017f 75 03 jne SHORT $LN20@Adjust_man - 00181 cc int 3 - 00182 33 c0 xor eax, eax + 00165 83 f8 01 cmp eax, 1 + 00168 75 03 jne SHORT $LN20@Adjust_man + 0016a cc int 3 + 0016b 33 c0 xor eax, eax $LN20@Adjust_man: - 00184 8b 05 00 00 00 + 0016d 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0018a 83 c0 13 add eax, 19 - 0018d 48 c7 44 24 20 + 00173 83 c0 13 add eax, 19 + 00176 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00196 44 8b c8 mov r9d, eax - 00199 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 001a0 48 8d 15 00 00 + 0017f 44 8b c8 mov r9d, eax + 00182 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00189 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 001a7 48 8d 0d 00 00 + 00190 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 001ae ff 15 00 00 00 + 00197 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 001b4 33 c0 xor eax, eax - 001b6 85 c0 test eax, eax - 001b8 75 89 jne SHORT $LN13@Adjust_man + 0019d 33 c0 xor eax, eax + 0019f 85 c0 test eax, eax + 001a1 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001ba 33 c0 xor eax, eax - 001bc 85 c0 test eax, eax - 001be 0f 85 6f ff ff + 001a3 33 c0 xor eax, eax + 001a5 85 c0 test eax, eax + 001a7 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 152 : _Ptr = reinterpret_cast(_Ptr_container); +; 173 : _Ptr = reinterpret_cast(_Ptr_container); - 001c4 48 8b 85 60 01 + 001ad 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001cf 48 89 08 mov QWORD PTR [rax], rcx + 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001b8 48 89 08 mov QWORD PTR [rax], rcx -; 153 : } +; 174 : } - 001d2 48 8d a5 48 01 + 001bb 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001d9 5f pop rdi - 001da 5d pop rbp - 001db c3 ret 0 + 001c2 5f pop rdi + 001c3 5d pop rbp + 001c4 c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z _TEXT SEGMENT _Bytes$ = 224 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z PROC ; std::_Default_allocate_traits::_Allocate, COMDAT -; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { +; 84 : void* _Allocate(const size_t _Bytes) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -19528,38 +18502,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 77 : return ::operator new(_Bytes); - - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 85 : return ::operator new(_Bytes); + + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00026 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new -; 78 : } +; 86 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ENDP ; std::_Default_allocate_traits::_Allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\limits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\limits ; COMDAT ?max@?$numeric_limits@_J@std@@SA_JXZ _TEXT SEGMENT ?max@?$numeric_limits@_J@std@@SA_JXZ PROC ; std::numeric_limits<__int64>::max, COMDAT -; 645 : _NODISCARD static constexpr long long(max)() noexcept { +; 647 : _NODISCARD static constexpr long long(max)() noexcept { $LN3: 00000 40 55 push rbp @@ -19567,30 +18535,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 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F2870A2C_limits - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__44860E64_limits + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 646 : return LLONG_MAX; +; 648 : return LLONG_MAX; - 0002a 48 b8 ff ff ff + 0001b 48 b8 ff ff ff ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 647 : } +; 649 : } - 00034 48 8d a5 c8 00 + 00025 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 0002c 5f pop rdi + 0002d 5d pop rbp + 0002e c3 ret 0 ?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\exception ; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -19604,33 +18568,29 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E4152856_exception - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__89F7010A_exception + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 321 : _THROW(bad_array_new_length{}); - 0002a 48 8d 8d c8 00 + 0001b 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00031 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length - 00036 48 8d 15 00 00 + 00022 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length + 00027 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ - 0003d 48 8d 8d c8 00 + 0002e 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00044 e8 00 00 00 00 call _CxxThrowException + 00035 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 322 : } - 00049 48 8d a5 f8 00 + 0003a 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00041 5f pop rdi + 00042 5d pop rbp + 00043 c3 ret 0 ?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19647,32 +18607,26 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19689,29 +18643,23 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19726,24 +18674,18 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_array_new_length@std@@UEAA@XZ ENDP ; std::bad_array_new_length::~bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0bad_array_new_length@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19758,41 +18700,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 140 : : bad_alloc("bad array new length") - 00036 48 8d 15 00 00 + 0001f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ - 0003d 48 8b 8d e0 00 + 00026 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + 0002d e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc ; 141 : { - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 8d 0d 00 00 + 00039 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00057 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 89 08 mov QWORD PTR [rax], rcx ; 142 : } - 0005a 48 8b 85 e0 00 + 00043 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00061 48 8d a5 c8 00 + 0004a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 ??0bad_array_new_length@std@@QEAA@XZ ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19809,32 +18745,26 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19851,29 +18781,23 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19888,24 +18812,18 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_alloc@std@@UEAA@XZ ENDP ; std::bad_alloc::~bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z _TEXT SEGMENT this$ = 224 @@ -19922,43 +18840,37 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 129 : : exception(_Message, 1) - 0003b 41 b8 01 00 00 + 00024 41 b8 01 00 00 00 mov r8d, 1 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Message$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + 00038 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception ; 130 : { - 00054 48 8b 85 e0 00 + 0003d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005b 48 8d 0d 00 00 + 00044 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00062 48 89 08 mov QWORD PTR [rax], rcx + 0004b 48 89 08 mov QWORD PTR [rax], rcx ; 131 : } - 00065 48 8b 85 e0 00 + 0004e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006c 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19975,36 +18887,30 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gexception@std@@UEAAPEAXI@Z ENDP ; std::exception::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ?what@exception@std@@UEBAPEBDXZ _TEXT SEGMENT tv69 = 192 @@ -20020,48 +18926,42 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 95 : return _Data._What ? _Data._What : "Unknown exception"; - 00036 48 8b 85 f0 00 + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00042 74 14 je SHORT $LN3@what - 00044 48 8b 85 f0 00 + 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0002b 74 14 je SHORT $LN3@what + 0002d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004f 48 89 85 c0 00 + 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00038 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 00056 eb 0e jmp SHORT $LN4@what + 0003f eb 0e jmp SHORT $LN4@what $LN3@what: - 00058 48 8d 05 00 00 + 00041 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ - 0005f 48 89 85 c0 00 + 00048 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax $LN4@what: - 00066 48 8b 85 c0 00 + 0004f 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv69[rbp] ; 96 : } - 0006d 48 8d a5 d8 00 + 00056 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 ?what@exception@std@@UEBAPEBDXZ ENDP ; std::exception::what _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -20076,41 +18976,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d 0d 00 00 + 00026 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00044 48 89 08 mov QWORD PTR [rax], rcx + 0002d 48 89 08 mov QWORD PTR [rax], rcx ; 90 : __std_exception_destroy(&_Data); - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 c0 08 add rax, 8 - 00052 48 8b c8 mov rcx, rax - 00055 e8 00 00 00 00 call __std_exception_destroy - 0005a 90 npad 1 + 00037 48 83 c0 08 add rax, 8 + 0003b 48 8b c8 mov rcx, rax + 0003e e8 00 00 00 00 call __std_exception_destroy ; 91 : } - 0005b 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 @@ -20127,55 +19020,49 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d 0d 00 00 + 0002b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00032 48 89 08 mov QWORD PTR [rax], rcx ; 71 : : _Data() - 0004c 48 8b 85 e0 00 + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 83 c0 08 add rax, 8 - 00057 48 8b f8 mov rdi, rax - 0005a 33 c0 xor eax, eax - 0005c b9 10 00 00 00 mov ecx, 16 - 00061 f3 aa rep stosb + 0003c 48 83 c0 08 add rax, 8 + 00040 48 8b f8 mov rdi, rax + 00043 33 c0 xor eax, eax + 00045 b9 10 00 00 00 mov ecx, 16 + 0004a f3 aa rep stosb ; 73 : __std_exception_copy(&_Other._Data, &_Data); - 00063 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 83 c0 08 add rax, 8 - 0006e 48 8b 8d e8 00 + 00053 48 83 c0 08 add rax, 8 + 00057 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Other$[rbp] - 00075 48 83 c1 08 add rcx, 8 - 00079 48 8b d0 mov rdx, rax - 0007c e8 00 00 00 00 call __std_exception_copy + 0005e 48 83 c1 08 add rcx, 8 + 00062 48 8b d0 mov rdx, rax + 00065 e8 00 00 00 00 call __std_exception_copy ; 74 : } - 00081 48 8b 85 e0 00 + 0006a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00088 48 8d a5 c8 00 + 00071 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0008f 5f pop rdi - 00090 5d pop rbp - 00091 c3 ret 0 + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 ??0exception@std@@QEAA@AEBV01@@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@QEBDH@Z _TEXT SEGMENT this$ = 224 @@ -20194,48 +19081,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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 85 e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 8d 0d 00 00 + 00030 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00037 48 89 08 mov QWORD PTR [rax], rcx ; 65 : : _Data() - 00051 48 8b 85 e0 00 + 0003a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 83 c0 08 add rax, 8 - 0005c 48 8b f8 mov rdi, rax - 0005f 33 c0 xor eax, eax - 00061 b9 10 00 00 00 mov ecx, 16 - 00066 f3 aa rep stosb + 00041 48 83 c0 08 add rax, 8 + 00045 48 8b f8 mov rdi, rax + 00048 33 c0 xor eax, eax + 0004a b9 10 00 00 00 mov ecx, 16 + 0004f f3 aa rep stosb ; 67 : _Data._What = _Message; - 00068 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006f 48 8b 8d e8 00 + 00058 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Message$[rbp] - 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 68 : } - 0007a 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00081 48 8d a5 c8 00 + 0006a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20258,40 +19139,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_new.h ; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT _Size$ = 224 @@ -20308,29 +19183,23 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__02E23235_vcruntime_new@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 168 : (void)_Size; ; 169 : return _Where; - 0003b 48 8b 85 e8 00 + 00024 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Where$[rbp] ; 170 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20357,75 +19226,75 @@ $LN3: 00016 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 78 + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 1e 00 00 00 mov ecx, 30 + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 78 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 28 01 + 00042 48 33 c5 xor rax, rbp + 00045 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004a 48 8d 0d 00 00 + 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00056 48 8d 85 58 01 + 00058 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00065 48 89 85 18 01 + 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00067 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006c b9 01 00 00 00 mov ecx, 1 - 00071 ff 15 00 00 00 + 0006e b9 01 00 00 00 mov ecx, 1 + 00073 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00077 48 89 85 20 01 + 00079 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 0007e 4c 8b 8d 18 01 + 00080 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00085 45 33 c0 xor r8d, r8d - 00088 48 8b 95 50 01 + 00087 45 33 c0 xor r8d, r8d + 0008a 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 0008f 48 8b 8d 20 01 + 00091 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00096 e8 00 00 00 00 call _vfprintf_l - 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00098 e8 00 00 00 00 call _vfprintf_l + 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 0009e 48 c7 45 28 00 + 000a0 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000a9 8b f8 mov edi, eax - 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000af 48 8d 15 00 00 + 000ab 8b f8 mov edi, eax + 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b6 e8 00 00 00 00 call _RTC_CheckStackVars - 000bb 8b c7 mov eax, edi - 000bd 48 8b 8d 28 01 + 000b8 e8 00 00 00 00 call _RTC_CheckStackVars + 000bd 8b c7 mov eax, edi + 000bf 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c4 48 33 cd xor rcx, rbp - 000c7 e8 00 00 00 00 call __security_check_cookie - 000cc 48 8d a5 38 01 + 000c6 48 33 cd xor rcx, rbp + 000c9 e8 00 00 00 00 call __security_check_cookie + 000ce 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d3 5f pop rdi - 000d4 5d pop rbp - 000d5 c3 ret 0 + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20450,39 +19319,33 @@ $LN3: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 + 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 00045 e8 00 00 00 00 call __local_stdio_printf_options - 0004a 48 8b 8d f8 00 + 0002e e8 00 00 00 00 call __local_stdio_printf_options + 00033 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00056 4c 8b 8d f0 00 + 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0003f 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 0005d 4c 8b 85 e8 00 + 00046 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 00064 48 8b 95 e0 00 + 0004d 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 00074 48 8d a5 c8 00 + 0005d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007b 5f pop rdi - 0007c 5d pop rbp - 0007d c3 ret 0 + 00064 5f pop rdi + 00065 5d pop rbp + 00066 c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20499,31 +19362,27 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 + 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0002a 48 8d 05 00 00 + 0001b 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } - 00031 48 8d a5 c8 00 + 00022 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -20540,25 +19399,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -20573,25 +19425,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -20606,25 +19451,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -20637,21 +19475,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/NativeCode.cod b/CodeVirtualizer/x64/Debug/NativeCode.cod index 8023152..0d883a4 100644 --- a/CodeVirtualizer/x64/Debug/NativeCode.cod +++ b/CodeVirtualizer/x64/Debug/NativeCode.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,58 +33,59 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__0A045E7B_NativeCode@h DB 01H +__092B7E84_vector DB 01H +__337731E1_NativeCode@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__FAD76A5B_iomanip DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -115,13 +116,19 @@ PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_ma PUBLIC ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy PUBLIC ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all +PUBLIC ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked +PUBLIC ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked PUBLIC ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 PUBLIC ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 PUBLIC ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= PUBLIC ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 PUBLIC ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt +PUBLIC ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 PUBLIC ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont -PUBLIC ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me +PUBLIC ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_unlocked +PUBLIC ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked +PUBLIC ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked +PUBLIC ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_locked PUBLIC ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place PUBLIC ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type PUBLIC ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof @@ -157,6 +164,8 @@ PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector< PUBLIC ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth PUBLIC ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array PUBLIC ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +PUBLIC ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_unlocked +PUBLIC ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_locked PUBLIC ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal @@ -169,7 +178,7 @@ 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 ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCountInstructions +PUBLIC ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@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 @@ -195,22 +204,22 @@ PUBLIC ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@ PUBLIC ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range PUBLIC ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to PUBLIC ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > -PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > +PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > PUBLIC ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped PUBLIC ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_iterator > >::~_Vector_iterator > > -PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > +PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_iterator > >::_Vector_iterator > > PUBLIC ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> PUBLIC ??$log2@H$0A@@@YANH@Z ; log2 -PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > PUBLIC ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> PUBLIC ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill PUBLIC ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj PUBLIC ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> +PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > PUBLIC ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > -PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back +PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back PUBLIC ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward -PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity +PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity PUBLIC ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy PUBLIC ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct PUBLIC ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate @@ -230,19 +239,31 @@ PUBLIC ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> PUBLIC ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> PUBLIC ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof +PUBLIC ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter PUBLIC ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward PUBLIC ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > -PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> -PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> +PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> +PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> PUBLIC ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked PUBLIC ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> +PUBLIC ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter PUBLIC ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned PUBLIC ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > PUBLIC ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> PUBLIC ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 -PUBLIC ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped +PUBLIC ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ; std::forward +PUBLIC ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped +PUBLIC ??$move@AEAK@std@@YA$$QEAKAEAK@Z ; std::move PUBLIC ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove +PUBLIC ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > +PUBLIC ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > +PUBLIC ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::_Uninitialized_backout_al >::_Release +PUBLIC ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z ; std::_Uninitialized_backout_al >::__autoclassinit2 +PUBLIC ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ; std::_Uninitialized_backout_al >::_Emplace_back PUBLIC ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy +PUBLIC ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address +PUBLIC ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward +PUBLIC ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ; std::_Default_allocator_traits >::construct PUBLIC __JustMyCode_Default PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage PUBLIC ??_7exception@std@@6B@ ; std::exception::`vftable' @@ -261,16 +282,16 @@ PUBLIC _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' PUBLIC ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ ; `string' -PUBLIC ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `string' +PUBLIC ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `string' PUBLIC ??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ ; `string' -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ ; `string' PUBLIC ??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ ; `string' PUBLIC ??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ ; `string' @@ -279,8 +300,8 @@ PUBLIC ??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ ; `string' PUBLIC ??_C@_03OFAPEBGM@?$CFs?6@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ ; `string' -PUBLIC ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ ; `string' PUBLIC ??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' @@ -391,373 +412,409 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+59 + DD imagerel $LN3+44 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+126 + DD imagerel $LN3+103 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+214 + DD imagerel $LN3+216 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+47 DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 - DD imagerel $LN3+139 + DD imagerel $LN3+116 DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+146 + DD imagerel $LN3+123 DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+101 + DD imagerel $LN3+77 DD imagerel $unwind$??1exception@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+96 DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 - DD imagerel $LN3+118 + DD imagerel $LN3+95 DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+84 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+68 DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+476 + DD imagerel $LN21+453 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+62 DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 - DD imagerel $LN7+233 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+66 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 + DD imagerel $LN6+123 + DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+151 + DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??0_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0_Iterator_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD imagerel $LN3 - DD imagerel $LN3+124 + DD imagerel $LN3+101 DD imagerel $unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD imagerel $LN6 - DD imagerel $LN6+229 + DD imagerel $LN6+127 DD imagerel $unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+150 + DD imagerel $LN3+53 DD imagerel $unwind$??1_Iterator_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD imagerel $LN6 - DD imagerel $LN6+282 + DD imagerel $LN6+116 DD imagerel $unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+66 + DD imagerel $unwind$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD imagerel $LN5 - DD imagerel $LN5+117 + DD imagerel $LN5+94 DD imagerel $unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN15 - DD imagerel $LN15+299 - DD imagerel $unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +$pdata$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD imagerel $LN4 + DD imagerel $LN4+128 + DD imagerel $unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD imagerel $LN3 + DD imagerel $LN3+163 + DD imagerel $unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD imagerel $LN14 + DD imagerel $LN14+267 + DD imagerel $unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+151 + DD imagerel $unwind$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD imagerel $LN3 - DD imagerel $LN3+143 + DD imagerel $LN3+127 DD imagerel $unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 - DD imagerel $LN5+118 + DD imagerel $LN5+95 DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 - DD imagerel $LN3+57 + DD imagerel $LN3+42 DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_iform_to_iclass DD imagerel xed_iform_to_iclass - DD imagerel xed_iform_to_iclass+99 + DD imagerel xed_iform_to_iclass+77 DD imagerel $unwind$xed_iform_to_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_operand_type DD imagerel xed_operand_type - DD imagerel xed_operand_type+75 + DD imagerel xed_operand_type+52 DD imagerel $unwind$xed_operand_type pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_iform_enum DD imagerel xed_inst_iform_enum - DD imagerel xed_inst_iform_enum+75 + DD imagerel xed_inst_iform_enum+52 DD imagerel $unwind$xed_inst_iform_enum pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_iclass DD imagerel xed_inst_iclass - DD imagerel xed_inst_iclass+83 + DD imagerel xed_inst_iclass+60 DD imagerel $unwind$xed_inst_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_category DD imagerel xed_inst_category - DD imagerel xed_inst_category+83 + DD imagerel xed_inst_category+60 DD imagerel $unwind$xed_inst_category pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_noperands DD imagerel xed_inst_noperands - DD imagerel xed_inst_noperands+74 + DD imagerel xed_inst_noperands+51 DD imagerel $unwind$xed_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+182 + DD imagerel xed_relbr+184 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+207 + DD imagerel xed_inst1+184 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_inst DD imagerel xed_decoded_inst_inst - DD imagerel xed_decoded_inst_inst+78 + DD imagerel xed_decoded_inst_inst+55 DD imagerel $unwind$xed_decoded_inst_inst pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_category DD imagerel xed_decoded_inst_get_category - DD imagerel xed_decoded_inst_get_category+89 + DD imagerel xed_decoded_inst_get_category+66 DD imagerel $unwind$xed_decoded_inst_get_category pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_iclass DD imagerel xed_decoded_inst_get_iclass - DD imagerel xed_decoded_inst_get_iclass+89 + DD imagerel xed_decoded_inst_get_iclass+66 DD imagerel $unwind$xed_decoded_inst_get_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_noperands DD imagerel xed_decoded_inst_noperands - DD imagerel xed_decoded_inst_noperands+90 + DD imagerel xed_decoded_inst_noperands+67 DD imagerel $unwind$xed_decoded_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_set_mode DD imagerel xed_decoded_inst_set_mode - DD imagerel xed_decoded_inst_set_mode+155 + DD imagerel xed_decoded_inst_set_mode+157 DD imagerel $unwind$xed_decoded_inst_set_mode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_length DD imagerel xed_decoded_inst_get_length - DD imagerel xed_decoded_inst_get_length+78 + DD imagerel xed_decoded_inst_get_length+55 DD imagerel $unwind$xed_decoded_inst_get_length pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+221 + DD imagerel $LN3+198 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN4 - DD imagerel $LN4+140 + DD imagerel $LN4+117 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD imagerel $LN6 - DD imagerel $LN6+261 + DD imagerel $LN6+238 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z pdata ENDS ; COMDAT pdata @@ -769,283 +826,277 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+114 + DD imagerel $LN4+90 DD imagerel $unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$allocator@K@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??0?$allocator@K@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+66 DD imagerel $unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+51 DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+160 + DD imagerel $LN3+137 DD imagerel $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+88 + DD imagerel $LN3+65 DD imagerel $unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+148 + DD imagerel $LN3+125 DD imagerel $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+144 + DD imagerel $LN3+121 DD imagerel $unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+144 + DD imagerel $LN3+121 DD imagerel $unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+98 + DD imagerel $LN3+75 DD imagerel $unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+125 + DD imagerel $LN3+102 DD imagerel $unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+98 + DD imagerel $LN3+75 DD imagerel $unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+120 + DD imagerel $LN3+97 DD imagerel $unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD imagerel $LN3 - DD imagerel $LN3+120 + DD imagerel $LN3+97 DD imagerel $unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+142 + DD imagerel $LN3+119 DD imagerel $unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD imagerel $LN5 - DD imagerel $LN5+200 + DD imagerel $LN5+168 DD imagerel $unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD imagerel $LN4 - DD imagerel $LN4+322 + DD imagerel $LN4+299 DD imagerel $unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+49 DD imagerel $unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN9 - DD imagerel $LN9+267 +$pdata$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN8 + DD imagerel $LN8+184 + DD imagerel $unwind$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN4 + DD imagerel $LN4+177 + DD imagerel $unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA + DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA+37 + DD imagerel $unwind$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN3 + DD imagerel $LN3+77 DD imagerel $unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+56 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+56 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+128 + DD imagerel $LN3+105 DD imagerel $unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+138 + DD imagerel $LN4+115 DD imagerel $unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 - DD imagerel $LN7+241 + DD imagerel $LN7+218 DD imagerel $unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 - DD imagerel $LN7+239 + DD imagerel $LN7+216 DD imagerel $unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 - DD imagerel $LN5+168 + DD imagerel $LN5+145 DD imagerel $unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 - DD imagerel $LN5+171 + DD imagerel $LN5+148 DD imagerel $unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN6 - DD imagerel $LN6+150 + DD imagerel $LN6+127 DD imagerel $unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+154 - DD imagerel $unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +$pdata$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN8 + DD imagerel $LN8+187 + DD imagerel $unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+163 + DD imagerel $LN7+140 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+185 + DD imagerel $LN8+162 DD imagerel $unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN9 - DD imagerel $LN9+518 + DD imagerel $LN9+491 DD imagerel $unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA - DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 - DD imagerel $unwind$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA - DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 - DD imagerel $unwind$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD imagerel $LN17 - DD imagerel $LN17+675 + DD imagerel $LN17+623 DD imagerel $unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA - DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA+59 - DD imagerel $unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA - DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA+59 - DD imagerel $unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN10 - DD imagerel $LN10+429 + DD imagerel $LN10+406 DD imagerel $unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN10 - DD imagerel $LN10+412 + DD imagerel $LN10+389 DD imagerel $unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN18 - DD imagerel $LN18+687 + DD imagerel $LN18+689 DD imagerel $unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -1057,13 +1108,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD imagerel $LN23 - DD imagerel $LN23+414 + DD imagerel $LN23+391 DD imagerel $unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD imagerel $LN14 - DD imagerel $LN14+495 + DD imagerel $LN14+472 DD imagerel $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z pdata ENDS ; COMDAT pdata @@ -1081,31 +1132,31 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN12 - DD imagerel $LN12+498 + DD imagerel $LN12+500 DD imagerel $unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD imagerel $LN3 - DD imagerel $LN3+102 + DD imagerel $LN3+79 DD imagerel $unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD imagerel $LN13 - DD imagerel $LN13+300 + DD imagerel $LN13+277 DD imagerel $unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN19 - DD imagerel $LN19+898 + DD imagerel $LN19+900 DD imagerel $unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD imagerel $LN13 - DD imagerel $LN13+564 + DD imagerel $LN13+541 DD imagerel $unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z pdata ENDS ; COMDAT pdata @@ -1117,103 +1168,103 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD imagerel $LN9 - DD imagerel $LN9+280 + DD imagerel $LN9+257 DD imagerel $unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 - DD imagerel $LN10+224 + DD imagerel $LN10+201 DD imagerel $unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN11 - DD imagerel $LN11+350 + DD imagerel $LN11+327 DD imagerel $unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 - DD imagerel $LN10+361 + DD imagerel $LN10+338 DD imagerel $unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+130 + DD imagerel $LN3+107 DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 - DD imagerel $LN5+141 + DD imagerel $LN5+118 DD imagerel $unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 - DD imagerel $LN5+124 + DD imagerel $LN5+101 DD imagerel $unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD imagerel $LN12 - DD imagerel $LN12+231 + DD imagerel $LN12+208 DD imagerel $unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD imagerel $LN21 - DD imagerel $LN21+374 + DD imagerel $LN21+351 DD imagerel $unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD imagerel $LN3 - DD imagerel $LN3+92 + DD imagerel $LN3+69 DD imagerel $unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 - DD imagerel $LN3+105 - DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+82 + DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+57 DD imagerel $unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 - DD imagerel $LN3+83 - DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+60 + DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD imagerel $LN7 - DD imagerel $LN7+264 + DD imagerel $LN7+241 DD imagerel $unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z pdata ENDS ; COMDAT pdata @@ -1231,91 +1282,91 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$log2@H$0A@@@YANH@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+54 DD imagerel $unwind$??$log2@H$0A@@@YANH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 - DD imagerel $LN23+1095 - DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 + DD imagerel $LN3+117 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 - DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 - DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 + DD imagerel $LN3+68 + DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 - DD imagerel $LN3+140 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 + DD imagerel $LN3+110 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 - DD imagerel $LN3+94 - DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 + DD imagerel $LN23+1097 + DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 - DD imagerel $LN3+91 - DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 - DD imagerel $LN3+133 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 + DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD imagerel $LN4 - DD imagerel $LN4+205 - DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z +$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z DD imagerel $LN4 + DD imagerel $LN4+182 + DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD imagerel $LN3 - DD imagerel $LN3+234 - DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z +$pdata$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z DD imagerel $LN3 + DD imagerel $LN3+211 + DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+121 + DD imagerel $LN3+106 DD imagerel $unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD imagerel $LN13 - DD imagerel $LN13+616 + DD imagerel $LN13+593 DD imagerel $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z pdata ENDS ; COMDAT pdata @@ -1327,43 +1378,43 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+66 DD imagerel $unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN3 - DD imagerel $LN3+102 + DD imagerel $LN3+79 DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD imagerel $LN3 - DD imagerel $LN3+156 + DD imagerel $LN3+133 DD imagerel $unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 - DD imagerel $LN4+171 + DD imagerel $LN4+148 DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+143 + DD imagerel $LN4+120 DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 - DD imagerel $LN7+284 + DD imagerel $LN7+261 DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata @@ -1375,135 +1426,213 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+139 + DD imagerel $LN6+116 DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 - DD imagerel $LN5+142 + DD imagerel $LN5+119 DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+114 + DD imagerel $LN4+91 DD imagerel $unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 - DD imagerel $LN5+117 + DD imagerel $LN5+94 DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+121 + DD imagerel $LN4+98 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD imagerel $LN3 - DD imagerel $LN3+88 + DD imagerel $LN3+65 DD imagerel $unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 - DD imagerel $LN3+76 - DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+53 + DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 - DD imagerel $LN3+76 - DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+53 + DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD imagerel $LN3 - DD imagerel $LN3+127 + DD imagerel $LN3+104 DD imagerel $unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+91 + DD imagerel $LN3+73 DD imagerel $unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD imagerel $LN13 - DD imagerel $LN13+300 + DD imagerel $LN13+277 DD imagerel $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+168 +$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN7 + DD imagerel $LN7+342 DD imagerel $unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+117 + DD imagerel $LN4+94 DD imagerel $unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD imagerel $LN7 - DD imagerel $LN7+146 + DD imagerel $LN7+123 DD imagerel $unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD imagerel $LN3 - DD imagerel $LN3+74 - DD imagerel $unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z +$pdata$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD imagerel $LN3 + DD imagerel $LN3+51 + DD imagerel $unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+156 + DD imagerel $LN3+196 DD imagerel $unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD imagerel $LN3 + DD imagerel $LN3+111 + DD imagerel $unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+78 + DD imagerel $unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 + DD imagerel $LN3+73 + DD imagerel $unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+50 + DD imagerel $unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD imagerel $LN3 + DD imagerel $LN3+158 + DD imagerel $unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD imagerel $LN3 + DD imagerel $LN3+51 + DD imagerel $unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$forward@K@std@@YA$$QEAKAEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$forward@K@std@@YA$$QEAKAEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z +pdata ENDS ; COMDAT __real@3ff0000000000000 CONST SEGMENT __real@3ff0000000000000 DQ 03ff0000000000000r ; 1 @@ -1702,9 +1831,9 @@ CONST SEGMENT DB 'C', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'a', 00H, 't', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -1717,16 +1846,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H + DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'v', 00H, 'e', 00H DB 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\vector', 00H ; `string' +??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\vector', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ CONST SEGMENT @@ -1764,21 +1893,21 @@ CONST SEGMENT ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ DB 'Failed to ' DB 'validate jump. Type: %s, Displacement: %d', 0aH, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ CONST SEGMENT @@ -1789,15 +1918,16 @@ CONST SEGMENT DB 'P', 00H, 'T', 00H, 'E', 00H, 'D', 00H, '!', 00H, '"', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ +; COMDAT ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ CONST SEGMENT -??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' +??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'I', 00H DB 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r' DB 00H, '_', 00H, 'b', 00H, 'a', 00H, 's', 00H, 'e', 00H, '1', 00H DB '2', 00H, ':', 00H, ':', 00H, '_', 00H, 'O', 00H, 'r', 00H, 'p' DB 00H, 'h', 00H, 'a', 00H, 'n', 00H, '_', 00H, 'm', 00H, 'e', 00H - DB 00H, 00H ; `string' + DB '_', 00H, 'u', 00H, 'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k' + DB 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ CONST SEGMENT @@ -1821,9 +1951,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -1836,16 +1966,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H + DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -1857,7 +1987,7 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -1949,238 +2079,301 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 060H - DD imagerel $ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +$unwind$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z DD 025051d01H + DD 0118231dH + DD 070110021H + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025052a19H +$unwind$??$forward@K@std@@YA$$QEAKAEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025053401H - DD 0118231dH - DD 07011002dH - DD 05010H +$unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD 025052a01H +$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025053901H - DD 011d2322H - DD 07016001dH - DD 05015H +$unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD 025051801H + DD 01132318H + DD 0700c0021H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025052a01H - DD 010e2313H - DD 070070025H - DD 05006H +$unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD 05051601H + DD 01130316H + DD 0700c0019H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025053901H - DD 011d2322H - DD 070160025H - DD 05015H +$unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035052a01H - DD 010e3313H - DD 07007002bH +$unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD 025052f01H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025053401H +$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025051d01H DD 0118231dH - DD 070110021H + DD 070110039H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025052a01H +$unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025052a01H +$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD 025052f01H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 02H - DB 00H - DB 00H +$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025052201H + DD 011d2322H + DD 07016001dH + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 060H - DD imagerel $ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025051301H + DD 010e2313H + DD 070070025H + DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 045H + DW 013dH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +$unwind$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 02H +$ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 060H - DD imagerel $ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +$stateUnwindMap$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +$cppxdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 028H + DD imagerel $stateUnwindMap$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z + DD imagerel $ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS +$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025054c19H + DD 011d2322H + DD 07016002fH + DD 05015H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z + DD 016aH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcName$0 DB 05fH ; std::_Uninitialized_move > + DB 042H + DB 061H + DB 063H + DB 06bH + DB 06fH + DB 075H + DB 074H + DB 00H + ORG $+7 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcVarDesc DD 068H ; std::_Uninitialized_move > + DD 018H + DQ FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcName$0 + ORG $+48 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcFrameData DD 01H ; std::_Uninitialized_move > + DD 00H + DQ FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcVarDesc +CONST ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035051301H + DD 010e3313H + DD 07007002bH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H +$unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H +$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025051d01H + DD 0118231dH + DD 070110021H + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H +$unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H DD 010e2313H - DD 070070025H + DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H - DB 00H - DB 00H +$unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H - DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +$unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H - DD 0118231dH - DD 07011001dH - DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 02H +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 060H - DD imagerel $ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025052a19H +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H - DB 00H - DB 00H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025051301H + DD 010e2313H + DD 070070025H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H - DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H +$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H @@ -2198,13 +2391,18 @@ $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070021H DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H @@ -2216,7 +2414,7 @@ xdata SEGMENT $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H DB 00H DB 00H - DB 09eH + DB 'p' DB 02H DB 0f1H, 02H DB 00H @@ -2235,7 +2433,7 @@ $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051811H DD 01132318H DD 0700c0021H DD 0500bH @@ -2255,7 +2453,7 @@ $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070021H DD 05006H @@ -2264,65 +2462,44 @@ $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H +$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025052f01H +$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025051801H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 060H - DD imagerel $ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e19H +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H - DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA DD 031001H @@ -2334,7 +2511,7 @@ xdata SEGMENT $ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 06H DB 00H DB 00H - DB 0c9H, 04H + DB 'm', 04H DB 02H DB 0ddH, 03H DB 00H @@ -2369,7 +2546,7 @@ $cppxdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPE xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025053419H +$unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025051d19H DD 0118231dH DD 07011004bH DD 05010H @@ -2378,113 +2555,61 @@ $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025053401H +$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Unfancy@K@std@@YAPEAKPEAK@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DB 060H - DD imagerel $ip2state$??$_Unfancy@K@std@@YAPEAKPEAK@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025052a19H +$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD 025052f01H +$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z DD 025051801H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 060H - DD imagerel $ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025052a19H +$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD 025052f01H +$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z DD 025051801H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 060H - DD imagerel $ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025052a19H +$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025052f01H - DD 01132318H - DD 0700c001fH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025052e01H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025052e01H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025052f01H - DD 01132318H - DD 0700c001fH - DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03aH + DW 0430H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H @@ -2502,7 +2627,7 @@ xdata SEGMENT $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH DB 00H DB 00H - DB 0c6H + DB 0caH DB 02H DB 011H, 02H DB 04H @@ -2543,7 +2668,7 @@ $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H +$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025054119H DD 01122317H DD 0700b004bH DD 0500aH @@ -2568,24 +2693,49 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$log2@H$0A@@@YANH@Z DB 02H - DB 00H - DB 00H +$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025051801H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025051701H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025051701H + DD 01122317H + DD 0700b001dH + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$log2@H$0A@@@YANH@Z DB 060H - DD imagerel $ip2state$??$log2@H$0A@@@YANH@Z +$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025051801H + DD 01132318H + DD 0700c001fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$log2@H$0A@@@YANH@Z DD 035052819H +$unwind$??$log2@H$0A@@@YANH@Z DD 035051201H DD 010d3312H DD 07006001fH DD 05005H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$log2@H$0A@@@YANH@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA DD 031001H @@ -2603,7 +2753,7 @@ xdata SEGMENT $ip2state$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DB 08H DB 00H DB 00H - DB 086H + DB 'X' DB 04H DB 'm', 02H DB 02H @@ -2626,7 +2776,7 @@ $cppxdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@st xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025053911H +$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025052211H DD 011d2322H DD 070160027H DD 05015H @@ -2635,129 +2785,121 @@ $unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053401H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H +$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025052a01H +$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H +$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025052f01H +$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035052f01H +$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035051801H DD 01133318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035052f01H +$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035051801H DD 01133318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H +$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H +$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 060H - DD imagerel $ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053419H +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 07007002dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025052f01H +$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA DD 031001H @@ -2769,7 +2911,7 @@ xdata SEGMENT $ip2state$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 06H DB 00H DB 00H - DB 0e4H + DB 0b6H DB 02H DB 'p' DB 00H @@ -2788,16 +2930,21 @@ $cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025053411H +$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025051d11H DD 0118231dH DD 070110041H DD 05010H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 037H + DW 036aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063c19H +$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063e19H DD 010f3314H DD 0700800eaH DD 050066007H @@ -2921,21 +3068,26 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025052f01H +$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f01H +$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 01dbH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054519H +$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054719H DD 0118231dH DD 070110037H DD 05010H @@ -2955,6 +3107,16 @@ CONST SEGMENT DD 00H DQ FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD 031001H @@ -2972,7 +3134,7 @@ xdata SEGMENT $ip2state$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 0aH DB 00H DB 00H - DB 0b0H + DB 082H DB 02H DB 08aH DB 00H @@ -2997,7 +3159,7 @@ $cppxdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035052a11H +$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035051311H DD 010e3313H DD 07007003bH DD 05006H @@ -3006,11 +3168,21 @@ $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035052a11H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025052e01H +$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 0298H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -3022,7 +3194,7 @@ xdata SEGMENT $ip2state$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 'q', 07H + DB 'y', 07H DB 02H DB 084H DB 00H @@ -3041,7 +3213,7 @@ $cppxdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H +$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H DD 010e2313H DD 07007004bH DD 05006H @@ -3077,116 +3249,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H +$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H +$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 0aH - DB 00H - DB 00H - DB '}', 05H - DB 02H - DB 0aeH - DB 04H - DB 0b4H - DB 02H - DB 'B' - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 04H - DB 0eH - DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA - DB 02eH - DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 028H - DD imagerel $stateUnwindMap$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z - DD imagerel $ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f11H +$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H DD 01132318H - DD 0700c0057H - DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H - DD 0700c4210H + DD 0700c0055H DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 01d2H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 0aH - DB 00H - DB 00H - DB 'M', 04H - DB 02H - DB 090H - DB 04H - DB 'N' - DB 02H - DB 01aH - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 04H - DB 0eH - DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA - DB 02eH - DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H - DD imagerel $stateUnwindMap$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z - DD imagerel $ip2state$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H +$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H DD 010e2313H - DD 070070053H + DD 070070051H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z - DD 0282H + DD imagerel __GSHandlerCheck + DD 0270H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -3215,381 +3309,278 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025053301H +$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025051c01H DD 0117231cH DD 070100021H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H - DD 010e2313H - DD 070070025H - DD 05006H +$unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051701H + DD 01122317H + DD 0700b0025H + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H +$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H +$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H +$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H +$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H +$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H +$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??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 +$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 040H + DB 098H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +$unwind$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H +$ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 06H + DB 00H DB 00H + DB 0c6H + DB 02H + DB '6' DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +$stateUnwindMap$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +$cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 028H + DD imagerel $stateUnwindMap$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z + DD imagerel $ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054519H +$unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054719H DD 0118231dH - DD 070110029H + DD 070110021H DD 05010H - DD imagerel __GSHandlerCheck - DD 0138H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z + DD 0faH xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range_locked DD 04H - DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 + DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 ORG $+48 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range_locked DD 00H - DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc + DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025051e01H +$unwind$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025053901H +$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025052201H DD 011d2322H DD 07016002fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025052f01H +$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025051801H DD 01132318H - DD 0700c0025H + DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035053901H +$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035052201H DD 011d3322H DD 070160023H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025053901H +$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025053901H +$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H - DD imagerel $ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H +$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H - DD imagerel $ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H +$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H DD 010e2313H DD 070070025H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H - DD imagerel $ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H +$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H - DD imagerel $ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H +$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H - DD imagerel $ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H +$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H - DD imagerel $ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H +$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025051801H DD 01132318H DD 0700c0023H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H - DD imagerel $ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H +$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025051801H DD 01132318H DD 0700c0023H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -3604,7 +3595,7 @@ $cppxdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H +$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025051319H DD 010e2313H DD 070070029H DD 05006H @@ -3613,7 +3604,7 @@ $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025052f01H +$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH @@ -3631,7 +3622,7 @@ $cppxdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070025H DD 05006H @@ -3640,85 +3631,51 @@ $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 060H - DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025052a19H +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025052f01H +$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0?$allocator@K@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0?$allocator@K@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0?$allocator@K@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025052a19H +$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0?$allocator@K@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a19H +$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA DD 031001H @@ -3730,7 +3687,7 @@ xdata SEGMENT $ip2state$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 06H DB 00H DB 00H - DB 0a2H + DB 't' DB 02H DB 08dH, 02H DB 00H @@ -3749,7 +3706,7 @@ $cppxdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025053811H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025052111H DD 011c2321H DD 070150021H DD 05014H @@ -3758,28 +3715,33 @@ $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025053811H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053301H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051c01H DD 0117231cH DD 07010001dH DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a01H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_length DD 025052a01H +$unwind$xed_decoded_inst_get_length DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 03fH + DB 084H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_set_mode DD 025054419H +$unwind$xed_decoded_inst_set_mode DD 025054619H DD 0117231cH DD 070100021H DD 0500fH @@ -3806,42 +3768,47 @@ xed_decoded_inst_set_mode$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_noperands DD 025052a01H +$unwind$xed_decoded_inst_noperands DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_iclass DD 025052a01H +$unwind$xed_decoded_inst_get_iclass DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_category DD 025052a01H +$unwind$xed_decoded_inst_get_category DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_inst DD 025052a01H +$unwind$xed_decoded_inst_inst DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025063a01H +$unwind$xed_inst1 DD 025062301H DD 011e2323H DD 07017001cH DD 050156016H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 040H + DB 09eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_relbr DD 025064519H +$unwind$xed_relbr DD 025064719H DD 0118231dH DD 070110026H DD 0500f6010H @@ -3863,84 +3830,89 @@ xed_relbr$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_noperands DD 025052a01H +$unwind$xed_inst_noperands DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_category DD 025052a01H +$unwind$xed_inst_category DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iclass DD 025052a01H +$unwind$xed_inst_iclass DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iform_enum DD 025052a01H +$unwind$xed_inst_iform_enum DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_operand_type DD 025052a01H +$unwind$xed_operand_type DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_iform_to_iclass DD 025052801H +$unwind$xed_iform_to_iclass DD 025051201H DD 010d2312H DD 070060021H DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H +$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -3985,553 +3957,343 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 060H - DD imagerel $ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025051e19H +$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 060H - DD imagerel $ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025051801H + DD 01132318H + DD 0700c001fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025052f19H +$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025051801H DD 01132318H - DD 0700c001fH + DD 0700c0021H 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 -$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 +$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 + 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 ; 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 +$unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD 035051301H + DD 010e3313H + DD 070070027H + DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 03bH + DB 08aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025052f19H +$unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025054219H 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 + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 02H - DB 00H +; 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 -xdata ENDS + 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 -$cppxdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +$unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD 035052a19H - DD 010e3313H - DD 070070023H +$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025051301H + DD 010e2313H + DD 07007001fH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 02H - DB 00H - DB 00H +$unwind$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 060H - DD imagerel $ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ +$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025051801H + DD 01132318H + DD 0700c0021H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025052a19H +$unwind$??1_Iterator_base12@std@@QEAA@XZ DD 025051301H DD 010e2313H - DD 07007001fH + DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 02H - DB 00H - DB 00H +$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 060H - DD imagerel $ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z +$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025054019H - DD 01132318H - DD 0700c0029H - DD 0500bH - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z - DD 013bH +$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::_Adopt - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+2 -?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 DB 05fH ; std::_Iterator_base12::_Adopt - 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 -$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= +?_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 -??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcVarDesc DD 024H ; std::_Iterator_base12::operator= +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked DD 04H - DQ FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcName$0 + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 ORG $+48 -??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcFrameData DD 01H ; std::_Iterator_base12::operator= +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked DD 00H - DQ FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcVarDesc + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$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$??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 +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H DD 010e2313H - DD 07007001dH + DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Iterator_base12@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H DD 010e2313H - DD 070070025H + DD 07007001dH 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 +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 060H - DD imagerel $ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025050f01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0bad_array_new_length@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0bad_array_new_length@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0bad_array_new_length@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025052a19H +$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0bad_array_new_length@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z DB 060H - DD imagerel $ip2state$??0bad_alloc@std@@AEAA@QEBD@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1exception@std@@UEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1exception@std@@UEAA@XZ DB 060H - DD imagerel $ip2state$??1exception@std@@UEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1exception@std@@UEAA@XZ DD 025052a19H +$unwind$??1exception@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1exception@std@@UEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H - DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H - DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ DB 060H - DD imagerel $ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 045H + DB 0bfH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054a19H +$unwind$printf DD 025054c19H DD 011d2322H DD 07016002bH DD 05015H @@ -4560,117 +4322,52 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035053901H +$unwind$_vfprintf_l DD 035052201H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025051e01H +$unwind$__local_stdio_printf_options DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??2@YAPEAX_KPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H - DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H +$unwind$??2@YAPEAX_KPEAX@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -4680,13 +4377,70 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z _TEXT SEGMENT -_Ptr$ = 224 -??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT +$T1 = 200 +__formal$ = 256 +_Ptr$ = 264 +<_Args_0>$ = 272 +??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT + +; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00030 e8 00 00 00 00 call ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter + 00035 48 8b d0 mov rdx, rax + 00038 b9 04 00 00 00 mov ecx, 4 + 0003d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00042 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00049 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00050 e8 00 00 00 00 call ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward + 00055 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 0005c 8b 00 mov eax, DWORD PTR [rax] + 0005e 89 01 mov DWORD PTR [rcx], eax + +; 708 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 709 : if (_STD is_constant_evaluated()) { +; 710 : _STD construct_at(_Ptr, _STD forward<_Types>(_Args)...); +; 711 : } else +; 712 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 713 : { +; 714 : ::new (_Voidify_iter(_Ptr)) _Objty(_STD forward<_Types>(_Args)...); +; 715 : } +; 716 : } + + 00060 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ENDP ; std::_Default_allocator_traits >::construct +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; COMDAT ??$forward@K@std@@YA$$QEAKAEAK@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@K@std@@YA$$QEAKAEAK@Z PROC ; std::forward, COMDAT -; 261 : _Pointer _Refancy(_Pointer _Ptr) noexcept { +; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4695,44 +4449,341 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 262 : return _Ptr; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] +; 1444 : return static_cast<_Ty&&>(_Arg); -; 263 : } + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] - 0003d 48 8d a5 c8 00 +; 1445 : } + + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$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.27.29110\include\xutility +; 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 +_TEXT 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 +_TEXT SEGMENT +this$ = 224 +??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al >, COMDAT + +; 1605 : _CONSTEXPR20_DYNALLOC ~_Uninitialized_backout_al() { + +$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 + +; 1606 : _Destroy_range(_First, _Last, _Al); + + 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 + +; 1600 : : _First(_Dest), _Last(_Dest), _Al(_Al_) {} + +$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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0006c 5f pop rdi + 0006d 5d pop rbp + 0006e c3 ret 0 +??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ENDP ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z _TEXT SEGMENT -_First_ch$ = 8 -_Last_ch$ = 40 -_Dest_ch$ = 72 -_Count$ = 104 -_First$ = 352 -_Last$ = 360 -_Dest$ = 368 +_FirstPtr$ = 8 +_LastPtr$ = 40 +_DestPtr$ = 72 +_First_ch$ = 104 +_Last_ch$ = 136 +_Dest_ch$ = 168 +_Count$ = 200 +_First$ = 448 +_Last$ = 456 +_Dest$ = 464 ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z PROC ; std::_Copy_memmove, COMDAT -; 4113 : _OutIt _Copy_memmove(_InIt _First, _InIt _Last, _OutIt _Dest) { +; 4153 : _OutCtgIt _Copy_memmove(_CtgIt _First, _CtgIt _Last, _OutCtgIt _Dest) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -4740,76 +4791,134 @@ $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 68 01 - 00 00 sub rsp, 360 ; 00000168H + 00011 48 81 ec c8 01 + 00 00 sub rsp, 456 ; 000001c8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 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 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4115 : const char* const _Last_ch = const_cast(reinterpret_cast(_Last)); +; 4154 : auto _FirstPtr = _To_address(_First); - 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 + 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 -; 4116 : char* const _Dest_ch = const_cast(reinterpret_cast(_Dest)); +; 4155 : auto _LastPtr = _To_address(_Last); - 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 + 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 -; 4117 : const auto _Count = static_cast(_Last_ch - _First_ch); +; 4156 : auto _DestPtr = _To_address(_Dest); - 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 + 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 -; 4118 : _CSTD memmove(_Dest_ch, _First_ch, _Count); +; 4157 : const char* const _First_ch = const_cast(reinterpret_cast(_FirstPtr)); - 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 + 00059 48 8b 45 08 mov rax, QWORD PTR _FirstPtr$[rbp] + 0005d 48 89 45 68 mov QWORD PTR _First_ch$[rbp], rax -; 4119 : return reinterpret_cast<_OutIt>(_Dest_ch + _Count); +; 4158 : const char* const _Last_ch = const_cast(reinterpret_cast(_LastPtr)); - 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 + 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 -; 4120 : } +; 4159 : char* const _Dest_ch = const_cast(reinterpret_cast(_DestPtr)); - 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 + 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 + +; 4160 : 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 + +; 4161 : _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 + +; 4162 : if constexpr (is_pointer_v<_OutCtgIt>) { +; 4163 : return reinterpret_cast<_OutCtgIt>(_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 + +; 4164 : } else { +; 4165 : return _Dest + (_LastPtr - _FirstPtr); +; 4166 : } +; 4167 : } + + 000ba 48 8d a5 a8 01 + 00 00 lea rsp, QWORD PTR [rbp+424] + 000c1 5f pop rdi + 000c2 5d pop rbp + 000c3 c3 ret 0 ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ENDP ; std::_Copy_memmove _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; COMDAT ??$move@AEAK@std@@YA$$QEAKAEAK@Z +_TEXT SEGMENT +_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 _TEXT SEGMENT _It$ = 224 -??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT +??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT -; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4818,40 +4927,68 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1232 : return _It + 0; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1327 : return _It + 0; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _It$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 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 -; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); -; 1235 : } else { -; 1236 : return static_cast<_Iter&&>(_It); -; 1237 : } -; 1238 : } +; 1444 : return static_cast<_Ty&&>(_Arg); - 00040 48 8d a5 c8 00 + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1445 : } + + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 -??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ENDP ; std::_Get_unwrapped + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z _TEXT SEGMENT _First$ = 224 @@ -4860,7 +4997,7 @@ _Val$ = 240 __formal$ = 248 ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z PROC ; std::_Find_unchecked1, COMDAT -; 5130 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { +; 5298 : _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 @@ -4872,71 +5009,65 @@ $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 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 + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 5131 : // find first matching _Val -; 5132 : for (; _First != _Last; ++_First) { +; 5299 : // find first matching _Val +; 5300 : for (; _First != _Last; ++_First) { - 00045 eb 12 jmp SHORT $LN4@Find_unche + 0002e eb 12 jmp SHORT $LN4@Find_unche $LN2@Find_unche: - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _First$[rbp] - 0004e 48 83 c0 04 add rax, 4 - 00052 48 89 85 e0 00 + 00037 48 83 c0 04 add rax, 4 + 0003b 48 89 85 e0 00 00 00 mov QWORD PTR _First$[rbp], rax $LN4@Find_unche: - 00059 48 8b 85 e8 00 + 00042 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Last$[rbp] - 00060 48 39 85 e0 00 + 00049 48 39 85 e0 00 00 00 cmp QWORD PTR _First$[rbp], rax - 00067 74 18 je SHORT $LN3@Find_unche + 00050 74 18 je SHORT $LN3@Find_unche -; 5133 : if (*_First == _Val) { +; 5301 : if (*_First == _Val) { - 00069 48 8b 85 e0 00 + 00052 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _First$[rbp] - 00070 48 8b 8d f0 00 + 00059 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _Val$[rbp] - 00077 8b 09 mov ecx, DWORD PTR [rcx] - 00079 39 08 cmp DWORD PTR [rax], ecx - 0007b 75 02 jne SHORT $LN5@Find_unche + 00060 8b 09 mov ecx, DWORD PTR [rcx] + 00062 39 08 cmp DWORD PTR [rax], ecx + 00064 75 02 jne SHORT $LN5@Find_unche -; 5134 : break; +; 5302 : break; - 0007d eb 02 jmp SHORT $LN3@Find_unche + 00066 eb 02 jmp SHORT $LN3@Find_unche $LN5@Find_unche: -; 5135 : } -; 5136 : } +; 5303 : } +; 5304 : } - 0007f eb c6 jmp SHORT $LN2@Find_unche + 00068 eb c6 jmp SHORT $LN2@Find_unche $LN3@Find_unche: -; 5137 : -; 5138 : return _First; +; 5305 : +; 5306 : return _First; - 00081 48 8b 85 e0 00 + 0006a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _First$[rbp] -; 5139 : } +; 5307 : } - 00088 48 8d a5 c8 00 + 00071 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0008f 5f pop rdi - 00090 5d pop rbp - 00091 c3 ret 0 + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ENDP ; std::_Find_unchecked1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Get_size_of_n@$03@std@@YA_K_K@Z _TEXT SEGMENT _Overflow_is_possible$ = 4 @@ -4944,7 +5075,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 -; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4953,305 +5084,452 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 0001f 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; +; 61 : +; 62 : if constexpr (_Overflow_is_possible) { +; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 0003a 48 b8 ff ff ff + 00023 48 b8 ff ff ff ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 60 : if (_Count > _Max_possible) { +; 64 : if (_Count > _Max_possible) { - 00048 48 b8 ff ff ff + 00031 48 b8 ff ff ff ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 00052 48 39 85 20 01 + 0003b 48 39 85 20 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 00059 76 05 jbe SHORT $LN2@Get_size_o + 00042 76 05 jbe SHORT $LN2@Get_size_o -; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 65 : _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 + 00044 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; +; 66 : } +; 67 : } +; 68 : +; 69 : return _Count * _Ty_size; - 00060 48 8b 85 20 01 + 00049 48 8b 85 20 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00067 48 c1 e0 02 shl rax, 2 + 00050 48 c1 e0 02 shl rax, 2 $LN3@Get_size_o: -; 66 : } +; 70 : } - 0006b 48 8d a5 08 01 + 00054 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ??$_Get_size_of_n@$03@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<4> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _UFirst$ = 8 _ULast$ = 40 -_First$ = 288 -_Last$ = 296 -_Dest$ = 304 -_Al$ = 312 +_Backout$ = 72 +$T4 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z PROC ; std::_Uninitialized_move >, COMDAT -; 1647 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { +; 1693 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { -$LN3: +$LN7: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi - 00016 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H + 00016 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 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 + 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 -; 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); +; 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); - 00045 48 8d 8d 20 01 + 00058 48 8d 8d 70 01 00 00 lea rcx, QWORD PTR _First$[rbp] - 0004c e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped - 00051 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax + 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 -; 1652 : const auto _ULast = _Get_unwrapped(_Last); +; 1698 : const auto _ULast = _Get_unwrapped(_Last); - 00055 48 8d 8d 28 01 + 00068 48 8d 8d 78 01 00 00 lea rcx, QWORD PTR _Last$[rbp] - 0005c e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped - 00061 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax - -; 1653 : if constexpr (conjunction_v::_Really_trivial>, -; 1654 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { -; 1655 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); - - 00065 48 8b 8d 30 01 + 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] - 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 + 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] - 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 -; 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 + 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: -; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { +; 1714 : +; 1715 : return _Backout._Release(); -$LN13: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp + 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: + +; 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 +??$_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 +; 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 + +; 134 : __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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a 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; +; 135 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 136 : const size_t _Block_size = _Non_user_size + _Bytes; - 00036 48 8b 85 40 01 + 0001f 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 + 00026 48 83 c0 2f add rax, 47 ; 0000002fH + 0002a 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax -; 116 : if (_Block_size <= _Bytes) { +; 137 : if (_Block_size <= _Bytes) { - 00045 48 8b 85 40 01 + 0002e 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 + 00035 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00039 77 05 ja SHORT $LN8@Allocate_m -; 117 : _Throw_bad_array_new_length(); // add overflow +; 138 : _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 + 0003b 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)); +; 139 : } +; 140 : +; 141 : 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 + 00040 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] + 00044 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00049 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Allocate_m: -; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] +; 142 : _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 + 0004d 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 + 00052 74 02 je SHORT $LN9@Allocate_m + 00054 eb 6b jmp SHORT $LN10@Allocate_m $LN9@Allocate_m: $LN7@Allocate_m: - 0006d 48 8d 05 00 00 + 00056 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 + 0005d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00062 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 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 + 00069 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0006e 45 33 c9 xor r9d, r9d + 00071 41 b8 8e 00 00 + 00 mov r8d, 142 ; 0000008eH + 00077 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0007e b9 02 00 00 00 mov ecx, 2 + 00083 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 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 + 00089 83 f8 01 cmp eax, 1 + 0008c 75 03 jne SHORT $LN12@Allocate_m + 0008e cc int 3 + 0008f 33 c0 xor eax, eax $LN12@Allocate_m: - 000a8 48 c7 44 24 20 + 00091 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 + 0009a 41 b9 8e 00 00 + 00 mov r9d, 142 ; 0000008eH + 000a0 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000a7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ - 000c5 48 8d 0d 00 00 + 000ae 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000cc ff 15 00 00 00 + 000b5 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 + 000bb 33 c0 xor eax, eax + 000bd 85 c0 test eax, eax + 000bf 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 + 000c1 33 c0 xor eax, eax + 000c3 85 c0 test eax, eax + 000c5 75 86 jne SHORT $LN4@Allocate_m -; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); +; 143 : 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 + 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 -; 123 : static_cast(_Ptr)[-1] = _Ptr_container; +; 144 : 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 + 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 -; 124 : -; 125 : #ifdef _DEBUG -; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; +; 145 : +; 146 : #ifdef _DEBUG +; 147 : 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 + 000ec b8 08 00 00 00 mov eax, 8 + 000f1 48 6b c0 fe imul rax, rax, -2 + 000f5 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000f9 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 00103 48 89 14 01 mov QWORD PTR [rcx+rax], rdx -; 127 : #endif // _DEBUG -; 128 : return _Ptr; +; 148 : #endif // _DEBUG +; 149 : return _Ptr; - 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] + 00107 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] $LN11@Allocate_m: -; 129 : } +; 150 : } - 00122 48 8d a5 28 01 + 0010b 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00129 5f pop rdi - 0012a 5d pop rbp - 0012b c3 ret 0 + 00112 5f pop rdi + 00113 5d pop rbp + 00114 c3 ret 0 ??$_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\xutility +; 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 ; 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 -; 1417 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { +; 1427 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5261,40 +5539,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 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1428 : if constexpr (_Wrapped_seekable_v<_Iter, _UIter>) { +; 1429 : _It._Seek_to(_STD forward<_UIter>(_UIt)); + + 00024 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _UIt$[rbp] + 0002b e8 00 00 00 00 call ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ; std::forward + 00030 48 8b 10 mov rdx, QWORD PTR [rax] + 00033 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _It$[rbp] - 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 + 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 -; 1420 : } else { -; 1421 : _It = static_cast<_UIter&&>(_UIt); -; 1422 : } -; 1423 : } +; 1430 : } else { +; 1431 : _It = _STD forward<_UIter>(_UIt); +; 1432 : } +; 1433 : } - 00051 48 8d a5 c8 00 + 0003f 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 + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ENDP ; std::_Seek_wrapped > >,unsigned long *> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z _TEXT SEGMENT $T1 = 196 @@ -5303,7 +5576,7 @@ _Last$ = 264 _Val$ = 272 ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z PROC ; std::_Find_unchecked, COMDAT -; 5160 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { +; 5333 : _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 @@ -5314,57 +5587,47 @@ $LN3: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5334 : // find first matching _Val; choose optimization +; 5335 : // activate optimization for contiguous iterators to (const) bytes and integral values +; 5336 : return _Find_unchecked1(_First, _Last, _Val, bool_constant<_Memchr_in_find_is_safe<_InIt, _Ty>>{}); + + 00029 48 8d 85 c4 00 00 00 lea rax, QWORD PTR $T1[rbp] - 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 + 00030 48 8b f8 mov rdi, rax + 00033 33 c0 xor eax, eax + 00035 b9 01 00 00 00 mov ecx, 1 + 0003a f3 aa rep stosb + 0003c 44 0f b6 8d c4 00 00 00 movzx r9d, BYTE PTR $T1[rbp] - 0005b 4c 8b 85 10 01 + 00044 4c 8b 85 10 01 00 00 mov r8, QWORD PTR _Val$[rbp] - 00062 48 8b 95 08 01 + 0004b 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00069 48 8b 8d 00 01 + 00052 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 00070 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 + 00059 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 -; 5168 : } +; 5337 : } - 00075 48 8d a5 e8 00 + 0005e 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 + 00065 5f pop rdi + 00066 5d pop rbp + 00067 c3 ret 0 ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ENDP ; std::_Find_unchecked _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z _TEXT SEGMENT _It$ = 224 -??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > const &>, COMDAT +??$_Get_unwrapped@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 -; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5373,46 +5636,40 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1232 : return _It + 0; -; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); - - 00036 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR _It$[rbp] - 0003d e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + 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 -; 1235 : } else { -; 1236 : return static_cast<_Iter&&>(_It); -; 1237 : } -; 1238 : } +; 1330 : } else { +; 1331 : return static_cast<_Iter&&>(_It); +; 1332 : } +; 1333 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 -??$_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 &> + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 +??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > const &> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z _TEXT SEGMENT _It$ = 224 -??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > &>, COMDAT +??$_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 -; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5421,47 +5678,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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 + 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 00 00 mov rcx, QWORD PTR _It$[rbp] - 0003d e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + 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 -; 1235 : } else { -; 1236 : return static_cast<_Iter&&>(_It); -; 1237 : } -; 1238 : } +; 1330 : } else { +; 1331 : return static_cast<_Iter&&>(_It); +; 1332 : } +; 1333 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 -??$_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 > > &> + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 +??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > &> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z _TEXT SEGMENT _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 -; 1192 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { +; 1307 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5471,44 +5722,38 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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 + 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] - 00042 48 8b 8d e0 00 + 0002b 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 + 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 -; 1196 : } -; 1197 : } +; 1311 : } +; 1312 : } - 0004e 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00055 5f pop rdi - 00056 5d pop rbp - 00057 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ENDP ; std::_Adl_verify_range > >,std::_Vector_iterator > > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; 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 -; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 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 @@ -5517,32 +5762,64 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1444 : return static_cast<_Ty&&>(_Arg); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1456 : } +; 1445 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z PROC ; std::_Voidify_iter, COMDAT + +; 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@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ENDP ; std::_Voidify_iter +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z _TEXT SEGMENT _Val$ = 224 @@ -5557,39 +5834,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z _TEXT SEGMENT _Ptr$ = 224 _Bytes$ = 232 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5599,63 +5870,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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 215 : #if defined(_M_IX86) || defined(_M_X64) -; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0003b 48 81 bd e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 254 : if (_STD is_constant_evaluated()) { +; 255 : ::operator delete(_Ptr); +; 256 : } else +; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 258 : { +; 259 : #if defined(_M_IX86) || defined(_M_X64) +; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00024 48 81 bd e8 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00046 72 13 jb SHORT $LN2@Deallocate + 0002f 72 13 jb SHORT $LN2@Deallocate -; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00048 48 8d 95 e8 00 + 00031 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 0004f 48 8d 8d e0 00 + 00038 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 218 : } -; 219 : #endif // defined(_M_IX86) || defined(_M_X64) -; 220 : -; 221 : ::operator delete(_Ptr, _Bytes); +; 262 : } +; 263 : #endif // defined(_M_IX86) || defined(_M_X64) +; 264 : ::operator delete(_Ptr, _Bytes); - 0005b 48 8b 95 e8 00 + 00044 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 00062 48 8b 8d e0 00 + 0004b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 0006e 90 npad 1 + 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00057 90 npad 1 -; 222 : } +; 265 : } +; 266 : } - 0006f 48 8d a5 c8 00 + 00058 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_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) { +; 230 : __declspec(allocator) _CONSTEXPR20_DYNALLOC void* _Allocate(const size_t _Bytes) { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5664,68 +5935,67 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 231 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 232 : #if defined(_M_IX86) || defined(_M_X64) +; 233 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 234 : if (!_STD is_constant_evaluated()) +; 235 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 236 : { +; 237 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0001f 48 81 bd e0 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00041 72 0e jb SHORT $LN2@Allocate + 0002a 72 0e jb SHORT $LN2@Allocate -; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); +; 238 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); - 00043 48 8b 8d e0 00 + 0002c 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 + 00033 e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned + 00038 eb 1a jmp SHORT $LN1@Allocate $LN2@Allocate: -; 202 : } -; 203 : #endif // defined(_M_IX86) || defined(_M_X64) -; 204 : -; 205 : if (_Bytes != 0) { +; 239 : } +; 240 : } +; 241 : #endif // defined(_M_IX86) || defined(_M_X64) +; 242 : +; 243 : if (_Bytes != 0) { - 00051 48 83 bd e0 00 + 0003a 48 83 bd e0 00 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 - 00059 74 0e je SHORT $LN3@Allocate + 00042 74 0e je SHORT $LN3@Allocate -; 206 : return _Traits::_Allocate(_Bytes); +; 244 : return _Traits::_Allocate(_Bytes); - 0005b 48 8b 8d e0 00 + 00044 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 + 0004b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00050 eb 02 jmp SHORT $LN1@Allocate $LN3@Allocate: -; 207 : } -; 208 : -; 209 : return nullptr; +; 245 : } +; 246 : +; 247 : return nullptr; - 00069 33 c0 xor eax, eax + 00052 33 c0 xor eax, eax $LN1@Allocate: -; 210 : } +; 248 : } - 0006b 48 8d a5 c8 00 + 00054 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ??$_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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z _TEXT SEGMENT _Overflow_is_possible$ = 4 @@ -5733,7 +6003,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 -; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5742,61 +6012,55 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 0001f 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; +; 61 : +; 62 : if constexpr (_Overflow_is_possible) { +; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 0003a 48 b8 ff ff ff + 00023 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 + 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 60 : if (_Count > _Max_possible) { +; 64 : if (_Count > _Max_possible) { - 00048 48 b8 ff ff ff + 00031 48 b8 ff ff ff ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 00052 48 39 85 20 01 + 0003b 48 39 85 20 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 00059 76 05 jbe SHORT $LN2@Get_size_o + 00042 76 05 jbe SHORT $LN2@Get_size_o -; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 65 : _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 + 00044 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; +; 66 : } +; 67 : } +; 68 : +; 69 : return _Count * _Ty_size; - 00060 48 6b 85 20 01 + 00049 48 6b 85 20 01 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 $LN3@Get_size_o: -; 66 : } +; 70 : } - 00068 48 8d a5 08 01 + 00051 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 + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _First$ = 224 @@ -5804,7 +6068,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -5815,35 +6079,28 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - -; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 957 : using _Ty = typename _Alloc::value_type; -; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 959 : for (; _First != _Last; ++_First) { -; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 961 : } -; 962 : } -; 963 : } - - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 947 : using _Ty = typename _Alloc::value_type; +; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 949 : for (; _First != _Last; ++_First) { +; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 951 : } +; 952 : } +; 953 : } + + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z _TEXT SEGMENT _Ptr$ = 224 @@ -5858,32 +6115,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$_Unfancy@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\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility ; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z _TEXT SEGMENT $T1 = 200 @@ -5892,7 +6143,7 @@ _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 */ { +; 66 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5902,61 +6153,55 @@ $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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 68 : // return smaller of _Left and _Right -; 69 : return _Right < _Left ? _Right : _Left; +; 67 : // return smaller of _Left and _Right +; 68 : return _Right < _Left ? _Right : _Left; - 0003b 48 8b 85 08 01 + 00024 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00042 48 8b 8d 00 01 + 0002b 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 + 00032 48 8b 09 mov rcx, QWORD PTR [rcx] + 00035 48 39 08 cmp QWORD PTR [rax], rcx + 00038 73 10 jae SHORT $LN3@min + 0003a 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00058 48 89 85 d8 00 + 00041 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax - 0005f eb 0e jmp SHORT $LN4@min + 00048 eb 0e jmp SHORT $LN4@min $LN3@min: - 00061 48 8b 85 00 01 + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00068 48 89 85 d8 00 + 00051 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax $LN4@min: - 0006f 48 8b 85 d8 00 + 00058 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv65[rbp] - 00076 48 89 85 c8 00 + 0005f 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0007d 48 8b 85 c8 00 + 00066 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] -; 70 : } +; 69 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ??$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\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ _TEXT SEGMENT this$ = 224 ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT -; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { +; 124 : explicit __CLR_OR_THIS_CALL operator bool() const { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5965,33 +6210,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 126 : return _Ok; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 125 : return _Ok; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] + 00026 0f b6 40 08 movzx eax, BYTE PTR [rax+8] -; 127 : } +; 126 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ??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.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Zero_uncaught_exceptions$ = 4 @@ -5999,7 +6238,7 @@ tv72 = 212 this$ = 256 ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT -; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { +; 109 : __CLR_OR_THIS_CALL ~sentry() noexcept { $LN6: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6008,71 +6247,65 @@ $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 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 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 110 : #if !_HAS_EXCEPTIONS +; 111 : const bool _Zero_uncaught_exceptions = true; +; 112 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 113 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 + + 0001f e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception + 00024 0f b6 c0 movzx eax, al + 00027 85 c0 test eax, eax + 00029 75 09 jne SHORT $LN4@sentry + 0002b c6 85 d4 00 00 00 01 mov BYTE PTR tv72[rbp], 1 - 00049 eb 07 jmp SHORT $LN5@sentry + 00032 eb 07 jmp SHORT $LN5@sentry $LN4@sentry: - 0004b c6 85 d4 00 00 + 00034 c6 85 d4 00 00 00 00 mov BYTE PTR tv72[rbp], 0 $LN5@sentry: - 00052 0f b6 85 d4 00 + 0003b 0f b6 85 d4 00 00 00 movzx eax, BYTE PTR tv72[rbp] - 00059 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al + 00042 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al -; 115 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv -; 116 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; -; 117 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 118 : -; 119 : if (_Zero_uncaught_exceptions) { +; 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) { - 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 + 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 -; 120 : this->_Myostr._Osfx(); +; 119 : this->_Myostr._Osfx(); - 00064 48 8b 85 00 01 + 0004d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ $LN2@sentry: -; 121 : } -; 122 : } +; 120 : } +; 121 : } - 00074 48 8b 8d 00 01 + 0005d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00080 90 npad 1 - 00081 48 8d a5 e8 00 + 00064 e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00069 90 npad 1 + 0006a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Tied$ = 8 @@ -6090,124 +6323,117 @@ $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 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 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00042 48 8b 8d 00 01 + 0002b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base - 0004e 90 npad 1 + 00032 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base + 00037 90 npad 1 ; 93 : if (!_Ostr.good()) { - 0004f 48 8b 85 08 01 + 00038 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00056 48 8b 00 mov rax, QWORD PTR [rax] - 00059 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005d 48 8b 8d 08 01 + 0003f 48 8b 00 mov rax, QWORD PTR [rax] + 00042 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00046 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 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 + 0004d 48 03 c8 add rcx, rax + 00050 48 8b c1 mov rax, rcx + 00053 48 8b c8 mov rcx, rax + 00056 ff 15 00 00 00 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00073 0f b6 c0 movzx eax, al - 00076 85 c0 test eax, eax - 00078 75 10 jne SHORT $LN2@sentry + 0005c 0f b6 c0 movzx eax, al + 0005f 85 c0 test eax, eax + 00061 75 10 jne SHORT $LN2@sentry ; 94 : _Ok = false; - 0007a 48 8b 85 00 01 + 00063 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 + 0006a c6 40 08 00 mov BYTE PTR [rax+8], 0 ; 95 : return; - 00085 e9 81 00 00 00 jmp $LN1@sentry + 0006e e9 81 00 00 00 jmp $LN1@sentry $LN2@sentry: ; 96 : } ; 97 : ; 98 : const auto _Tied = _Ostr.tie(); - 0008a 48 8b 85 08 01 + 00073 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00091 48 8b 00 mov rax, QWORD PTR [rax] - 00094 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00098 48 8b 8d 08 01 + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00081 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 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 + 00088 48 03 c8 add rcx, rax + 0008b 48 8b c1 mov rax, rcx + 0008e 48 8b c8 mov rcx, rax + 00091 ff 15 00 00 00 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ - 000ae 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax + 00097 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax ; 99 : if (!_Tied || _Tied == &_Ostr) { - 000b2 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 - 000b7 74 0d je SHORT $LN4@sentry - 000b9 48 8b 85 08 01 + 0009b 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 + 000a0 74 0d je SHORT $LN4@sentry + 000a2 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000c4 75 0d jne SHORT $LN3@sentry + 000a9 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax + 000ad 75 0d jne SHORT $LN3@sentry $LN4@sentry: ; 100 : _Ok = true; - 000c6 48 8b 85 00 01 + 000af 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 + 000b6 c6 40 08 01 mov BYTE PTR [rax+8], 1 ; 101 : return; - 000d1 eb 38 jmp SHORT $LN1@sentry + 000ba eb 38 jmp SHORT $LN1@sentry $LN3@sentry: ; 102 : } ; 103 : -; 104 : -; 105 : _Tied->flush(); +; 104 : _Tied->flush(); - 000d3 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000d7 ff 15 00 00 00 + 000bc 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] + 000c0 ff 15 00 00 00 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ -; 106 : _Ok = _Ostr.good(); // store test only after flushing tie +; 105 : _Ok = _Ostr.good(); // store test only after flushing tie - 000dd 48 8b 85 08 01 + 000c6 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000e4 48 8b 00 mov rax, QWORD PTR [rax] - 000e7 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000eb 48 8b 8d 08 01 + 000cd 48 8b 00 mov rax, QWORD PTR [rax] + 000d0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000d4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 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 + 000db 48 03 c8 add rcx, rax + 000de 48 8b c1 mov rax, rcx + 000e1 48 8b c8 mov rcx, rax + 000e4 ff 15 00 00 00 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00101 48 8b 8d 00 01 + 000ea 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00108 88 41 08 mov BYTE PTR [rcx+8], al + 000f1 88 41 08 mov BYTE PTR [rcx+8], al $LN1@sentry: -; 107 : } +; 106 : } - 0010b 48 8b 85 00 01 + 000f4 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 8d a5 e8 00 + 000fb 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00119 5f pop rdi - 0011a 5d pop rbp - 0011b c3 ret 0 + 00102 5f pop rdi + 00103 5d pop rbp + 00104 c3 ret 0 ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry _TEXT ENDS ; COMDAT text$x @@ -6254,7 +6480,7 @@ _Ostr$ = 264 ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Rdbuf$ = 8 @@ -6271,62 +6497,56 @@ $LN4: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 79 : const auto _Rdbuf = _Myostr.rdbuf(); - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 85 d8 00 + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 85 d8 00 00 00 mov QWORD PTR tv72[rbp], rax - 00047 48 8b 85 d8 00 + 00030 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv72[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00055 48 8b 8d d8 00 + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0003e 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv72[rbp] - 0005c 48 03 c8 add rcx, rax - 0005f 48 8b c1 mov rax, rcx - 00062 48 8b c8 mov rcx, rax - 00065 ff 15 00 00 00 + 00045 48 03 c8 add rcx, rax + 00048 48 8b c1 mov rax, rcx + 0004b 48 8b c8 mov rcx, rax + 0004e ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 00054 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 80 : if (_Rdbuf) { - 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00074 74 0f je SHORT $LN2@Sentry_bas + 00058 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0005d 74 0f je SHORT $LN2@Sentry_bas ; 81 : _Rdbuf->_Unlock(); - 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00081 ff 50 10 call QWORD PTR [rax+16] - 00084 90 npad 1 + 0005f 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00063 48 8b 00 mov rax, QWORD PTR [rax] + 00066 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 0006a ff 50 10 call QWORD PTR [rax+16] + 0006d 90 npad 1 $LN2@Sentry_bas: ; 82 : } ; 83 : } - 00085 48 8d a5 e8 00 + 0006e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Rdbuf$ = 8 @@ -6345,68 +6565,62 @@ $LN4: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d 08 01 + 0002b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00032 48 89 08 mov QWORD PTR [rax], rcx ; 72 : const auto _Rdbuf = _Myostr.rdbuf(); - 0004c 48 8b 85 00 01 + 00035 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 89 85 d8 00 + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 89 85 d8 00 00 00 mov QWORD PTR tv73[rbp], rax - 0005d 48 8b 85 d8 00 + 00046 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv73[rbp] - 00064 48 8b 00 mov rax, QWORD PTR [rax] - 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0006b 48 8b 8d d8 00 + 0004d 48 8b 00 mov rax, QWORD PTR [rax] + 00050 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00054 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv73[rbp] - 00072 48 03 c8 add rcx, rax - 00075 48 8b c1 mov rax, rcx - 00078 48 8b c8 mov rcx, rax - 0007b ff 15 00 00 00 + 0005b 48 03 c8 add rcx, rax + 0005e 48 8b c1 mov rax, rcx + 00061 48 8b c8 mov rcx, rax + 00064 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 0006a 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 73 : if (_Rdbuf) { - 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0008a 74 0e je SHORT $LN2@Sentry_bas + 0006e 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00073 74 0e je SHORT $LN2@Sentry_bas ; 74 : _Rdbuf->_Lock(); - 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00090 48 8b 00 mov rax, QWORD PTR [rax] - 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00097 ff 50 08 call QWORD PTR [rax+8] + 00075 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00079 48 8b 00 mov rax, QWORD PTR [rax] + 0007c 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00080 ff 50 08 call QWORD PTR [rax+8] $LN2@Sentry_bas: ; 75 : } ; 76 : } - 0009a 48 8b 85 00 01 + 00083 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8d a5 e8 00 + 0008a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z _TEXT SEGMENT _New_proxy$ = 8 @@ -6415,7 +6629,7 @@ this$ = 288 _Al$ = 296 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT -; 1101 : void _Alloc_proxy(_Alloc&& _Al) { +; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6425,69 +6639,63 @@ $LN3: 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1102 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); - - 0003b ba 01 00 00 00 mov edx, 1 - 00040 48 8b 8d 28 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); + + 00024 ba 01 00 00 00 mov edx, 1 + 00029 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00047 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate - 0004c 48 8b c8 mov rcx, rax - 0004f e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy - 00054 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax + 00030 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy + 0003d 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax -; 1103 : _Construct_in_place(*_New_proxy, this); +; 1075 : _Construct_in_place(*_New_proxy, this); - 00058 48 8b 85 20 01 + 00041 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 89 85 e8 00 + 00048 48 89 85 e8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8d 95 e8 00 + 0004f 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 00071 e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place + 00056 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 0005a e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place -; 1104 : _Myproxy = _New_proxy; +; 1076 : _Myproxy = _New_proxy; - 00076 48 8b 85 20 01 + 0005f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 00081 48 89 08 mov QWORD PTR [rax], rcx + 00066 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 0006a 48 89 08 mov QWORD PTR [rax], rcx -; 1105 : _New_proxy->_Mycont = this; +; 1077 : _New_proxy->_Mycont = this; - 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] - 00088 48 8b 8d 20 01 + 0006d 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00071 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008f 48 89 08 mov QWORD PTR [rax], rcx + 00078 48 89 08 mov QWORD PTR [rax], rcx -; 1106 : } +; 1078 : } - 00092 48 8d a5 08 01 + 0007b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00099 5f pop rdi - 0009a 5d pop rbp - 0009b c3 ret 0 + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><>, COMDAT -; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} +; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -6497,40 +6705,34 @@ $LN3: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003a 48 8b 8d e0 00 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00041 e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator - 00046 48 8b 85 e0 00 + 0002a e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 48 8b c8 mov rcx, rax - 00050 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > - 00055 48 8b 85 e0 00 + 00036 48 8b c8 mov rcx, rax + 00039 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > + 0003e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005c 48 8d a5 c8 00 + 00045 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 + 0004c 5f pop rdi + 0004d 5d pop rbp + 0004e c3 ret 0 ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6540,33 +6742,27 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT -; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6576,35 +6772,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> - 00047 48 8b c8 mov rcx, rax - 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 808 : } +; 840 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z _TEXT SEGMENT _Al$ = 8 @@ -6625,7 +6815,7 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z PROC ; std::vector >::_Emplace_reallocate, COMDAT -; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { +; 765 : _CONSTEXPR20_CONTAINER pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { $LN13: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6636,265 +6826,259 @@ $LN13: 00011 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 96 00 00 00 mov ecx, 150 ; 00000096H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 02 00 00 mov rcx, QWORD PTR [rsp+632] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr -; 727 : _Alty& _Al = _Getal(); +; 766 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 767 : _Alty& _Al = _Getal(); - 00040 48 8b 8d 50 02 + 00029 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 48 89 45 08 mov QWORD PTR _Al$[rbp], rax + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 48 89 45 08 mov QWORD PTR _Al$[rbp], rax -; 728 : auto& _My_data = _Mypair._Myval2; +; 768 : auto& _My_data = _Mypair._Myval2; - 00050 48 8b 85 50 02 + 00039 48 8b 85 50 02 00 00 mov rax, QWORD PTR this$[rbp] - 00057 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax + 00040 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax -; 729 : pointer& _Myfirst = _My_data._Myfirst; +; 769 : pointer& _Myfirst = _My_data._Myfirst; - 0005b 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] - 0005f 48 83 c0 08 add rax, 8 - 00063 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax + 00044 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00048 48 83 c0 08 add rax, 8 + 0004c 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax -; 730 : pointer& _Mylast = _My_data._Mylast; +; 770 : pointer& _Mylast = _My_data._Mylast; - 00067 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] - 0006b 48 83 c0 10 add rax, 16 - 0006f 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax + 00050 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 10 add rax, 16 + 00058 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax -; 731 : -; 732 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity -; 733 : -; 734 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); +; 771 : +; 772 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity +; 773 : +; 774 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); - 00073 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 00077 48 8b 00 mov rax, QWORD PTR [rax] - 0007a 48 8b 8d 58 02 + 0005c 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 00060 48 8b 00 mov rax, QWORD PTR [rax] + 00063 48 8b 8d 58 02 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] - 00081 48 2b c8 sub rcx, rax - 00084 48 8b c1 mov rax, rcx - 00087 48 c1 f8 02 sar rax, 2 - 0008b 48 89 85 88 00 + 0006a 48 2b c8 sub rcx, rax + 0006d 48 8b c1 mov rax, rcx + 00070 48 c1 f8 02 sar rax, 2 + 00074 48 89 85 88 00 00 00 mov QWORD PTR _Whereoff$[rbp], rax -; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); +; 775 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); - 00092 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 00096 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] - 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0009d 48 8b 00 mov rax, QWORD PTR [rax] - 000a0 48 2b c1 sub rax, rcx - 000a3 48 c1 f8 02 sar rax, 2 - 000a7 48 89 85 a8 00 + 0007b 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0007f 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 00083 48 8b 09 mov rcx, QWORD PTR [rcx] + 00086 48 8b 00 mov rax, QWORD PTR [rax] + 00089 48 2b c1 sub rax, rcx + 0008c 48 c1 f8 02 sar rax, 2 + 00090 48 89 85 a8 00 00 00 mov QWORD PTR _Oldsize$[rbp], rax -; 736 : -; 737 : if (_Oldsize == max_size()) { +; 776 : +; 777 : if (_Oldsize == max_size()) { - 000ae 48 8b 8d 50 02 + 00097 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000b5 e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size - 000ba 48 39 85 a8 00 + 0009e e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size + 000a3 48 39 85 a8 00 00 00 cmp QWORD PTR _Oldsize$[rbp], rax - 000c1 75 05 jne SHORT $LN2@Emplace_re + 000aa 75 05 jne SHORT $LN2@Emplace_re -; 738 : _Xlength(); +; 778 : _Xlength(); - 000c3 e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength + 000ac e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength $LN2@Emplace_re: -; 739 : } -; 740 : -; 741 : const size_type _Newsize = _Oldsize + 1; +; 779 : } +; 780 : +; 781 : const size_type _Newsize = _Oldsize + 1; - 000c8 48 8b 85 a8 00 + 000b1 48 8b 85 a8 00 00 00 mov rax, QWORD PTR _Oldsize$[rbp] - 000cf 48 ff c0 inc rax - 000d2 48 89 85 c8 00 + 000b8 48 ff c0 inc rax + 000bb 48 89 85 c8 00 00 00 mov QWORD PTR _Newsize$[rbp], rax -; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); +; 782 : const size_type _Newcapacity = _Calculate_growth(_Newsize); - 000d9 48 8b 95 c8 00 + 000c2 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR _Newsize$[rbp] - 000e0 48 8b 8d 50 02 + 000c9 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000e7 e8 00 00 00 00 call ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth - 000ec 48 89 85 e8 00 + 000d0 e8 00 00 00 00 call ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth + 000d5 48 89 85 e8 00 00 00 mov QWORD PTR _Newcapacity$[rbp], rax -; 743 : -; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); +; 783 : +; 784 : const pointer _Newvec = _Al.allocate(_Newcapacity); - 000f3 48 8b 95 e8 00 + 000dc 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] - 000fa 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 000fe e8 00 00 00 00 call ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate - 00103 48 89 85 08 01 + 000e3 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 000e7 e8 00 00 00 00 call ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate + 000ec 48 89 85 08 01 00 00 mov QWORD PTR _Newvec$[rbp], rax -; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; +; 785 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; - 0010a 48 8b 85 08 01 + 000f3 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00111 48 8b 8d 88 00 + 000fa 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00118 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 0011d 48 89 85 28 01 + 00101 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 00106 48 89 85 28 01 00 00 mov QWORD PTR _Constructed_last$[rbp], rax -; 746 : pointer _Constructed_first = _Constructed_last; +; 786 : pointer _Constructed_first = _Constructed_last; - 00124 48 8b 85 28 01 + 0010d 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] - 0012b 48 89 85 48 01 + 00114 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 747 : -; 748 : _TRY_BEGIN -; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); +; 787 : +; 788 : _TRY_BEGIN +; 789 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); - 00132 48 8b 8d 60 02 + 0011b 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00139 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0013e 48 89 85 18 02 + 00122 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00127 48 89 85 18 02 00 00 mov QWORD PTR tv134[rbp], rax - 00145 48 8b 85 08 01 + 0012e 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0014c 48 8b 8d 88 00 + 00135 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00153 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00157 48 8b c8 mov rcx, rax - 0015a e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 0015f 48 89 85 20 02 + 0013c 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00140 48 8b c8 mov rcx, rax + 00143 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00148 48 89 85 20 02 00 00 mov QWORD PTR tv132[rbp], rax - 00166 4c 8b 85 18 02 + 0014f 4c 8b 85 18 02 00 00 mov r8, QWORD PTR tv134[rbp] - 0016d 48 8b 95 20 02 + 00156 48 8b 95 20 02 00 00 mov rdx, QWORD PTR tv132[rbp] - 00174 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 00178 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + 0015d 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00161 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct -; 750 : _Constructed_first = _Newvec + _Whereoff; +; 790 : _Constructed_first = _Newvec + _Whereoff; - 0017d 48 8b 85 08 01 + 00166 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00184 48 8b 8d 88 00 + 0016d 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 0018b 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 0018f 48 89 85 48 01 + 00174 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00178 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 751 : -; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee +; 791 : +; 792 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee - 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 0019a 48 8b 00 mov rax, QWORD PTR [rax] - 0019d 48 39 85 58 02 + 0017f 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00183 48 8b 00 mov rax, QWORD PTR [rax] + 00186 48 39 85 58 02 00 00 cmp QWORD PTR _Whereptr$[rbp], rax - 001a4 75 23 jne SHORT $LN4@Emplace_re + 0018d 75 23 jne SHORT $LN4@Emplace_re -; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); +; 793 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); - 001a6 4c 8b 8d 08 01 + 0018f 4c 8b 8d 08 01 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 001ad 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 001b1 4c 8b 00 mov r8, QWORD PTR [rax] - 001b4 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 001b8 48 8b 10 mov rdx, QWORD PTR [rax] - 001bb 48 8b 8d 50 02 + 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0019a 4c 8b 00 mov r8, QWORD PTR [rax] + 0019d 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001a1 48 8b 10 mov rdx, QWORD PTR [rax] + 001a4 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 001c2 e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept + 001ab e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept -; 754 : } else { // provide basic guarantee +; 794 : } else { // provide basic guarantee - 001c7 eb 60 jmp SHORT $LN5@Emplace_re + 001b0 eb 60 jmp SHORT $LN5@Emplace_re $LN4@Emplace_re: -; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); +; 795 : _Umove(_Myfirst, _Whereptr, _Newvec); - 001c9 4c 8b 8d 08 01 + 001b2 4c 8b 8d 08 01 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 001d0 4c 8b 85 58 02 + 001b9 4c 8b 85 58 02 00 00 mov r8, QWORD PTR _Whereptr$[rbp] - 001d7 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 001db 48 8b 10 mov rdx, QWORD PTR [rax] - 001de 48 8b 8d 50 02 + 001c0 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001c4 48 8b 10 mov rdx, QWORD PTR [rax] + 001c7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 001e5 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 001ce e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove -; 756 : _Constructed_first = _Newvec; +; 796 : _Constructed_first = _Newvec; - 001ea 48 8b 85 08 01 + 001d3 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001f1 48 89 85 48 01 + 001da 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); +; 797 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); - 001f8 48 8b 85 08 01 + 001e1 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001ff 48 8b 8d 88 00 + 001e8 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00206 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 0020b 4c 8b c8 mov r9, rax - 0020e 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 00212 4c 8b 00 mov r8, QWORD PTR [rax] - 00215 48 8b 95 58 02 + 001ef 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 001f4 4c 8b c8 mov r9, rax + 001f7 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001fb 4c 8b 00 mov r8, QWORD PTR [rax] + 001fe 48 8b 95 58 02 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] - 0021c 48 8b 8d 50 02 + 00205 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00223 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove - 00228 90 npad 1 + 0020c e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 00211 90 npad 1 $LN5@Emplace_re: - 00229 eb 00 jmp SHORT $LN9@Emplace_re + 00212 eb 00 jmp SHORT $LN9@Emplace_re $LN10@Emplace_re: $LN9@Emplace_re: -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); -; 762 : _RERAISE; -; 763 : _CATCH_END -; 764 : -; 765 : _Change_array(_Newvec, _Newsize, _Newcapacity); +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 802 : _RERAISE; +; 803 : _CATCH_END +; 804 : +; 805 : _Change_array(_Newvec, _Newsize, _Newcapacity); - 0022b 4c 8b 8d e8 00 + 00214 4c 8b 8d e8 00 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] - 00232 4c 8b 85 c8 00 + 0021b 4c 8b 85 c8 00 00 00 mov r8, QWORD PTR _Newsize$[rbp] - 00239 48 8b 95 08 01 + 00222 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Newvec$[rbp] - 00240 48 8b 8d 50 02 + 00229 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00247 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array + 00230 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array -; 766 : return _Newvec + _Whereoff; +; 806 : return _Newvec + _Whereoff; - 0024c 48 8b 85 08 01 + 00235 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00253 48 8b 8d 88 00 + 0023c 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 0025a 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00243 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] -; 767 : } +; 807 : } - 0025e 48 8d a5 38 02 + 00247 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 00265 5f pop rdi - 00266 5d pop rbp - 00267 c3 ret 0 + 0024e 5f pop rdi + 0024f 5d pop rbp + 00250 c3 ret 0 $LN11@Emplace_re: ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ENDP ; std::vector >::_Emplace_reallocate _TEXT ENDS @@ -6918,8 +7102,8 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 -; 758 : } -; 759 : _CATCH_ALL +; 798 : } +; 799 : _CATCH_ALL 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6929,9 +7113,9 @@ _Whereptr$ = 600 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); 00014 4c 8b 85 28 01 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] @@ -6941,10 +7125,10 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 00 00 mov rcx, QWORD PTR this$[rbp] 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); 0002e 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] @@ -6953,23 +7137,23 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); -; 762 : _RERAISE; +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 802 : _RERAISE; 00045 33 d2 xor edx, edx 00047 33 c9 xor ecx, ecx 00049 e8 00 00 00 00 call _CxxThrowException 0004e 90 npad 1 -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); -; 762 : _RERAISE; -; 763 : _CATCH_END +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 802 : _RERAISE; +; 803 : _CATCH_END 0004f 48 8d 05 00 00 00 00 lea rax, $LN10@catch$0 @@ -7001,7 +7185,7 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 -; 759 : _CATCH_ALL +; 799 : _CATCH_ALL 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7011,7 +7195,7 @@ _Whereptr$ = 600 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: -; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 800 : _Destroy(_Constructed_first, _Constructed_last); 00014 4c 8b 85 28 01 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] @@ -7021,7 +7205,7 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 00 00 mov rcx, QWORD PTR this$[rbp] 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); 0002e 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] @@ -7030,14 +7214,14 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 762 : _RERAISE; +; 802 : _RERAISE; 00045 33 d2 xor edx, edx 00047 33 c9 xor ecx, ecx 00049 e8 00 00 00 00 call _CxxThrowException 0004e 90 npad 1 -; 763 : _CATCH_END +; 803 : _CATCH_END 0004f 48 8d 05 00 00 00 00 lea rax, $LN10@catch$0 @@ -7049,7 +7233,7 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA ENDP ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z _TEXT SEGMENT $T1 = 200 @@ -7058,7 +7242,7 @@ _Ptr$ = 264 <_Args_0>$ = 272 ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT -; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { +; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7069,41 +7253,44 @@ $LN3: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00047 b9 04 00 00 00 mov ecx, 4 - 0004c e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00051 48 89 85 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00030 e8 00 00 00 00 call ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter + 00035 48 8b d0 mov rdx, rax + 00038 b9 04 00 00 00 mov ecx, 4 + 0003d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00042 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00058 48 8b 8d 10 01 + 00049 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 0005f e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00064 48 8b 8d c8 00 + 00050 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00055 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0006b 8b 00 mov eax, DWORD PTR [rax] - 0006d 89 01 mov DWORD PTR [rcx], eax - -; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); -; 695 : } - - 0006f 48 8d a5 e8 00 + 0005c 8b 00 mov eax, DWORD PTR [rax] + 0005e 89 01 mov DWORD PTR [rcx], eax + +; 708 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 709 : if (_STD is_constant_evaluated()) { +; 710 : _STD construct_at(_Ptr, _STD forward<_Types>(_Args)...); +; 711 : } else +; 712 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 713 : { +; 714 : ::new (_Voidify_iter(_Ptr)) _Objty(_STD forward<_Types>(_Args)...); +; 715 : } +; 716 : } + + 00060 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ENDP ; std::_Default_allocator_traits >::construct _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$_Unfancy@K@std@@YAPEAKPEAK@Z _TEXT SEGMENT _Ptr$ = 224 @@ -7118,33 +7305,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$_Unfancy@K@std@@YAPEAKPEAK@Z ENDP ; std::_Unfancy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector -; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z _TEXT SEGMENT _My_data$ = 8 _Mylast$ = 40 @@ -7154,9 +7335,9 @@ tv79 = 288 tv77 = 296 this$ = 336 <_Val_0>$ = 344 -??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z PROC ; std::vector >::_Emplace_back_with_unused_capacity, COMDAT +??$_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 -; 682 : decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { +; 721 : _CONSTEXPR20_CONTAINER decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7166,104 +7347,98 @@ $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 8b fc mov rdi, rsp - 0001b b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 684 : auto& _My_data = _Mypair._Myval2; +; 722 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 723 : auto& _My_data = _Mypair._Myval2; - 0003b 48 8b 85 50 01 + 00024 48 8b 85 50 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 685 : pointer& _Mylast = _My_data._Mylast; +; 724 : pointer& _Mylast = _My_data._Mylast; - 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0004a 48 83 c0 10 add rax, 16 - 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + 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 -; 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)...); +; 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)...); - 00052 48 8b 8d 58 01 + 0003b 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00059 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0005e 48 89 85 18 01 + 00042 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00047 48 89 85 18 01 00 00 mov QWORD PTR tv81[rbp], rax - 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 + 0004e 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00052 48 8b 08 mov rcx, QWORD PTR [rax] + 00055 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 0005a 48 89 85 20 01 00 00 mov QWORD PTR tv79[rbp], rax - 00078 48 8b 8d 50 01 + 00061 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007f e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00084 48 89 85 28 01 + 00068 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0006d 48 89 85 28 01 00 00 mov QWORD PTR tv77[rbp], rax - 0008b 4c 8b 85 18 01 + 00074 4c 8b 85 18 01 00 00 mov r8, QWORD PTR tv81[rbp] - 00092 48 8b 95 20 01 + 0007b 48 8b 95 20 01 00 00 mov rdx, QWORD PTR tv79[rbp] - 00099 48 8b 8d 28 01 + 00082 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR tv77[rbp] - 000a0 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + 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 -; 688 : _Orphan_range(_Mylast, _Mylast); +; 727 : _Orphan_range(_Mylast, _Mylast); - 000a5 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000a9 4c 8b 00 mov r8, QWORD PTR [rax] - 000ac 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000b0 48 8b 10 mov rdx, QWORD PTR [rax] - 000b3 48 8b 8d 50 01 + 0008e 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00092 4c 8b 00 mov r8, QWORD PTR [rax] + 00095 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00099 48 8b 10 mov rdx, QWORD PTR [rax] + 0009c 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ba e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range + 000a3 e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range -; 689 : _Ty& _Result = *_Mylast; +; 728 : _Ty& _Result = *_Mylast; - 000bf 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000c3 48 8b 00 mov rax, QWORD PTR [rax] - 000c6 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + 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 -; 690 : ++_Mylast; +; 729 : ++_Mylast; - 000ca 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000ce 48 8b 00 mov rax, QWORD PTR [rax] - 000d1 48 83 c0 04 add rax, 4 - 000d5 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] - 000d9 48 89 01 mov QWORD PTR [rcx], rax + 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 -; 691 : #if _HAS_CXX17 -; 692 : return _Result; +; 730 : #if _HAS_CXX17 +; 731 : return _Result; - 000dc 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + 000c5 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] -; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv -; 694 : (void) _Result; -; 695 : #endif // _HAS_CXX17 -; 696 : } +; 732 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 733 : (void) _Result; +; 734 : #endif // _HAS_CXX17 +; 735 : } - 000e0 48 8d a5 38 01 + 000c9 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000e7 5f pop rdi - 000e8 5d pop rbp - 000e9 c3 ret 0 -??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity + 000d0 5f pop rdi + 000d1 5d pop rbp + 000d2 c3 ret 0 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits ; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z _TEXT SEGMENT _Arg$ = 224 ??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT -; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 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 @@ -7272,33 +7447,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1444 : return static_cast<_Ty&&>(_Arg); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1456 : } +; 1445 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector -; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z _TEXT SEGMENT _My_data$ = 8 _Mylast$ = 40 @@ -7307,9 +7476,9 @@ tv83 = 280 tv81 = 288 this$ = 336 <_Val_0>$ = 344 -??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z PROC ; std::vector >::emplace_back, COMDAT +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z PROC ; std::vector >::emplace_back, COMDAT -; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { +; 739 : _CONSTEXPR20_CONTAINER decltype(auto) emplace_back(_Valty&&... _Val) { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7319,91 +7488,85 @@ $LN4: 0000c 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 702 : auto& _My_data = _Mypair._Myval2; +; 740 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 741 : auto& _My_data = _Mypair._Myval2; - 0003b 48 8b 85 50 01 + 00024 48 8b 85 50 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 703 : pointer& _Mylast = _My_data._Mylast; +; 742 : pointer& _Mylast = _My_data._Mylast; - 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0004a 48 83 c0 10 add rax, 16 - 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + 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 -; 704 : if (_Mylast != _My_data._Myend) { +; 743 : if (_Mylast != _My_data._Myend) { - 00052 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00056 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0005a 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 0005e 48 39 08 cmp QWORD PTR [rax], rcx - 00061 74 1d je SHORT $LN2@emplace_ba + 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 -; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); +; 744 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); - 00063 48 8b 8d 58 01 + 0004c 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 0006a e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0006f 48 8b d0 mov rdx, rax - 00072 48 8b 8d 50 01 + 00053 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00058 48 8b d0 mov rdx, rax + 0005b 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 00062 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity + 00067 eb 43 jmp SHORT $LN1@emplace_ba $LN2@emplace_ba: -; 706 : } -; 707 : -; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); +; 745 : } +; 746 : +; 747 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); - 00080 48 8b 8d 58 01 + 00069 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00087 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0008c 48 89 85 18 01 + 00070 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00075 48 89 85 18 01 00 00 mov QWORD PTR tv83[rbp], rax - 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 + 0007c 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 89 85 20 01 00 00 mov QWORD PTR tv81[rbp], rax - 000a1 4c 8b 85 18 01 + 0008a 4c 8b 85 18 01 00 00 mov r8, QWORD PTR tv83[rbp] - 000a8 48 8b 95 20 01 + 00091 48 8b 95 20 01 00 00 mov rdx, QWORD PTR tv81[rbp] - 000af 48 8b 8d 50 01 + 00098 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000b6 e8 00 00 00 00 call ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate - 000bb 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + 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 -; 709 : #if _HAS_CXX17 -; 710 : return _Result; +; 748 : #if _HAS_CXX17 +; 749 : return _Result; - 000bf 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + 000a8 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 : } +; 750 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 751 : (void) _Result; +; 752 : #endif // _HAS_CXX17 +; 753 : } - 000c3 48 8d a5 38 01 + 000ac 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 + 000b3 5f pop rdi + 000b4 5d pop rbp + 000b5 c3 ret 0 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ENDP ; std::vector >::emplace_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z _TEXT SEGMENT _Val$ = 224 @@ -7418,251 +7581,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$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 - -; 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 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 35 : return _Fillobj<_Elem>(_Ch); - - 0003a 0f b6 95 e8 00 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 00041 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj - 0004d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - -; 36 : } - - 00054 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z -_TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT - -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - - 0003b 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 0004c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005a 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Manip$[rbp] - 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] - 00072 48 8b c8 mov rcx, rax - 00075 ff 95 c0 00 00 - 00 call QWORD PTR tv79[rbp] - -; 425 : return _Ostr; - - 0007b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 426 : } - - 00082 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z _TEXT SEGMENT _State$ = 4 _Ok$ = 40 @@ -7697,7 +7636,7 @@ _Ostr$ = 592 _Ch$ = 600 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT -; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream +; 779 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream $LN23: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -7707,414 +7646,414 @@ $LN23: 0000b 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 78 + 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001c b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 48 8b 8c 24 78 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 20 02 + 00037 48 33 c5 xor rax, rbp + 0003a 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00041 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 781 : using _Elem = char; -; 782 : using _Myos = basic_ostream<_Elem, _Traits>; -; 783 : -; 784 : ios_base::iostate _State = ios_base::goodbit; +; 780 : using _Elem = char; +; 781 : using _Myos = basic_ostream<_Elem, _Traits>; +; 782 : +; 783 : ios_base::iostate _State = ios_base::goodbit; - 0004b c7 45 04 00 00 + 0004d c7 45 04 00 00 00 00 mov DWORD PTR _State$[rbp], 0 -; 785 : const typename _Myos::sentry _Ok(_Ostr); +; 784 : const typename _Myos::sentry _Ok(_Ostr); - 00052 48 8b 95 50 02 + 00054 48 8b 95 50 02 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry - 00062 90 npad 1 - -; 786 : -; 787 : if (_Ok) { // state okay, insert - - 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool - 0006c 0f b6 c0 movzx eax, al - 0006f 85 c0 test eax, eax - 00071 0f 84 1d 03 00 + 0005b 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0005f e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry + 00064 90 npad 1 + +; 785 : +; 786 : if (_Ok) { // state okay, insert + + 00065 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00069 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool + 0006e 0f b6 c0 movzx eax, al + 00071 85 c0 test eax, eax + 00073 0f 84 1d 03 00 00 je $LN8@operator -; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; +; 787 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - 00077 48 8b 85 50 02 + 00079 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0007e 48 8b 00 mov rax, QWORD PTR [rax] - 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00085 48 8b 8d 50 02 + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00087 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0008c 48 03 c8 add rcx, rax - 0008f 48 8b c1 mov rax, rcx - 00092 48 8b c8 mov rcx, rax - 00095 ff 15 00 00 00 + 0008e 48 03 c8 add rcx, rax + 00091 48 8b c1 mov rax, rcx + 00094 48 8b c8 mov rcx, rax + 00097 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 0009b 48 83 f8 01 cmp rax, 1 - 0009f 7f 0d jg SHORT $LN15@operator - 000a1 48 c7 85 08 02 + 0009d 48 83 f8 01 cmp rax, 1 + 000a1 7f 0d jg SHORT $LN15@operator + 000a3 48 c7 85 08 02 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 - 000ac eb 2e jmp SHORT $LN16@operator + 000ae eb 2e jmp SHORT $LN16@operator $LN15@operator: - 000ae 48 8b 85 50 02 + 000b0 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000b5 48 8b 00 mov rax, QWORD PTR [rax] - 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000bc 48 8b 8d 50 02 + 000b7 48 8b 00 mov rax, QWORD PTR [rax] + 000ba 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000be 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000c3 48 03 c8 add rcx, rax - 000c6 48 8b c1 mov rax, rcx - 000c9 48 8b c8 mov rcx, rax - 000cc ff 15 00 00 00 + 000c5 48 03 c8 add rcx, rax + 000c8 48 8b c1 mov rax, rcx + 000cb 48 8b c8 mov rcx, rax + 000ce ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 000d2 48 ff c8 dec rax - 000d5 48 89 85 08 02 + 000d4 48 ff c8 dec rax + 000d7 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax $LN16@operator: - 000dc 48 8b 85 08 02 + 000de 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv130[rbp] - 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 000e5 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -; 789 : -; 790 : _TRY_IO_BEGIN -; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { +; 788 : +; 789 : _TRY_IO_BEGIN +; 790 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - 000e7 48 8b 85 50 02 + 000e9 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000ee 48 8b 00 mov rax, QWORD PTR [rax] - 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000f5 48 8b 8d 50 02 + 000f0 48 8b 00 mov rax, QWORD PTR [rax] + 000f3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000f7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000fc 48 03 c8 add rcx, rax - 000ff 48 8b c1 mov rax, rcx - 00102 48 8b c8 mov rcx, rax - 00105 ff 15 00 00 00 + 000fe 48 03 c8 add rcx, rax + 00101 48 8b c1 mov rax, rcx + 00104 48 8b c8 mov rcx, rax + 00107 ff 15 00 00 00 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ - 0010b 89 85 04 02 00 + 0010d 89 85 04 02 00 00 mov DWORD PTR tv65[rbp], eax - 00111 8b 85 04 02 00 + 00113 8b 85 04 02 00 00 mov eax, DWORD PTR tv65[rbp] - 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011c 83 f8 40 cmp eax, 64 ; 00000040H - 0011f 0f 84 eb 00 00 + 00119 25 c0 01 00 00 and eax, 448 ; 000001c0H + 0011e 83 f8 40 cmp eax, 64 ; 00000040H + 00121 0f 84 eb 00 00 00 je $LN10@operator -; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left +; 791 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left - 00125 eb 0b jmp SHORT $LN4@operator + 00127 eb 0b jmp SHORT $LN4@operator $LN2@operator: - 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 0012b 48 ff c8 dec rax - 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 00129 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 0012d 48 ff c8 dec rax + 00130 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN4@operator: - 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00136 0f 85 d4 00 00 + 00134 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00138 0f 85 d4 00 00 00 jne $LN10@operator - 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00141 0f 8e c9 00 00 + 0013e 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00143 0f 8e c9 00 00 00 jle $LN10@operator -; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 792 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 00147 48 8b 85 50 02 + 00149 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0014e 48 8b 00 mov rax, QWORD PTR [rax] - 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00155 48 8b 8d 50 02 + 00150 48 8b 00 mov rax, QWORD PTR [rax] + 00153 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00157 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0015c 48 03 c8 add rcx, rax - 0015f 48 8b c1 mov rax, rcx - 00162 48 8b c8 mov rcx, rax - 00165 ff 15 00 00 00 + 0015e 48 03 c8 add rcx, rax + 00161 48 8b c1 mov rax, rcx + 00164 48 8b c8 mov rcx, rax + 00167 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0016b 48 89 85 08 02 + 0016d 48 89 85 08 02 00 00 mov QWORD PTR tv300[rbp], rax - 00172 48 8b 85 08 02 + 00174 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv300[rbp] - 00179 48 89 85 10 02 + 0017b 48 89 85 10 02 00 00 mov QWORD PTR tv179[rbp], rax - 00180 48 8b 85 50 02 + 00182 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00187 48 8b 00 mov rax, QWORD PTR [rax] - 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0018e 48 8b 8d 50 02 + 00189 48 8b 00 mov rax, QWORD PTR [rax] + 0018c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00190 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 8b c8 mov rcx, rax - 0019e ff 15 00 00 00 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 8b c8 mov rcx, rax + 001a0 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 001a4 88 85 18 02 00 + 001a6 88 85 18 02 00 00 mov BYTE PTR tv301[rbp], al - 001aa 0f b6 85 18 02 + 001ac 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b1 88 85 19 02 00 + 001b3 88 85 19 02 00 00 mov BYTE PTR tv177[rbp], al - 001b7 0f b6 95 19 02 + 001b9 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv177[rbp] - 001be 48 8b 8d 10 02 + 001c0 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c5 ff 15 00 00 00 + 001c7 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cb 89 85 1c 02 00 + 001cd 89 85 1c 02 00 00 mov DWORD PTR tv302[rbp], eax - 001d1 8b 85 1c 02 00 + 001d3 8b 85 1c 02 00 00 mov eax, DWORD PTR tv302[rbp] - 001d7 89 85 34 01 00 + 001d9 89 85 34 01 00 00 mov DWORD PTR $T5[rbp], eax - 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 001e2 89 85 54 01 00 + 001df e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001e4 89 85 54 01 00 00 mov DWORD PTR $T6[rbp], eax - 001e8 48 8d 95 34 01 + 001ea 48 8d 95 34 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 001ef 48 8d 8d 54 01 + 001f1 48 8d 8d 54 01 00 00 lea rcx, QWORD PTR $T6[rbp] - 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 001fb 0f b6 c0 movzx eax, al - 001fe 85 c0 test eax, eax - 00200 74 09 je SHORT $LN11@operator + 001f8 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 001fd 0f b6 c0 movzx eax, al + 00200 85 c0 test eax, eax + 00202 74 09 je SHORT $LN11@operator -; 794 : _State |= ios_base::badbit; +; 793 : _State |= ios_base::badbit; - 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00205 83 c8 04 or eax, 4 - 00208 89 45 04 mov DWORD PTR _State$[rbp], eax + 00204 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00207 83 c8 04 or eax, 4 + 0020a 89 45 04 mov DWORD PTR _State$[rbp], eax $LN11@operator: -; 795 : } -; 796 : } +; 794 : } +; 795 : } - 0020b e9 17 ff ff ff jmp $LN2@operator + 0020d e9 17 ff ff ff jmp $LN2@operator $LN10@operator: -; 797 : } -; 798 : -; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { +; 796 : } +; 797 : +; 798 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { - 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00214 0f 85 8d 00 00 + 00212 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00216 0f 85 8d 00 00 00 jne $LN12@operator - 0021a 48 8b 85 50 02 + 0021c 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00221 48 8b 00 mov rax, QWORD PTR [rax] - 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00228 48 8b 8d 50 02 + 00223 48 8b 00 mov rax, QWORD PTR [rax] + 00226 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0022a 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0022f 48 03 c8 add rcx, rax - 00232 48 8b c1 mov rax, rcx - 00235 48 8b c8 mov rcx, rax - 00238 ff 15 00 00 00 + 00231 48 03 c8 add rcx, rax + 00234 48 8b c1 mov rax, rcx + 00237 48 8b c8 mov rcx, rax + 0023a ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0023e 48 89 85 08 02 + 00240 48 89 85 08 02 00 00 mov QWORD PTR tv303[rbp], rax - 00245 48 8b 85 08 02 + 00247 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv303[rbp] - 0024c 48 89 85 10 02 + 0024e 48 89 85 10 02 00 00 mov QWORD PTR tv204[rbp], rax - 00253 0f b6 95 58 02 + 00255 0f b6 95 58 02 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025a 48 8b 8d 10 02 + 0025c 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv204[rbp] - 00261 ff 15 00 00 00 + 00263 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00267 89 85 18 02 00 + 00269 89 85 18 02 00 00 mov DWORD PTR tv304[rbp], eax - 0026d 8b 85 18 02 00 + 0026f 8b 85 18 02 00 00 mov eax, DWORD PTR tv304[rbp] - 00273 89 85 74 01 00 + 00275 89 85 74 01 00 00 mov DWORD PTR $T7[rbp], eax - 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0027e 89 85 94 01 00 + 0027b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00280 89 85 94 01 00 00 mov DWORD PTR $T8[rbp], eax - 00284 48 8d 95 74 01 + 00286 48 8d 95 74 01 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028b 48 8d 8d 94 01 + 0028d 48 8d 8d 94 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00297 0f b6 c0 movzx eax, al - 0029a 85 c0 test eax, eax - 0029c 74 09 je SHORT $LN12@operator + 00294 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00299 0f b6 c0 movzx eax, al + 0029c 85 c0 test eax, eax + 0029e 74 09 je SHORT $LN12@operator -; 800 : _State |= ios_base::badbit; +; 799 : _State |= ios_base::badbit; - 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 002a1 83 c8 04 or eax, 4 - 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax + 002a0 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 002a3 83 c8 04 or eax, 4 + 002a6 89 45 04 mov DWORD PTR _State$[rbp], eax $LN12@operator: -; 801 : } -; 802 : -; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right +; 800 : } +; 801 : +; 802 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right - 002a7 eb 0b jmp SHORT $LN7@operator + 002a9 eb 0b jmp SHORT $LN7@operator $LN5@operator: - 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 002ad 48 ff c8 dec rax - 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 002ab 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 002af 48 ff c8 dec rax + 002b2 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN7@operator: - 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002b8 0f 85 d4 00 00 + 002b6 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002ba 0f 85 d4 00 00 00 jne $LN6@operator - 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c3 0f 8e c9 00 00 + 002c0 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c5 0f 8e c9 00 00 00 jle $LN6@operator -; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 803 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 002c9 48 8b 85 50 02 + 002cb 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 002d0 48 8b 00 mov rax, QWORD PTR [rax] - 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 002d7 48 8b 8d 50 02 + 002d2 48 8b 00 mov rax, QWORD PTR [rax] + 002d5 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 002d9 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 002de 48 03 c8 add rcx, rax - 002e1 48 8b c1 mov rax, rcx - 002e4 48 8b c8 mov rcx, rax - 002e7 ff 15 00 00 00 + 002e0 48 03 c8 add rcx, rax + 002e3 48 8b c1 mov rax, rcx + 002e6 48 8b c8 mov rcx, rax + 002e9 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 002ed 48 89 85 08 02 + 002ef 48 89 85 08 02 00 00 mov QWORD PTR tv305[rbp], rax - 002f4 48 8b 85 08 02 + 002f6 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv305[rbp] - 002fb 48 89 85 10 02 + 002fd 48 89 85 10 02 00 00 mov QWORD PTR tv245[rbp], rax - 00302 48 8b 85 50 02 + 00304 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00309 48 8b 00 mov rax, QWORD PTR [rax] - 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00310 48 8b 8d 50 02 + 0030b 48 8b 00 mov rax, QWORD PTR [rax] + 0030e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00312 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00317 48 03 c8 add rcx, rax - 0031a 48 8b c1 mov rax, rcx - 0031d 48 8b c8 mov rcx, rax - 00320 ff 15 00 00 00 + 00319 48 03 c8 add rcx, rax + 0031c 48 8b c1 mov rax, rcx + 0031f 48 8b c8 mov rcx, rax + 00322 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 00326 88 85 18 02 00 + 00328 88 85 18 02 00 00 mov BYTE PTR tv306[rbp], al - 0032c 0f b6 85 18 02 + 0032e 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv306[rbp] - 00333 88 85 19 02 00 + 00335 88 85 19 02 00 00 mov BYTE PTR tv243[rbp], al - 00339 0f b6 95 19 02 + 0033b 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv243[rbp] - 00340 48 8b 8d 10 02 + 00342 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv245[rbp] - 00347 ff 15 00 00 00 + 00349 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034d 89 85 1c 02 00 + 0034f 89 85 1c 02 00 00 mov DWORD PTR tv307[rbp], eax - 00353 8b 85 1c 02 00 + 00355 8b 85 1c 02 00 00 mov eax, DWORD PTR tv307[rbp] - 00359 89 85 b4 01 00 + 0035b 89 85 b4 01 00 00 mov DWORD PTR $T9[rbp], eax - 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00364 89 85 d4 01 00 + 00361 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00366 89 85 d4 01 00 00 mov DWORD PTR $T10[rbp], eax - 0036a 48 8d 95 b4 01 + 0036c 48 8d 95 b4 01 00 00 lea rdx, QWORD PTR $T9[rbp] - 00371 48 8d 8d d4 01 + 00373 48 8d 8d d4 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0037d 0f b6 c0 movzx eax, al - 00380 85 c0 test eax, eax - 00382 74 09 je SHORT $LN13@operator + 0037a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0037f 0f b6 c0 movzx eax, al + 00382 85 c0 test eax, eax + 00384 74 09 je SHORT $LN13@operator -; 805 : _State |= ios_base::badbit; +; 804 : _State |= ios_base::badbit; - 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00387 83 c8 04 or eax, 4 - 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax + 00386 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00389 83 c8 04 or eax, 4 + 0038c 89 45 04 mov DWORD PTR _State$[rbp], eax $LN13@operator: -; 806 : } -; 807 : } +; 805 : } +; 806 : } - 0038d e9 17 ff ff ff jmp $LN5@operator + 0038f e9 17 ff ff ff jmp $LN5@operator $LN6@operator: - 00392 eb 00 jmp SHORT $LN8@operator + 00394 eb 00 jmp SHORT $LN8@operator $LN21@operator: $LN8@operator: -; 808 : _CATCH_IO_(ios_base, _Ostr) -; 809 : } -; 810 : -; 811 : _Ostr.width(0); +; 807 : _CATCH_IO_(ios_base, _Ostr) +; 808 : } +; 809 : +; 810 : _Ostr.width(0); - 00394 48 8b 85 50 02 + 00396 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0039b 48 8b 00 mov rax, QWORD PTR [rax] - 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003a2 48 8b 8d 50 02 + 0039d 48 8b 00 mov rax, QWORD PTR [rax] + 003a0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003a4 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003a9 48 03 c8 add rcx, rax - 003ac 48 8b c1 mov rax, rcx - 003af 48 89 85 08 02 + 003ab 48 03 c8 add rcx, rax + 003ae 48 8b c1 mov rax, rcx + 003b1 48 89 85 08 02 00 00 mov QWORD PTR tv281[rbp], rax - 003b6 33 d2 xor edx, edx - 003b8 48 8b 8d 08 02 + 003b8 33 d2 xor edx, edx + 003ba 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv281[rbp] - 003bf ff 15 00 00 00 + 003c1 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z -; 812 : _Ostr.setstate(_State); +; 811 : _Ostr.setstate(_State); - 003c5 48 8b 85 50 02 + 003c7 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 003cc 48 8b 00 mov rax, QWORD PTR [rax] - 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003d3 48 8b 8d 50 02 + 003ce 48 8b 00 mov rax, QWORD PTR [rax] + 003d1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003d5 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003da 48 03 c8 add rcx, rax - 003dd 48 8b c1 mov rax, rcx - 003e0 48 89 85 08 02 + 003dc 48 03 c8 add rcx, rax + 003df 48 8b c1 mov rax, rcx + 003e2 48 89 85 08 02 00 00 mov QWORD PTR tv295[rbp], rax - 003e7 45 33 c0 xor r8d, r8d - 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ed 48 8b 8d 08 02 + 003e9 45 33 c0 xor r8d, r8d + 003ec 8b 55 04 mov edx, DWORD PTR _State$[rbp] + 003ef 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv295[rbp] - 003f4 ff 15 00 00 00 + 003f6 ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 813 : return _Ostr; +; 812 : return _Ostr; - 003fa 48 8b 85 50 02 + 003fc 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00401 48 89 85 f8 01 + 00403 48 89 85 f8 01 00 00 mov QWORD PTR $T11[rbp], rax - 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 00411 48 8b 85 f8 01 + 0040a 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0040e e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00413 48 8b 85 f8 01 00 00 mov rax, QWORD PTR $T11[rbp] -; 814 : } +; 813 : } - 00418 48 8b f8 mov rdi, rax - 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0041f 48 8d 15 00 00 + 0041a 48 8b f8 mov rdi, rax + 0041d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00421 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData - 00426 e8 00 00 00 00 call _RTC_CheckStackVars - 0042b 48 8b c7 mov rax, rdi - 0042e 48 8b 8d 20 02 + 00428 e8 00 00 00 00 call _RTC_CheckStackVars + 0042d 48 8b c7 mov rax, rdi + 00430 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00435 48 33 cd xor rcx, rbp - 00438 e8 00 00 00 00 call __security_check_cookie - 0043d 48 8d a5 38 02 + 00437 48 33 cd xor rcx, rbp + 0043a e8 00 00 00 00 call __security_check_cookie + 0043f 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 00444 5f pop rdi - 00445 5d pop rbp - 00446 c3 ret 0 + 00446 5f pop rdi + 00447 5d pop rbp + 00448 c3 ret 0 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > _TEXT ENDS ; COMDAT text$x @@ -8200,7 +8139,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 808 : _CATCH_IO_(ios_base, _Ostr) +; 807 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8320,7 +8259,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 808 : _CATCH_IO_(ios_base, _Ostr) +; 807 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8356,161 +8295,342 @@ __catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\cmath -; COMDAT ??$log2@H$0A@@@YANH@Z +; 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 -_Left$ = 224 -??$log2@H$0A@@@YANH@Z PROC ; log2, COMDAT +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 -; 636 : _GENERIC_MATH1(log2) +; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream $LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec f8 00 + 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 - 0000d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00012 48 8b fc mov rdi, rsp - 00015 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001f f3 ab rep stosd - 00021 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A4FAB91_cmath - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 f2 0f 2a 85 e0 - 00 00 00 cvtsi2sd xmm0, DWORD PTR _Left$[rbp] - 0003c ff 15 00 00 00 - 00 call QWORD PTR __imp_log2 - 00042 90 npad 1 - 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 -??$log2@H$0A@@@YANH@Z ENDP ; log2 -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; 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 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z PROC ; std::find > >,unsigned long>, COMDAT - -; 5171 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val - -$LN7: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00039 c7 85 e4 00 00 - 00 00 00 00 00 mov DWORD PTR $T2[rbp], 0 - 00043 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 5172 : _Adl_verify_range(_First, _Last); - - 0004f 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > + 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 -; 5173 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); +; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); +; 51 : +; 52 : _Ostr.fill(_Manip._Fill); - 00062 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 00069 e8 00 00 00 00 call ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> - 0006e 48 89 85 f8 00 + 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 - 00075 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 0007c e8 00 00 00 00 call ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> - 00081 48 89 85 00 01 - 00 00 mov QWORD PTR tv77[rbp], rax - 00088 4c 8b 85 48 01 - 00 00 mov r8, QWORD PTR _Val$[rbp] - 0008f 48 8b 95 f8 00 - 00 00 mov rdx, QWORD PTR tv79[rbp] - 00096 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR tv77[rbp] - 0009d e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked - 000a2 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 000a9 48 8d 95 c8 00 - 00 00 lea rdx, QWORD PTR $T1[rbp] - 000b0 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 000b7 e8 00 00 00 00 call ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> + 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 -; 5174 : return _First; +; 53 : return _Ostr; - 000bc 48 8b 95 38 01 - 00 00 mov rdx, QWORD PTR _First$[rbp] - 000c3 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 000ca e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z - 000cf 8b 85 e4 00 00 - 00 mov eax, DWORD PTR $T2[rbp] - 000d5 83 c8 01 or eax, 1 - 000d8 89 85 e4 00 00 - 00 mov DWORD PTR $T2[rbp], eax - 000de 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 000e5 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 000ea 90 npad 1 - 000eb 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 000f2 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 000f7 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 0005d 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] -; 5175 : } +; 54 : } - 000fe 48 8d a5 18 01 - 00 00 lea rsp, QWORD PTR [rbp+280] - 00105 5f pop rdi - 00106 5d pop rbp - 00107 c3 ret 0 -??$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> + 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 -; COMDAT text$x -text$x SEGMENT -$T1 = 200 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -?dtor$0@?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 PROC ; `std::find > >,unsigned long>'::`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 +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip +; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z +_TEXT SEGMENT +this$ = 224 +_Ch$ = 232 +??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT + +; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0002a 0f b6 8d e8 00 + 00 00 movzx ecx, BYTE PTR _Ch$[rbp] + 00031 88 08 mov BYTE PTR [rax], cl + 00033 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00041 5f pop rdi + 00042 5d pop rbp + 00043 c3 ret 0 +??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip +; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +_TEXT SEGMENT +__$ReturnUdt$ = 224 +_Ch$ = 232 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT + +; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 35 : return _Fillobj<_Elem>(_Ch); + + 00023 0f b6 95 e8 00 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 0002a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00031 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + +; 36 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT + +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); + + 00024 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00035 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00043 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0004a 48 03 c8 add rcx, rax + 0004d 48 8b c1 mov rax, rcx + 00050 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Manip$[rbp] + 00057 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] + 0005b 48 8b c8 mov rcx, rax + 0005e ff 95 c0 00 00 + 00 call QWORD PTR tv79[rbp] + +; 425 : return _Ostr; + + 00064 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 426 : } + + 0006b 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\cmath +; COMDAT ??$log2@H$0A@@@YANH@Z +_TEXT SEGMENT +_Left$ = 224 +??$log2@H$0A@@@YANH@Z PROC ; log2, COMDAT + +; 662 : _GENERIC_MATH1(log2) + +$LN3: + 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 00004 55 push rbp + 00005 57 push rdi + 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 + 00 00 00 cvtsi2sd xmm0, DWORD PTR _Left$[rbp] + 00026 ff 15 00 00 00 + 00 call QWORD PTR __imp_log2 + 0002c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00033 5f pop rdi + 00034 5d pop rbp + 00035 c3 ret 0 +??$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 +; 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 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_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 + +$LN7: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 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 + 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 + +; 5341 : _Adl_verify_range(_First, _Last); + + 00038 48 8b 95 40 01 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 0003f 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 > > > + +; 5342 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); + + 0004b 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 + 00 00 mov QWORD PTR tv79[rbp], rax + 0005e 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 + 00 00 mov QWORD PTR tv77[rbp], rax + 00071 4c 8b 85 48 01 + 00 00 mov r8, QWORD PTR _Val$[rbp] + 00078 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 0007f 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 + 00 00 mov QWORD PTR $T1[rbp], rax + 00092 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00099 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 *> + +; 5343 : return _First; + + 000a5 48 8b 95 38 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 000ac 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 + 00 mov eax, DWORD PTR $T2[rbp] + 000be 83 c8 01 or eax, 1 + 000c1 89 85 e4 00 00 + 00 mov DWORD PTR $T2[rbp], eax + 000c7 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 + 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 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + +; 5344 : } + + 000e7 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 +??$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 +text$x SEGMENT +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +?dtor$0@?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 PROC ; `std::find > >,unsigned long>'::`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 40 01 @@ -8618,34 +8738,28 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 4c 8b 85 f0 00 + 0001d 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR __param1$[rbp] - 0003b 48 8b 95 e8 00 + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __param0$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > - 0004e 48 8b 85 e0 00 + 00032 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > + 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 __that$ = 232 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8654,25 +8768,19 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d a5 c8 00 + 00032 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > + 00039 5f pop rdi + 0003a 5d pop rbp + 0003b c3 ret 0 +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ @@ -8686,30 +8794,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_iterator > >::~_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ _TEXT SEGMENT this$ = 224 ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ PROC ; std::_Vector_iterator > >::_Unwrapped, COMDAT -; 309 : _NODISCARD value_type* _Unwrapped() const { +; 335 : _NODISCARD _CONSTEXPR20_CONTAINER value_type* _Unwrapped() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8718,38 +8820,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 310 : return _Unfancy(this->_Ptr); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 336 : return _Unfancy(this->_Ptr); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00041 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00026 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 0002a e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy -; 311 : } +; 337 : } - 00046 48 8d a5 c8 00 + 0002f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00036 5f pop rdi + 00037 5d pop rbp + 00038 c3 ret 0 ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ENDP ; std::_Vector_iterator > >::_Unwrapped _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 __that$ = 232 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8758,31 +8854,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8b 8d e8 00 + 00032 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR __that$[rbp] - 00050 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00054 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00058 48 8b 85 e0 00 + 00039 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 0003d 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ @@ -8796,31 +8886,25 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z _TEXT SEGMENT this$ = 224 _It$ = 232 ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z PROC ; std::_Vector_const_iterator > >::_Seek_to, COMDAT -; 194 : void _Seek_to(const value_type* _It) { +; 208 : _CONSTEXPR20_CONTAINER void _Seek_to(const value_type* _It) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8830,36 +8914,30 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 195 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 209 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _It$[rbp] - 00042 e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy - 00047 48 8b 8d e0 00 + 0002b e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy + 00030 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00037 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 196 : } +; 210 : } - 00052 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00059 5f pop rdi - 0005a 5d pop rbp - 0005b c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ENDP ; std::_Vector_const_iterator > >::_Seek_to _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z _TEXT SEGMENT tv69 = 192 @@ -8867,7 +8945,7 @@ _First$ = 240 _Last$ = 248 ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z PROC ; std::_Verify_range, COMDAT -; 182 : friend void _Verify_range(const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) { +; 196 : const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) noexcept { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8877,138 +8955,130 @@ $LN21: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@Verify_ran: -; 183 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); +; 197 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); - 0003b 48 8b 8d f0 00 + 00024 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00042 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00047 48 89 85 c0 00 + 0002b e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00030 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0004e 48 8b 8d f8 00 + 00037 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Last$[rbp] - 00055 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 0005a 48 8b 8d c0 00 + 0003e e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00043 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00061 48 3b c8 cmp rcx, rax - 00064 75 02 jne SHORT $LN14@Verify_ran - 00066 eb 6b jmp SHORT $LN15@Verify_ran -$LN14@Verify_ran: + 0004a 48 3b c8 cmp rcx, rax + 0004d 75 02 jne SHORT $LN7@Verify_ran + 0004f eb 6b jmp SHORT $LN15@Verify_ran $LN7@Verify_ran: - 00068 48 8d 05 00 00 + 00051 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ - 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00074 48 8d 05 00 00 + 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0005d 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0007b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00080 45 33 c9 xor r9d, r9d - 00083 41 b8 b7 00 00 - 00 mov r8d, 183 ; 000000b7H - 00089 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00090 b9 02 00 00 00 mov ecx, 2 - 00095 ff 15 00 00 00 + 00064 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00069 45 33 c9 xor r9d, r9d + 0006c 41 b8 c5 00 00 + 00 mov r8d, 197 ; 000000c5H + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00079 b9 02 00 00 00 mov ecx, 2 + 0007e ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0009b 83 f8 01 cmp eax, 1 - 0009e 75 03 jne SHORT $LN19@Verify_ran - 000a0 cc int 3 - 000a1 33 c0 xor eax, eax + 00084 83 f8 01 cmp eax, 1 + 00087 75 03 jne SHORT $LN19@Verify_ran + 00089 cc int 3 + 0008a 33 c0 xor eax, eax $LN19@Verify_ran: - 000a3 48 c7 44 24 20 + 0008c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000ac 41 b9 b7 00 00 - 00 mov r9d, 183 ; 000000b7H - 000b2 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000b9 48 8d 15 00 00 + 00095 41 b9 c5 00 00 + 00 mov r9d, 197 ; 000000c5H + 0009b 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ - 000c0 48 8d 0d 00 00 + 000a9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 000c7 ff 15 00 00 00 + 000b0 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000cd 33 c0 xor eax, eax - 000cf 85 c0 test eax, eax - 000d1 75 95 jne SHORT $LN7@Verify_ran + 000b6 33 c0 xor eax, eax + 000b8 85 c0 test eax, eax + 000ba 75 95 jne SHORT $LN7@Verify_ran $LN15@Verify_ran: - 000d3 33 c0 xor eax, eax - 000d5 85 c0 test eax, eax - 000d7 0f 85 5e ff ff + 000bc 33 c0 xor eax, eax + 000be 85 c0 test eax, eax + 000c0 0f 85 5e ff ff ff jne $LN4@Verify_ran $LN10@Verify_ran: -; 184 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); +; 198 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); - 000dd 48 8b 85 f0 00 + 000c6 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _First$[rbp] - 000e4 48 8b 8d f8 00 + 000cd 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Last$[rbp] - 000eb 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 000ef 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 000f3 77 02 ja SHORT $LN16@Verify_ran - 000f5 eb 6b jmp SHORT $LN17@Verify_ran -$LN16@Verify_ran: + 000d4 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 000d8 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 000dc 77 02 ja SHORT $LN13@Verify_ran + 000de eb 6b jmp SHORT $LN17@Verify_ran $LN13@Verify_ran: - 000f7 48 8d 05 00 00 + 000e0 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ - 000fe 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00103 48 8d 05 00 00 + 000e7 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 000ec 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0010a 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0010f 45 33 c9 xor r9d, r9d - 00112 41 b8 b8 00 00 - 00 mov r8d, 184 ; 000000b8H - 00118 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0011f b9 02 00 00 00 mov ecx, 2 - 00124 ff 15 00 00 00 + 000f3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000f8 45 33 c9 xor r9d, r9d + 000fb 41 b8 c6 00 00 + 00 mov r8d, 198 ; 000000c6H + 00101 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00108 b9 02 00 00 00 mov ecx, 2 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0012a 83 f8 01 cmp eax, 1 - 0012d 75 03 jne SHORT $LN20@Verify_ran - 0012f cc int 3 - 00130 33 c0 xor eax, eax + 00113 83 f8 01 cmp eax, 1 + 00116 75 03 jne SHORT $LN20@Verify_ran + 00118 cc int 3 + 00119 33 c0 xor eax, eax $LN20@Verify_ran: - 00132 48 c7 44 24 20 + 0011b 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0013b 41 b9 b8 00 00 - 00 mov r9d, 184 ; 000000b8H - 00141 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00148 48 8d 15 00 00 + 00124 41 b9 c6 00 00 + 00 mov r9d, 198 ; 000000c6H + 0012a 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00131 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ - 0014f 48 8d 0d 00 00 + 00138 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 00156 ff 15 00 00 00 + 0013f ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 0015c 33 c0 xor eax, eax - 0015e 85 c0 test eax, eax - 00160 75 95 jne SHORT $LN13@Verify_ran + 00145 33 c0 xor eax, eax + 00147 85 c0 test eax, eax + 00149 75 95 jne SHORT $LN13@Verify_ran $LN17@Verify_ran: - 00162 33 c0 xor eax, eax - 00164 85 c0 test eax, eax - 00166 0f 85 71 ff ff + 0014b 33 c0 xor eax, eax + 0014d 85 c0 test eax, eax + 0014f 0f 85 71 ff ff ff jne $LN10@Verify_ran -; 185 : } +; 199 : } - 0016c 48 8d a5 d8 00 + 00155 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00173 5f pop rdi - 00174 5d pop rbp - 00175 c3 ret 0 + 0015c 5f pop rdi + 0015d 5d pop rbp + 0015e c3 ret 0 ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ENDP ; std::_Verify_range _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z _TEXT SEGMENT tv69 = 192 @@ -9016,7 +9086,7 @@ this$ = 240 _Right$ = 248 ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z PROC ; std::_Vector_const_iterator > >::_Compat, COMDAT -; 173 : void _Compat(const _Vector_const_iterator& _Right) const { // test for compatible iterator pair +; 185 : _CONSTEXPR20_CONTAINER void _Compat(const _Vector_const_iterator& _Right) const noexcept { $LN12: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9026,89 +9096,83 @@ $LN12: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@Compat: -; 174 : #if _ITERATOR_DEBUG_LEVEL == 0 -; 175 : (void) _Right; -; 176 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 0 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 0 vvv -; 177 : _STL_VERIFY(this->_Getcont() == _Right._Getcont(), "vector iterators incompatible"); +; 186 : // test for compatible iterator pair +; 187 : #if _ITERATOR_DEBUG_LEVEL == 0 +; 188 : (void) _Right; +; 189 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 0 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 0 vvv +; 190 : _STL_VERIFY(this->_Getcont() == _Right._Getcont(), "vector iterators incompatible"); - 0003b 48 8b 8d f0 00 + 00024 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00042 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00047 48 89 85 c0 00 + 0002b e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00030 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0004e 48 8b 8d f8 00 + 00037 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00055 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 0005a 48 8b 8d c0 00 + 0003e e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00043 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00061 48 3b c8 cmp rcx, rax - 00064 75 02 jne SHORT $LN8@Compat - 00066 eb 6b jmp SHORT $LN9@Compat -$LN8@Compat: + 0004a 48 3b c8 cmp rcx, rax + 0004d 75 02 jne SHORT $LN7@Compat + 0004f eb 6b jmp SHORT $LN9@Compat $LN7@Compat: - 00068 48 8d 05 00 00 + 00051 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ - 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00074 48 8d 05 00 00 + 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0005d 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0007b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00080 45 33 c9 xor r9d, r9d - 00083 41 b8 b1 00 00 - 00 mov r8d, 177 ; 000000b1H - 00089 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00090 b9 02 00 00 00 mov ecx, 2 - 00095 ff 15 00 00 00 + 00064 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00069 45 33 c9 xor r9d, r9d + 0006c 41 b8 be 00 00 + 00 mov r8d, 190 ; 000000beH + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00079 b9 02 00 00 00 mov ecx, 2 + 0007e ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0009b 83 f8 01 cmp eax, 1 - 0009e 75 03 jne SHORT $LN11@Compat - 000a0 cc int 3 - 000a1 33 c0 xor eax, eax + 00084 83 f8 01 cmp eax, 1 + 00087 75 03 jne SHORT $LN11@Compat + 00089 cc int 3 + 0008a 33 c0 xor eax, eax $LN11@Compat: - 000a3 48 c7 44 24 20 + 0008c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000ac 41 b9 b1 00 00 - 00 mov r9d, 177 ; 000000b1H - 000b2 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000b9 48 8d 15 00 00 + 00095 41 b9 be 00 00 + 00 mov r9d, 190 ; 000000beH + 0009b 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ - 000c0 48 8d 0d 00 00 + 000a9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 000c7 ff 15 00 00 00 + 000b0 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000cd 33 c0 xor eax, eax - 000cf 85 c0 test eax, eax - 000d1 75 95 jne SHORT $LN7@Compat + 000b6 33 c0 xor eax, eax + 000b8 85 c0 test eax, eax + 000ba 75 95 jne SHORT $LN7@Compat $LN9@Compat: - 000d3 33 c0 xor eax, eax - 000d5 85 c0 test eax, eax - 000d7 0f 85 5e ff ff + 000bc 33 c0 xor eax, eax + 000be 85 c0 test eax, eax + 000c0 0f 85 5e ff ff ff jne $LN4@Compat -; 178 : #endif // _ITERATOR_DEBUG_LEVEL == 0 -; 179 : } +; 191 : #endif // _ITERATOR_DEBUG_LEVEL == 0 +; 192 : } - 000dd 48 8d a5 d8 00 + 000c6 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000e4 5f pop rdi - 000e5 5d pop rbp - 000e6 c3 ret 0 + 000cd 5f pop rdi + 000ce 5d pop rbp + 000cf c3 ret 0 ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ENDP ; std::_Vector_const_iterator > >::_Compat _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT tv69 = 192 @@ -9116,7 +9180,7 @@ this$ = 240 _Right$ = 248 ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator!=, COMDAT -; 152 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const { +; 163 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9126,47 +9190,41 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 153 : return !(*this == _Right); - - 0003b 48 8b 95 f8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 164 : return !(*this == _Right); + + 00024 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 00042 48 8b 8d f0 00 + 0002b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== - 0004e 0f b6 c0 movzx eax, al - 00051 85 c0 test eax, eax - 00053 75 0c jne SHORT $LN3@operator - 00055 c7 85 c0 00 00 + 00032 e8 00 00 00 00 call ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== + 00037 0f b6 c0 movzx eax, al + 0003a 85 c0 test eax, eax + 0003c 75 0c jne SHORT $LN3@operator + 0003e c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 0005f eb 0a jmp SHORT $LN4@operator + 00048 eb 0a jmp SHORT $LN4@operator $LN3@operator: - 00061 c7 85 c0 00 00 + 0004a c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@operator: - 0006b 0f b6 85 c0 00 + 00054 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] -; 154 : } +; 165 : } - 00072 48 8d a5 d8 00 + 0005b 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00079 5f pop rdi - 0007a 5d pop rbp - 0007b c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator!= _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT tv69 = 192 @@ -9174,7 +9232,7 @@ this$ = 240 _Right$ = 248 ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator==, COMDAT -; 147 : _NODISCARD bool operator==(const _Vector_const_iterator& _Right) const { +; 152 : _NODISCARD _CONSTEXPR20_CONTAINER bool operator==(const _Vector_const_iterator& _Right) const noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9184,54 +9242,48 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 148 : _Compat(_Right); - - 0003b 48 8b 95 f8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 153 : _Compat(_Right); + + 00024 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 00042 48 8b 8d f0 00 + 0002b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat + 00032 e8 00 00 00 00 call ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat -; 149 : return _Ptr == _Right._Ptr; +; 154 : return _Ptr == _Right._Ptr; - 0004e 48 8b 85 f0 00 + 00037 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8b 8d f8 00 + 0003e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 0005c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00060 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 00064 75 0c jne SHORT $LN3@operator - 00066 c7 85 c0 00 00 + 00045 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00049 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 0004d 75 0c jne SHORT $LN3@operator + 0004f c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00070 eb 0a jmp SHORT $LN4@operator + 00059 eb 0a jmp SHORT $LN4@operator $LN3@operator: - 00072 c7 85 c0 00 00 + 0005b c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@operator: - 0007c 0f b6 85 c0 00 + 00065 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] -; 150 : } +; 155 : } - 00083 48 8d a5 d8 00 + 0006c 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0008a 5f pop rdi - 0008b 5d pop rbp - 0008c c3 ret 0 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator== _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 @@ -9239,7 +9291,7 @@ _Parg$ = 232 _Pvector$ = 240 ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT -; 42 : _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { +; 42 : _CONSTEXPR20_CONTAINER _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -9250,45 +9302,39 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 8d e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 - 0004c 48 8b 85 e0 00 + 00030 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 8d e8 00 + 0003c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Parg$[rbp] - 0005a 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00043 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 43 : this->_Adopt(_Pvector); - 0005e 48 8b 95 f0 00 + 00047 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Pvector$[rbp] - 00065 48 8b 8d e0 00 + 0004e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0006c e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 00055 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt ; 44 : } - 00071 48 8b 85 e0 00 + 0005a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00078 48 8d a5 c8 00 + 00061 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007f 5f pop rdi - 00080 5d pop rbp - 00081 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -9304,7 +9350,7 @@ tv142 = 368 Block$ = 416 ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcPrintBlockCode, COMDAT -; 582 : { +; 584 : { $LN10: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9313,142 +9359,136 @@ $LN10: 00007 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 c8 - 01 00 00 mov rcx, QWORD PTR [rsp+456] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 583 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - - 00036 48 8b 85 a0 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 585 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + + 0001f 48 8b 85 a0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00044 eb 0b jmp SHORT $LN4@NcPrintBlo + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002d eb 0b jmp SHORT $LN4@NcPrintBlo $LN2@NcPrintBlo: - 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00033 48 8b 00 mov rax, QWORD PTR [rax] + 00036 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcPrintBlo: - 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00056 0f 84 03 01 00 + 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0003f 0f 84 03 01 00 00 je $LN3@NcPrintBlo - 0005c 48 8b 85 a0 01 + 00045 48 8b 85 a0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00063 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0006e 0f 84 eb 00 00 + 0004c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00050 48 8b 00 mov rax, QWORD PTR [rax] + 00053 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00057 0f 84 eb 00 00 00 je $LN3@NcPrintBlo -; 584 : { -; 585 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) +; 586 : { +; 587 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) - 00074 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00078 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007b 83 e0 01 and eax, 1 - 0007e 85 c0 test eax, eax - 00080 0f 85 d4 00 00 + 0005d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00061 8b 40 18 mov eax, DWORD PTR [rax+24] + 00064 83 e0 01 and eax, 1 + 00067 85 c0 test eax, eax + 00069 0f 85 d4 00 00 00 jne $LN8@NcPrintBlo -; 586 : { -; 587 : for (uint32_t i = 0; i < T->RawDataSize; i++) +; 588 : { +; 589 : for (uint32_t i = 0; i < T->RawDataSize; i++) - 00086 c7 45 24 00 00 + 0006f c7 45 24 00 00 00 00 mov DWORD PTR i$2[rbp], 0 - 0008d eb 08 jmp SHORT $LN7@NcPrintBlo + 00076 eb 08 jmp SHORT $LN7@NcPrintBlo $LN5@NcPrintBlo: - 0008f 8b 45 24 mov eax, DWORD PTR i$2[rbp] - 00092 ff c0 inc eax - 00094 89 45 24 mov DWORD PTR i$2[rbp], eax + 00078 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 0007b ff c0 inc eax + 0007d 89 45 24 mov DWORD PTR i$2[rbp], eax $LN7@NcPrintBlo: - 00097 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0009b 8b 40 28 mov eax, DWORD PTR [rax+40] - 0009e 39 45 24 cmp DWORD PTR i$2[rbp], eax - 000a1 0f 83 b3 00 00 + 00080 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00084 8b 40 28 mov eax, DWORD PTR [rax+40] + 00087 39 45 24 cmp DWORD PTR i$2[rbp], eax + 0008a 0f 83 b3 00 00 00 jae $LN6@NcPrintBlo -; 588 : { -; 589 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; +; 590 : { +; 591 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; - 000a7 48 8d 15 00 00 + 00090 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 000ae 48 8b 0d 00 00 + 00097 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 000b5 ff 15 00 00 00 + 0009e ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z - 000bb 48 89 85 48 01 + 000a4 48 89 85 48 01 00 00 mov QWORD PTR tv93[rbp], rax - 000c2 ba 02 00 00 00 mov edx, 2 - 000c7 48 8d 8d 28 01 + 000ab ba 02 00 00 00 mov edx, 2 + 000b0 48 8d 8d 28 01 00 00 lea rcx, QWORD PTR $T4[rbp] - 000ce e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 000d3 48 89 85 50 01 + 000b7 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 000bc 48 89 85 50 01 00 00 mov QWORD PTR tv95[rbp], rax - 000da 48 8b 95 50 01 + 000c3 48 8b 95 50 01 00 00 mov rdx, QWORD PTR tv95[rbp] - 000e1 48 8b 8d 48 01 + 000ca 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 000e8 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> - 000ed 48 89 85 58 01 + 000d1 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> + 000d6 48 89 85 58 01 00 00 mov QWORD PTR tv130[rbp], rax - 000f4 b2 30 mov dl, 48 ; 00000030H - 000f6 48 8d 8d 04 01 + 000dd b2 30 mov dl, 48 ; 00000030H + 000df 48 8d 8d 04 01 00 00 lea rcx, QWORD PTR $T3[rbp] - 000fd e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill - 00102 48 89 85 60 01 + 000e6 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill + 000eb 48 89 85 60 01 00 00 mov QWORD PTR tv132[rbp], rax - 00109 48 8b 95 60 01 + 000f2 48 8b 95 60 01 00 00 mov rdx, QWORD PTR tv132[rbp] - 00110 48 8b 8d 58 01 + 000f9 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR tv130[rbp] - 00117 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> - 0011c 48 89 85 68 01 + 00100 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> + 00105 48 89 85 68 01 00 00 mov QWORD PTR tv144[rbp], rax - 00123 8b 45 24 mov eax, DWORD PTR i$2[rbp] - 00126 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] - 0012a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0012e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00132 89 85 70 01 00 + 0010c 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 0010f 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00113 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00117 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 0011b 89 85 70 01 00 00 mov DWORD PTR tv142[rbp], eax - 00138 8b 95 70 01 00 + 00121 8b 95 70 01 00 00 mov edx, DWORD PTR tv142[rbp] - 0013e 48 8b 8d 68 01 + 00127 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR tv144[rbp] - 00145 ff 15 00 00 00 + 0012e ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 0014b b2 20 mov dl, 32 ; 00000020H - 0014d 48 8b c8 mov rcx, rax - 00150 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > + 00134 b2 20 mov dl, 32 ; 00000020H + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > -; 590 : } +; 592 : } - 00155 e9 35 ff ff ff jmp $LN5@NcPrintBlo + 0013e e9 35 ff ff ff jmp $LN5@NcPrintBlo $LN6@NcPrintBlo: $LN8@NcPrintBlo: -; 591 : } -; 592 : } +; 593 : } +; 594 : } - 0015a e9 e7 fe ff ff jmp $LN2@NcPrintBlo + 00143 e9 e7 fe ff ff jmp $LN2@NcPrintBlo $LN3@NcPrintBlo: -; 593 : } +; 595 : } - 0015f 48 8d a5 88 01 + 00148 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] - 00166 5f pop rdi - 00167 5d pop rbp - 00168 c3 ret 0 + 0014f 5f pop rdi + 00150 5d pop rbp + 00151 c3 ret 0 ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcPrintBlockCode _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT ConsoleHandle$ = 8 @@ -9459,7 +9499,7 @@ tv129 = 280 Block$ = 320 ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDebugPrint, COMDAT -; 552 : { +; 554 : { $LN11: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9468,175 +9508,169 @@ $LN11: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 553 : HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); - - 00036 b9 f5 ff ff ff mov ecx, -11 ; fffffff5H - 0003b ff 15 00 00 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 555 : HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + + 0001f b9 f5 ff ff ff mov ecx, -11 ; fffffff5H + 00024 ff 15 00 00 00 00 call QWORD PTR __imp_GetStdHandle - 00041 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax + 0002a 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax -; 554 : if (!ConsoleHandle) +; 556 : if (!ConsoleHandle) - 00045 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 - 0004a 75 05 jne SHORT $LN5@NcDebugPri + 0002e 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 + 00033 75 05 jne SHORT $LN5@NcDebugPri -; 555 : return; +; 557 : return; - 0004c e9 03 01 00 00 jmp $LN1@NcDebugPri + 00035 e9 03 01 00 00 jmp $LN1@NcDebugPri $LN5@NcDebugPri: -; 556 : -; 557 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 558 : +; 559 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00051 48 8b 85 40 01 + 0003a 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00058 48 8b 00 mov rax, QWORD PTR [rax] - 0005b 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 0005f eb 0b jmp SHORT $LN4@NcDebugPri + 00041 48 8b 00 mov rax, QWORD PTR [rax] + 00044 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00048 eb 0b jmp SHORT $LN4@NcDebugPri $LN2@NcDebugPri: - 00061 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00065 48 8b 00 mov rax, QWORD PTR [rax] - 00068 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004a 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN4@NcDebugPri: - 0006c 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00071 0f 84 dd 00 00 + 00055 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0005a 0f 84 dd 00 00 00 je $LN3@NcDebugPri - 00077 48 8b 85 40 01 + 00060 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0007e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00082 48 8b 00 mov rax, QWORD PTR [rax] - 00085 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00089 0f 84 c5 00 00 + 00067 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006b 48 8b 00 mov rax, QWORD PTR [rax] + 0006e 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 00072 0f 84 c5 00 00 00 je $LN3@NcDebugPri -; 558 : { -; 559 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 560 : { +; 561 : if (T->Flags & CODE_FLAG_IS_LABEL) - 0008f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00093 8b 40 18 mov eax, DWORD PTR [rax+24] - 00096 83 e0 01 and eax, 1 - 00099 85 c0 test eax, eax - 0009b 74 26 je SHORT $LN6@NcDebugPri + 00078 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0007c 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007f 83 e0 01 and eax, 1 + 00082 85 c0 test eax, eax + 00084 74 26 je SHORT $LN6@NcDebugPri -; 560 : { -; 561 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); +; 562 : { +; 563 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 0009d 66 ba 06 00 mov dx, 6 - 000a1 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 000a5 ff 15 00 00 00 + 00086 66 ba 06 00 mov dx, 6 + 0008a 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 0008e ff 15 00 00 00 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 562 : printf("Label: %u\n", T->Label); +; 564 : printf("Label: %u\n", T->Label); - 000ab 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000af 8b 50 1c mov edx, DWORD PTR [rax+28] - 000b2 48 8d 0d 00 00 + 00094 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00098 8b 50 1c mov edx, DWORD PTR [rax+28] + 0009b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ - 000b9 e8 00 00 00 00 call printf + 000a2 e8 00 00 00 00 call printf -; 563 : } +; 565 : } - 000be e9 8c 00 00 00 jmp $LN7@NcDebugPri + 000a7 e9 8c 00 00 00 jmp $LN7@NcDebugPri $LN6@NcDebugPri: -; 564 : else -; 565 : { -; 566 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); +; 566 : else +; 567 : { +; 568 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - 000c3 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000c7 48 83 c0 30 add rax, 48 ; 00000030H - 000cb 48 8b c8 mov rcx, rax - 000ce e8 00 00 00 00 call xed_decoded_inst_get_iclass - 000d3 89 45 44 mov DWORD PTR IClass$2[rbp], eax + 000ac 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000b0 48 83 c0 30 add rax, 48 ; 00000030H + 000b4 48 8b c8 mov rcx, rax + 000b7 e8 00 00 00 00 call xed_decoded_inst_get_iclass + 000bc 89 45 44 mov DWORD PTR IClass$2[rbp], eax -; 567 : if (T->Flags & CODE_FLAG_IS_REL_JMP) +; 569 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 000d6 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000da 8b 40 18 mov eax, DWORD PTR [rax+24] - 000dd 83 e0 02 and eax, 2 - 000e0 85 c0 test eax, eax - 000e2 74 46 je SHORT $LN8@NcDebugPri + 000bf 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000c3 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c6 83 e0 02 and eax, 2 + 000c9 85 c0 test eax, eax + 000cb 74 46 je SHORT $LN8@NcDebugPri -; 568 : { -; 569 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); +; 570 : { +; 571 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 000e4 66 ba 06 00 mov dx, 6 - 000e8 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 000ec ff 15 00 00 00 + 000cd 66 ba 06 00 mov dx, 6 + 000d1 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 000d5 ff 15 00 00 00 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 570 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); +; 572 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); - 000f2 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000f6 8b 40 1c mov eax, DWORD PTR [rax+28] - 000f9 89 85 14 01 00 + 000db 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000df 8b 40 1c mov eax, DWORD PTR [rax+28] + 000e2 89 85 14 01 00 00 mov DWORD PTR tv131[rbp], eax - 000ff 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] - 00102 e8 00 00 00 00 call xed_iclass_enum_t2str - 00107 48 89 85 18 01 + 000e8 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 000eb e8 00 00 00 00 call xed_iclass_enum_t2str + 000f0 48 89 85 18 01 00 00 mov QWORD PTR tv129[rbp], rax - 0010e 44 8b 85 14 01 + 000f7 44 8b 85 14 01 00 00 mov r8d, DWORD PTR tv131[rbp] - 00115 48 8b 95 18 01 + 000fe 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv129[rbp] - 0011c 48 8d 0d 00 00 + 00105 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ - 00123 e8 00 00 00 00 call printf + 0010c e8 00 00 00 00 call printf -; 571 : } +; 573 : } - 00128 eb 25 jmp SHORT $LN9@NcDebugPri + 00111 eb 25 jmp SHORT $LN9@NcDebugPri $LN8@NcDebugPri: -; 572 : else -; 573 : { -; 574 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); +; 574 : else +; 575 : { +; 576 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); - 0012a 66 ba 03 00 mov dx, 3 - 0012e 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 00132 ff 15 00 00 00 + 00113 66 ba 03 00 mov dx, 3 + 00117 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 0011b ff 15 00 00 00 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 575 : printf("%s\n", XedIClassEnumToString(IClass)); +; 577 : printf("%s\n", XedIClassEnumToString(IClass)); - 00138 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] - 0013b e8 00 00 00 00 call xed_iclass_enum_t2str - 00140 48 8b d0 mov rdx, rax - 00143 48 8d 0d 00 00 + 00121 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 00124 e8 00 00 00 00 call xed_iclass_enum_t2str + 00129 48 8b d0 mov rdx, rax + 0012c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@ - 0014a e8 00 00 00 00 call printf + 00133 e8 00 00 00 00 call printf $LN9@NcDebugPri: $LN7@NcDebugPri: -; 576 : } -; 577 : } -; 578 : } +; 578 : } +; 579 : } +; 580 : } - 0014f e9 0d ff ff ff jmp $LN2@NcDebugPri + 00138 e9 0d ff ff ff jmp $LN2@NcDebugPri $LN3@NcDebugPri: $LN1@NcDebugPri: -; 579 : } +; 581 : } - 00154 48 8d a5 28 01 + 0013d 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 0015b 5f pop rdi - 0015c 5d pop rbp - 0015d c3 ret 0 + 00144 5f pop rdi + 00145 5d pop rbp + 00146 c3 ret 0 ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDebugPrint _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT BlockEnding$ = 8 @@ -9647,7 +9681,7 @@ tv78 = 312 Block$ = 352 ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeleteBlock, COMDAT -; 537 : { +; 539 : { $LN10: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9656,106 +9690,100 @@ $LN10: 00007 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 88 - 01 00 00 mov rcx, QWORD PTR [rsp+392] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 538 : if (!Block->Start || !Block->End) - - 00036 48 8b 85 60 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 540 : if (!Block->Start || !Block->End) + + 0001f 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 74 0e je SHORT $LN6@NcDeleteBl - 00043 48 8b 85 60 01 + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0e je SHORT $LN6@NcDeleteBl + 0002c 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0004a 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0004f 75 05 jne SHORT $LN5@NcDeleteBl + 00033 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00038 75 05 jne SHORT $LN5@NcDeleteBl $LN6@NcDeleteBl: -; 539 : return; +; 541 : return; - 00051 e9 80 00 00 00 jmp $LN1@NcDeleteBl + 0003a e9 80 00 00 00 jmp $LN1@NcDeleteBl $LN5@NcDeleteBl: -; 540 : -; 541 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; +; 542 : +; 543 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; - 00056 48 8b 85 60 01 + 0003f 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0005d 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00061 48 8b 00 mov rax, QWORD PTR [rax] - 00064 48 89 45 08 mov QWORD PTR BlockEnding$[rbp], rax + 00046 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 89 45 08 mov QWORD PTR BlockEnding$[rbp], rax -; 542 : -; 543 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) +; 544 : +; 545 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) - 00068 48 8b 85 60 01 + 00051 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0006f 48 8b 00 mov rax, QWORD PTR [rax] - 00072 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0005b 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN2@NcDeleteBl: - 00076 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0007b 74 59 je SHORT $LN3@NcDeleteBl - 0007d 48 8b 45 08 mov rax, QWORD PTR BlockEnding$[rbp] - 00081 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00085 74 4f je SHORT $LN3@NcDeleteBl + 0005f 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00064 74 59 je SHORT $LN3@NcDeleteBl + 00066 48 8b 45 08 mov rax, QWORD PTR BlockEnding$[rbp] + 0006a 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 0006e 74 4f je SHORT $LN3@NcDeleteBl -; 544 : { -; 545 : PNATIVE_CODE_LINK Next = T->Next; +; 546 : { +; 547 : PNATIVE_CODE_LINK Next = T->Next; - 00087 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0008b 48 8b 00 mov rax, QWORD PTR [rax] - 0008e 48 89 45 48 mov QWORD PTR Next$2[rbp], rax + 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00074 48 8b 00 mov rax, QWORD PTR [rax] + 00077 48 89 45 48 mov QWORD PTR Next$2[rbp], rax -; 546 : delete T; +; 548 : delete T; - 00092 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00096 48 89 85 28 01 + 0007b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0007f 48 89 85 28 01 00 00 mov QWORD PTR $T3[rbp], rax - 0009d 48 83 bd 28 01 + 00086 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 000a5 74 1a je SHORT $LN8@NcDeleteBl - 000a7 ba 01 00 00 00 mov edx, 1 - 000ac 48 8b 8d 28 01 + 0008e 74 1a je SHORT $LN8@NcDeleteBl + 00090 ba 01 00 00 00 mov edx, 1 + 00095 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 000b3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 000b8 48 89 85 38 01 + 0009c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000a1 48 89 85 38 01 00 00 mov QWORD PTR tv78[rbp], rax - 000bf eb 0b jmp SHORT $LN9@NcDeleteBl + 000a8 eb 0b jmp SHORT $LN9@NcDeleteBl $LN8@NcDeleteBl: - 000c1 48 c7 85 38 01 + 000aa 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 $LN9@NcDeleteBl: -; 547 : T = Next; +; 549 : T = Next; - 000cc 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] - 000d0 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 000b5 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] + 000b9 48 89 45 28 mov QWORD PTR T$1[rbp], rax -; 548 : } +; 550 : } - 000d4 eb a0 jmp SHORT $LN2@NcDeleteBl + 000bd eb a0 jmp SHORT $LN2@NcDeleteBl $LN3@NcDeleteBl: $LN1@NcDeleteBl: -; 549 : } +; 551 : } - 000d6 48 8d a5 48 01 + 000bf 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 000dd 5f pop rdi - 000de 5d pop rbp - 000df c3 ret 0 + 000c6 5f pop rdi + 000c7 5d pop rbp + 000c8 c3 ret 0 ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeleteBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z _TEXT SEGMENT Buffer$ = 8 @@ -9765,7 +9793,7 @@ Block$ = 320 OutSize$ = 328 ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z PROC ; NcAssemble, COMDAT -; 512 : { +; 514 : { $LN9: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9775,146 +9803,140 @@ $LN9: 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 513 : if (!NcFixRelJmps(Block)) + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 8d 40 01 +; 515 : if (!NcFixRelJmps(Block)) + + 00024 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00042 e8 00 00 00 00 call ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps - 00047 85 c0 test eax, eax - 00049 75 07 jne SHORT $LN5@NcAssemble + 0002b e8 00 00 00 00 call ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps + 00030 85 c0 test eax, eax + 00032 75 07 jne SHORT $LN5@NcAssemble -; 514 : return NULL; +; 516 : return NULL; - 0004b 33 c0 xor eax, eax - 0004d e9 bc 00 00 00 jmp $LN1@NcAssemble + 00034 33 c0 xor eax, eax + 00036 e9 bc 00 00 00 jmp $LN1@NcAssemble $LN5@NcAssemble: -; 515 : -; 516 : *OutSize = NcCalcBlockSizeInBytes(Block); +; 517 : +; 518 : *OutSize = NcCalcBlockSizeInBytes(Block); - 00052 48 8b 8d 40 01 + 0003b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00059 e8 00 00 00 00 call ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSizeInBytes - 0005e 48 8b 8d 48 01 + 00042 e8 00 00 00 00 call ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSizeInBytes + 00047 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR OutSize$[rbp] - 00065 89 01 mov DWORD PTR [rcx], eax + 0004e 89 01 mov DWORD PTR [rcx], eax -; 517 : -; 518 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); +; 519 : +; 520 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); - 00067 48 8b 85 48 01 + 00050 48 8b 85 48 01 00 00 mov rax, QWORD PTR OutSize$[rbp] - 0006e 8b 00 mov eax, DWORD PTR [rax] - 00070 8b c8 mov ecx, eax - 00072 ff 15 00 00 00 + 00057 8b 00 mov eax, DWORD PTR [rax] + 00059 8b c8 mov ecx, eax + 0005b ff 15 00 00 00 00 call QWORD PTR __imp_malloc - 00078 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax + 00061 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax -; 519 : if (!Buffer) +; 521 : if (!Buffer) - 0007c 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 - 00081 75 07 jne SHORT $LN6@NcAssemble + 00065 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 + 0006a 75 07 jne SHORT $LN6@NcAssemble -; 520 : return NULL; +; 522 : return NULL; - 00083 33 c0 xor eax, eax - 00085 e9 84 00 00 00 jmp $LN1@NcAssemble + 0006c 33 c0 xor eax, eax + 0006e e9 84 00 00 00 jmp $LN1@NcAssemble $LN6@NcAssemble: -; 521 : -; 522 : PUCHAR BufferOffset = Buffer; +; 523 : +; 524 : PUCHAR BufferOffset = Buffer; - 0008a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] - 0008e 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 00073 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 00077 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax -; 523 : -; 524 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 525 : +; 526 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00092 48 8b 85 40 01 + 0007b 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00099 48 8b 00 mov rax, QWORD PTR [rax] - 0009c 48 89 45 48 mov QWORD PTR T$1[rbp], rax - 000a0 eb 0b jmp SHORT $LN4@NcAssemble + 00082 48 8b 00 mov rax, QWORD PTR [rax] + 00085 48 89 45 48 mov QWORD PTR T$1[rbp], rax + 00089 eb 0b jmp SHORT $LN4@NcAssemble $LN2@NcAssemble: - 000a2 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000a6 48 8b 00 mov rax, QWORD PTR [rax] - 000a9 48 89 45 48 mov QWORD PTR T$1[rbp], rax + 0008b 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 0008f 48 8b 00 mov rax, QWORD PTR [rax] + 00092 48 89 45 48 mov QWORD PTR T$1[rbp], rax $LN4@NcAssemble: - 000ad 48 83 7d 48 00 cmp QWORD PTR T$1[rbp], 0 - 000b2 74 56 je SHORT $LN3@NcAssemble - 000b4 48 8b 85 40 01 + 00096 48 83 7d 48 00 cmp QWORD PTR T$1[rbp], 0 + 0009b 74 56 je SHORT $LN3@NcAssemble + 0009d 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000bb 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000bf 48 8b 00 mov rax, QWORD PTR [rax] - 000c2 48 39 45 48 cmp QWORD PTR T$1[rbp], rax - 000c6 74 42 je SHORT $LN3@NcAssemble + 000a4 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 48 39 45 48 cmp QWORD PTR T$1[rbp], rax + 000af 74 42 je SHORT $LN3@NcAssemble -; 525 : { -; 526 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 527 : { +; 528 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000c8 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000cc 8b 40 18 mov eax, DWORD PTR [rax+24] - 000cf 83 e0 01 and eax, 1 - 000d2 85 c0 test eax, eax - 000d4 74 02 je SHORT $LN7@NcAssemble + 000b1 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000b5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000b8 83 e0 01 and eax, 1 + 000bb 85 c0 test eax, eax + 000bd 74 02 je SHORT $LN7@NcAssemble -; 527 : continue; +; 529 : continue; - 000d6 eb ca jmp SHORT $LN2@NcAssemble + 000bf eb ca jmp SHORT $LN2@NcAssemble $LN7@NcAssemble: -; 528 : -; 529 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); +; 530 : +; 531 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); - 000d8 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000dc 8b 40 28 mov eax, DWORD PTR [rax+40] - 000df 44 8b c0 mov r8d, eax - 000e2 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000e6 48 8b 50 20 mov rdx, QWORD PTR [rax+32] - 000ea 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] - 000ee e8 00 00 00 00 call memcpy + 000c1 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000c5 8b 40 28 mov eax, DWORD PTR [rax+40] + 000c8 44 8b c0 mov r8d, eax + 000cb 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000cf 48 8b 50 20 mov rdx, QWORD PTR [rax+32] + 000d3 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] + 000d7 e8 00 00 00 00 call memcpy -; 530 : BufferOffset += T->RawDataSize; +; 532 : BufferOffset += T->RawDataSize; - 000f3 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000f7 8b 40 28 mov eax, DWORD PTR [rax+40] - 000fa 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] - 000fe 48 03 c8 add rcx, rax - 00101 48 8b c1 mov rax, rcx - 00104 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 000dc 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000e0 8b 40 28 mov eax, DWORD PTR [rax+40] + 000e3 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] + 000e7 48 03 c8 add rcx, rax + 000ea 48 8b c1 mov rax, rcx + 000ed 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax -; 531 : } +; 533 : } - 00108 eb 98 jmp SHORT $LN2@NcAssemble + 000f1 eb 98 jmp SHORT $LN2@NcAssemble $LN3@NcAssemble: -; 532 : -; 533 : return Buffer; +; 534 : +; 535 : return Buffer; - 0010a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 000f3 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] $LN1@NcAssemble: -; 534 : } +; 536 : } - 0010e 48 8d a5 28 01 + 000f7 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 000fe 5f pop rdi + 000ff 5d pop rbp + 00100 c3 ret 0 ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ENDP ; NcAssemble _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z _TEXT SEGMENT Buf$ = 8 @@ -9934,7 +9956,7 @@ Buffer$ = 520 BufferSize$ = 528 ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z PROC ; NcDisassemble, COMDAT -; 480 : { +; 482 : { $LN13: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -9945,241 +9967,235 @@ $LN13: 00011 48 81 ec 08 02 00 00 sub rsp, 520 ; 00000208H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 82 00 00 00 mov ecx, 130 ; 00000082H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 02 00 00 mov rcx, QWORD PTR [rsp+552] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 481 : PUCHAR Buf = (PUCHAR)Buffer; - - 00040 48 8b 85 08 02 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 483 : PUCHAR Buf = (PUCHAR)Buffer; + + 00029 48 8b 85 08 02 00 00 mov rax, QWORD PTR Buffer$[rbp] - 00047 48 89 45 08 mov QWORD PTR Buf$[rbp], rax + 00030 48 89 45 08 mov QWORD PTR Buf$[rbp], rax -; 482 : ULONG Offset = 0; +; 484 : ULONG Offset = 0; - 0004b c7 45 24 00 00 + 00034 c7 45 24 00 00 00 00 mov DWORD PTR Offset$[rbp], 0 $LN2@NcDisassem: -; 483 : -; 484 : while (Offset < BufferSize) +; 485 : +; 486 : while (Offset < BufferSize) - 00052 8b 85 10 02 00 + 0003b 8b 85 10 02 00 00 mov eax, DWORD PTR BufferSize$[rbp] - 00058 39 45 24 cmp DWORD PTR Offset$[rbp], eax - 0005b 0f 83 b8 01 00 + 00041 39 45 24 cmp DWORD PTR Offset$[rbp], eax + 00044 0f 83 b8 01 00 00 jae $LN3@NcDisassem -; 485 : { -; 486 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; +; 487 : { +; 488 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; - 00061 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00066 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0006b 48 89 85 88 01 + 0004a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0004f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00054 48 89 85 88 01 00 00 mov QWORD PTR $T5[rbp], rax - 00072 48 83 bd 88 01 + 0005b 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0007a 74 15 je SHORT $LN6@NcDisassem - 0007c 48 8b 8d 88 01 + 00063 74 15 je SHORT $LN6@NcDisassem + 00065 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00083 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00088 48 89 85 d8 01 + 0006c e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00071 48 89 85 d8 01 00 00 mov QWORD PTR tv76[rbp], rax - 0008f eb 0b jmp SHORT $LN7@NcDisassem + 00078 eb 0b jmp SHORT $LN7@NcDisassem $LN6@NcDisassem: - 00091 48 c7 85 d8 01 + 0007a 48 c7 85 d8 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN7@NcDisassem: - 0009c 48 8b 85 d8 01 + 00085 48 8b 85 d8 01 00 00 mov rax, QWORD PTR tv76[rbp] - 000a3 48 89 85 68 01 + 0008c 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 000aa 48 8b 85 68 01 + 00093 48 8b 85 68 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b1 48 89 45 48 mov QWORD PTR Link$1[rbp], rax + 0009a 48 89 45 48 mov QWORD PTR Link$1[rbp], rax -; 487 : Link->Flags = CODE_FLAG_IS_INST; +; 489 : Link->Flags = CODE_FLAG_IS_INST; - 000b5 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 000b9 c7 40 18 04 00 + 0009e 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 000a2 c7 40 18 04 00 00 00 mov DWORD PTR [rax+24], 4 -; 488 : ULONG PossibleSize = min(15, BufferSize - Offset); +; 490 : ULONG PossibleSize = min(15, BufferSize - Offset); - 000c0 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000c3 8b 8d 10 02 00 + 000a9 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000ac 8b 8d 10 02 00 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000c9 2b c8 sub ecx, eax - 000cb 8b c1 mov eax, ecx - 000cd 83 f8 0f cmp eax, 15 - 000d0 76 0c jbe SHORT $LN8@NcDisassem - 000d2 c7 85 d4 01 00 + 000b2 2b c8 sub ecx, eax + 000b4 8b c1 mov eax, ecx + 000b6 83 f8 0f cmp eax, 15 + 000b9 76 0c jbe SHORT $LN8@NcDisassem + 000bb c7 85 d4 01 00 00 0f 00 00 00 mov DWORD PTR tv80[rbp], 15 - 000dc eb 13 jmp SHORT $LN9@NcDisassem + 000c5 eb 13 jmp SHORT $LN9@NcDisassem $LN8@NcDisassem: - 000de 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000e1 8b 8d 10 02 00 + 000c7 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000ca 8b 8d 10 02 00 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000e7 2b c8 sub ecx, eax - 000e9 8b c1 mov eax, ecx - 000eb 89 85 d4 01 00 + 000d0 2b c8 sub ecx, eax + 000d2 8b c1 mov eax, ecx + 000d4 89 85 d4 01 00 00 mov DWORD PTR tv80[rbp], eax $LN9@NcDisassem: - 000f1 8b 85 d4 01 00 + 000da 8b 85 d4 01 00 00 mov eax, DWORD PTR tv80[rbp] - 000f7 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax - -; 489 : 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 + 000e0 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax + +; 491 : 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 00 mov DWORD PTR DecodeError$3[rbp], eax -; 490 : if (DecodeError != XED_ERROR_NONE) +; 492 : if (DecodeError != XED_ERROR_NONE) - 00121 83 bd 84 00 00 + 0010a 83 bd 84 00 00 00 00 cmp DWORD PTR DecodeError$3[rbp], 0 - 00128 74 67 je SHORT $LN4@NcDisassem + 00111 74 67 je SHORT $LN4@NcDisassem -; 491 : { -; 492 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); +; 493 : { +; 494 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); - 0012a 8b 8d 84 00 00 + 00113 8b 8d 84 00 00 00 mov ecx, DWORD PTR DecodeError$3[rbp] - 00130 e8 00 00 00 00 call xed_error_enum_t2str - 00135 48 8b d0 mov rdx, rax - 00138 48 8d 0d 00 00 + 00119 e8 00 00 00 00 call xed_error_enum_t2str + 0011e 48 8b d0 mov rdx, rax + 00121 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ - 0013f e8 00 00 00 00 call printf + 00128 e8 00 00 00 00 call printf -; 493 : NcDeleteBlock(Block); +; 495 : NcDeleteBlock(Block); - 00144 48 8b 8d 00 02 + 0012d 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00134 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 494 : delete Link; +; 496 : delete Link; - 00150 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 00154 48 89 85 a8 01 + 00139 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 0013d 48 89 85 a8 01 00 00 mov QWORD PTR $T6[rbp], rax - 0015b 48 83 bd a8 01 + 00144 48 83 bd a8 01 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 00163 74 1a je SHORT $LN10@NcDisassem - 00165 ba 01 00 00 00 mov edx, 1 - 0016a 48 8b 8d a8 01 + 0014c 74 1a je SHORT $LN10@NcDisassem + 0014e ba 01 00 00 00 mov edx, 1 + 00153 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR $T6[rbp] - 00171 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00176 48 89 85 d8 01 + 0015a e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 0015f 48 89 85 d8 01 00 00 mov QWORD PTR tv130[rbp], rax - 0017d eb 0b jmp SHORT $LN11@NcDisassem + 00166 eb 0b jmp SHORT $LN11@NcDisassem $LN10@NcDisassem: - 0017f 48 c7 85 d8 01 + 00168 48 c7 85 d8 01 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 $LN11@NcDisassem: -; 495 : return FALSE; +; 497 : return FALSE; - 0018a 33 c0 xor eax, eax - 0018c e9 99 00 00 00 jmp $LN1@NcDisassem + 00173 33 c0 xor eax, eax + 00175 e9 99 00 00 00 jmp $LN1@NcDisassem $LN4@NcDisassem: -; 496 : } -; 497 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); +; 498 : } +; 499 : 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 + +; 500 : Link->RawData = new UCHAR[Link->RawDataSize]; 00191 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 00195 48 83 c0 30 add rax, 48 ; 00000030H - 00199 48 8b c8 mov rcx, rax - 0019c e8 00 00 00 00 call xed_decoded_inst_get_length - 001a1 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] - 001a5 89 41 28 mov DWORD PTR [rcx+40], eax - -; 498 : 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 + 00195 8b 40 28 mov eax, DWORD PTR [rax+40] + 00198 8b c8 mov ecx, eax + 0019a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 0019f 48 89 85 c8 01 00 00 mov QWORD PTR $T7[rbp], rax - 001bd 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001c1 48 8b 8d c8 01 + 001a6 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001aa 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR $T7[rbp] - 001c8 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 499 : 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 - -; 500 : -; 501 : 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] - 001fe e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001b1 48 89 48 20 mov QWORD PTR [rax+32], rcx + +; 501 : 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 ; 502 : -; 503 : Offset += Link->RawDataSize; +; 503 : NcAppendToBlock(Block, Link); + + 001dc 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] + 001e0 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 001e7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock - 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 +; 504 : +; 505 : Offset += Link->RawDataSize; -; 504 : } + 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 - 00214 e9 39 fe ff ff jmp $LN2@NcDisassem +; 506 : } + + 001fd e9 39 fe ff ff jmp $LN2@NcDisassem $LN3@NcDisassem: -; 505 : -; 506 : NcCreateLabels(Block); +; 507 : +; 508 : NcCreateLabels(Block); - 00219 48 8b 8d 00 02 + 00202 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 00220 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels + 00209 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels -; 507 : -; 508 : return TRUE; +; 509 : +; 510 : return TRUE; - 00225 b8 01 00 00 00 mov eax, 1 + 0020e b8 01 00 00 00 mov eax, 1 $LN1@NcDisassem: -; 509 : } +; 511 : } - 0022a 48 8d a5 e8 01 + 00213 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] - 00231 5f pop rdi - 00232 5d pop rbp - 00233 c3 ret 0 + 0021a 5f pop rdi + 0021b 5d pop rbp + 0021c c3 ret 0 ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ENDP ; NcDisassemble _TEXT ENDS ; COMDAT text$x @@ -10252,7 +10268,7 @@ BufferSize$ = 528 ?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA ENDP ; `NcDisassemble'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$9 = 8 @@ -10275,7 +10291,7 @@ __$ArrayPad$ = 1816 Block$ = 1856 ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcFixRelJmps, COMDAT -; 397 : { +; 399 : { $LN19: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -10285,436 +10301,436 @@ $LN19: 00008 48 81 ec 50 07 00 00 sub rsp, 1872 ; 00000750H 0000f 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00014 48 8b fc mov rdi, rsp - 00017 b9 d4 01 00 00 mov ecx, 468 ; 000001d4H - 0001c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00021 f3 ab rep stosd - 00023 48 8b 8c 24 78 + 00014 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00019 b9 38 01 00 00 mov ecx, 312 ; 00000138H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 78 07 00 00 mov rcx, QWORD PTR [rsp+1912] - 0002b 48 8b 05 00 00 + 0002d 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00032 48 33 c5 xor rax, rbp - 00035 48 89 85 18 07 + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 18 07 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00043 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 398 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 400 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) - 00048 48 8b 85 40 07 + 0004a 48 8b 85 40 07 00 00 mov rax, QWORD PTR Block$[rbp] - 0004f 48 8b 00 mov rax, QWORD PTR [rax] - 00052 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 00051 48 8b 00 mov rax, QWORD PTR [rax] + 00054 48 89 45 08 mov QWORD PTR T$9[rbp], rax $LN2@NcFixRelJm: - 00056 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 - 0005b 0f 84 ec 02 00 + 00058 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 + 0005d 0f 84 ec 02 00 00 je $LN3@NcFixRelJm - 00061 48 8b 85 40 07 + 00063 48 8b 85 40 07 00 00 mov rax, QWORD PTR Block$[rbp] - 00068 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006c 48 8b 00 mov rax, QWORD PTR [rax] - 0006f 48 39 45 08 cmp QWORD PTR T$9[rbp], rax - 00073 0f 84 d4 02 00 + 0006a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006e 48 8b 00 mov rax, QWORD PTR [rax] + 00071 48 39 45 08 cmp QWORD PTR T$9[rbp], rax + 00075 0f 84 d4 02 00 00 je $LN3@NcFixRelJm -; 399 : { -; 400 : if (T->Flags & CODE_FLAG_IS_REL_JMP) +; 401 : { +; 402 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 00079 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0007d 8b 40 18 mov eax, DWORD PTR [rax+24] - 00080 83 e0 02 and eax, 2 - 00083 85 c0 test eax, eax - 00085 0f 84 b2 02 00 + 0007b 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0007f 8b 40 18 mov eax, DWORD PTR [rax+24] + 00082 83 e0 02 and eax, 2 + 00085 85 c0 test eax, eax + 00087 0f 84 b2 02 00 00 je $LN7@NcFixRelJm -; 401 : { -; 402 : INT32 BranchDisp = 0; +; 403 : { +; 404 : INT32 BranchDisp = 0; - 0008b c7 45 24 00 00 + 0008d c7 45 24 00 00 00 00 mov DWORD PTR BranchDisp$10[rbp], 0 -; 403 : if (!NcGetDeltaToLabel(T, &BranchDisp)) +; 405 : if (!NcGetDeltaToLabel(T, &BranchDisp)) - 00092 48 8d 55 24 lea rdx, QWORD PTR BranchDisp$10[rbp] - 00096 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 0009a e8 00 00 00 00 call ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel - 0009f 85 c0 test eax, eax - 000a1 75 07 jne SHORT $LN8@NcFixRelJm + 00094 48 8d 55 24 lea rdx, QWORD PTR BranchDisp$10[rbp] + 00098 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 0009c e8 00 00 00 00 call ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel + 000a1 85 c0 test eax, eax + 000a3 75 07 jne SHORT $LN8@NcFixRelJm -; 404 : return FALSE; +; 406 : return FALSE; - 000a3 33 c0 xor eax, eax - 000a5 e9 a8 02 00 00 jmp $LN1@NcFixRelJm + 000a5 33 c0 xor eax, eax + 000a7 e9 a8 02 00 00 jmp $LN1@NcFixRelJm $LN8@NcFixRelJm: -; 405 : -; 406 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); +; 407 : +; 408 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); - 000aa 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 000ae 48 83 c0 30 add rax, 48 ; 00000030H - 000b2 48 8b c8 mov rcx, rax - 000b5 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width_bits - 000ba 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 000ac 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 000b0 48 83 c0 30 add rax, 48 ; 00000030H + 000b4 48 8b c8 mov rcx, rax + 000b7 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width_bits + 000bc 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax -; 407 : if (log2(abs(BranchDisp)) + 1 > DispWidth) +; 409 : if (log2(abs(BranchDisp)) + 1 > DispWidth) - 000bd 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] - 000c0 e8 00 00 00 00 call abs - 000c5 8b c8 mov ecx, eax - 000c7 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 - 000cc f2 0f 58 05 00 + 000bf 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] + 000c2 e8 00 00 00 00 call abs + 000c7 8b c8 mov ecx, eax + 000c9 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 + 000ce f2 0f 58 05 00 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 - 000d4 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 000d7 f2 48 0f 2a c8 cvtsi2sd xmm1, rax - 000dc 66 0f 2f c1 comisd xmm0, xmm1 - 000e0 0f 86 c3 01 00 + 000d6 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 000d9 f2 48 0f 2a c8 cvtsi2sd xmm1, rax + 000de 66 0f 2f c1 comisd xmm0, xmm1 + 000e2 0f 86 c3 01 00 00 jbe $LN9@NcFixRelJm -; 408 : { -; 409 : //duh oh -; 410 : if (DispWidth == 32) +; 410 : { +; 411 : //duh oh +; 412 : if (DispWidth == 32) - 000e6 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H - 000ea 75 07 jne SHORT $LN11@NcFixRelJm + 000e8 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + 000ec 75 07 jne SHORT $LN11@NcFixRelJm -; 411 : return FALSE; +; 413 : return FALSE; - 000ec 33 c0 xor eax, eax - 000ee e9 5f 02 00 00 jmp $LN1@NcFixRelJm + 000ee 33 c0 xor eax, eax + 000f0 e9 5f 02 00 00 jmp $LN1@NcFixRelJm $LN11@NcFixRelJm: -; 412 : -; 413 : ////Grow displacement width to required size -; 414 : //DispWidth *= 2; -; 415 : -; 416 : ////Check again -; 417 : //if (log2(abs(BranchDisp)) + 1 > DispWidth) -; 418 : //{ -; 419 : // if (DispWidth == 32) -; 420 : // return FALSE; -; 421 : -; 422 : // //Grow once more if not already at 32 -; 423 : // DispWidth *= 2; -; 424 : //} -; 425 : -; 426 : DispWidth = 32; - - 000f3 c7 45 44 20 00 +; 414 : +; 415 : ////Grow displacement width to required size +; 416 : //DispWidth *= 2; +; 417 : +; 418 : ////Check again +; 419 : //if (log2(abs(BranchDisp)) + 1 > DispWidth) +; 420 : //{ +; 421 : // if (DispWidth == 32) +; 422 : // return FALSE; +; 423 : +; 424 : // //Grow once more if not already at 32 +; 425 : // DispWidth *= 2; +; 426 : //} +; 427 : +; 428 : DispWidth = 32; + + 000f5 c7 45 44 20 00 00 00 mov DWORD PTR DispWidth$11[rbp], 32 ; 00000020H -; 427 : -; 428 : //Encode new instruction -; 429 : XED_STATE MachineState; -; 430 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; +; 429 : +; 430 : //Encode new instruction +; 431 : XED_STATE MachineState; +; 432 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 000fa c7 45 68 01 00 + 000fc c7 45 68 01 00 00 00 mov DWORD PTR MachineState$12[rbp], 1 -; 431 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; +; 433 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00101 c7 45 6c 08 00 + 00103 c7 45 6c 08 00 00 00 mov DWORD PTR MachineState$12[rbp+4], 8 -; 432 : XED_ENCODER_INSTRUCTION EncoderInstruction; -; 433 : XED_ENCODER_REQUEST EncoderRequest; -; 434 : UCHAR EncodeBuffer[15]; -; 435 : UINT ReturnedSize; -; 436 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - - 00108 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0010c 48 83 c0 30 add rax, 48 ; 00000030H - 00110 48 8b c8 mov rcx, rax - 00113 e8 00 00 00 00 call xed_decoded_inst_get_iclass - 00118 89 85 74 03 00 +; 434 : XED_ENCODER_INSTRUCTION EncoderInstruction; +; 435 : XED_ENCODER_REQUEST EncoderRequest; +; 436 : UCHAR EncodeBuffer[15]; +; 437 : UINT ReturnedSize; +; 438 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); + + 0010a 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0010e 48 83 c0 30 add rax, 48 ; 00000030H + 00112 48 8b c8 mov rcx, rax + 00115 e8 00 00 00 00 call xed_decoded_inst_get_iclass + 0011a 89 85 74 03 00 00 mov DWORD PTR IClass$17[rbp], eax -; 437 : -; 438 : //Do the encoding -; 439 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); +; 439 : +; 440 : //Do the encoding +; 441 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); - 0011e 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] - 00122 33 d2 xor edx, edx - 00124 48 8d 8d 48 06 + 00120 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] + 00124 33 d2 xor edx, edx + 00126 48 8d 8d 48 06 00 00 lea rcx, QWORD PTR $T20[rbp] - 0012b e8 00 00 00 00 call xed_relbr - 00130 48 8d 8d f8 05 + 0012d e8 00 00 00 00 call xed_relbr + 00132 48 8d 8d f8 05 00 00 lea rcx, QWORD PTR $T19[rbp] - 00137 48 8b f9 mov rdi, rcx - 0013a 48 8b f0 mov rsi, rax - 0013d b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00142 f3 a4 rep movsb - 00144 48 8d 85 e0 06 + 00139 48 8b f9 mov rdi, rcx + 0013c 48 8b f0 mov rsi, rax + 0013f b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00144 f3 a4 rep movsb + 00146 48 8d 85 e0 06 00 00 lea rax, QWORD PTR $T23[rbp] - 0014b 48 8d 8d f8 05 + 0014d 48 8d 8d f8 05 00 00 lea rcx, QWORD PTR $T19[rbp] - 00152 48 8b f8 mov rdi, rax - 00155 48 8b f1 mov rsi, rcx - 00158 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0015d f3 a4 rep movsb - 0015f 48 8d 85 e0 06 + 00154 48 8b f8 mov rdi, rax + 00157 48 8b f1 mov rsi, rcx + 0015a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0015f f3 a4 rep movsb + 00161 48 8d 85 e0 06 00 00 lea rax, QWORD PTR $T23[rbp] - 00166 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0016b 44 8b 4d 44 mov r9d, DWORD PTR DispWidth$11[rbp] - 0016f 44 8b 85 74 03 + 00168 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0016d 44 8b 4d 44 mov r9d, DWORD PTR DispWidth$11[rbp] + 00171 44 8b 85 74 03 00 00 mov r8d, DWORD PTR IClass$17[rbp] - 00176 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] - 0017a 48 8d 8d 90 00 + 00178 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] + 0017c 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR EncoderInstruction$13[rbp] - 00181 e8 00 00 00 00 call xed_inst1 + 00183 e8 00 00 00 00 call xed_inst1 -; 440 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); +; 442 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 00186 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 0018a 48 8d 8d 50 02 + 00188 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 0018c 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 00191 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 00193 e8 00 00 00 00 call xed_encoder_request_zero_set_mode -; 441 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) +; 443 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 00196 48 8d 95 90 00 + 00198 48 8d 95 90 00 00 00 lea rdx, QWORD PTR EncoderInstruction$13[rbp] - 0019d 48 8d 8d 50 02 + 0019f 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001a4 e8 00 00 00 00 call xed_convert_to_encoder_request - 001a9 85 c0 test eax, eax - 001ab 75 07 jne SHORT $LN12@NcFixRelJm + 001a6 e8 00 00 00 00 call xed_convert_to_encoder_request + 001ab 85 c0 test eax, eax + 001ad 75 07 jne SHORT $LN12@NcFixRelJm -; 442 : return FALSE; +; 444 : return FALSE; - 001ad 33 c0 xor eax, eax - 001af e9 9e 01 00 00 jmp $LN1@NcFixRelJm + 001af 33 c0 xor eax, eax + 001b1 e9 9e 01 00 00 jmp $LN1@NcFixRelJm $LN12@NcFixRelJm: -; 443 : XED_ERROR_ENUM Err = XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize); +; 445 : XED_ERROR_ENUM Err = XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize); - 001b4 4c 8d 8d 54 03 + 001b6 4c 8d 8d 54 03 00 00 lea r9, QWORD PTR ReturnedSize$16[rbp] - 001bb 41 b8 0f 00 00 + 001bd 41 b8 0f 00 00 00 mov r8d, 15 - 001c1 48 8d 95 28 03 + 001c3 48 8d 95 28 03 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 001c8 48 8d 8d 50 02 + 001ca 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001cf e8 00 00 00 00 call xed_encode - 001d4 89 85 94 03 00 + 001d1 e8 00 00 00 00 call xed_encode + 001d6 89 85 94 03 00 00 mov DWORD PTR Err$18[rbp], eax -; 444 : if (XED_ERROR_NONE != Err) +; 446 : if (XED_ERROR_NONE != Err) - 001da 83 bd 94 03 00 + 001dc 83 bd 94 03 00 00 00 cmp DWORD PTR Err$18[rbp], 0 - 001e1 74 07 je SHORT $LN13@NcFixRelJm + 001e3 74 07 je SHORT $LN13@NcFixRelJm -; 445 : return FALSE; +; 447 : return FALSE; - 001e3 33 c0 xor eax, eax - 001e5 e9 68 01 00 00 jmp $LN1@NcFixRelJm + 001e5 33 c0 xor eax, eax + 001e7 e9 68 01 00 00 jmp $LN1@NcFixRelJm $LN13@NcFixRelJm: -; 446 : -; 447 : //fixup T->RawData -; 448 : delete[] T->RawData; +; 448 : +; 449 : //fixup T->RawData +; 450 : delete[] T->RawData; - 001ea 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 001ee 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 001f2 48 89 85 98 06 + 001ec 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 001f0 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 001f4 48 89 85 98 06 00 00 mov QWORD PTR $T21[rbp], rax - 001f9 48 8b 8d 98 06 + 001fb 48 8b 8d 98 06 00 00 mov rcx, QWORD PTR $T21[rbp] - 00200 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] + 00202 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] -; 449 : T->RawDataSize = ReturnedSize; +; 451 : T->RawDataSize = ReturnedSize; - 00205 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00209 8b 8d 54 03 00 + 00207 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0020b 8b 8d 54 03 00 00 mov ecx, DWORD PTR ReturnedSize$16[rbp] - 0020f 89 48 28 mov DWORD PTR [rax+40], ecx + 00211 89 48 28 mov DWORD PTR [rax+40], ecx -; 450 : T->RawData = new UCHAR[ReturnedSize]; +; 452 : T->RawData = new UCHAR[ReturnedSize]; - 00212 8b 85 54 03 00 + 00214 8b 85 54 03 00 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 00218 8b c8 mov ecx, eax - 0021a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 0021f 48 89 85 b8 06 + 0021a 8b c8 mov ecx, eax + 0021c e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 00221 48 89 85 b8 06 00 00 mov QWORD PTR $T22[rbp], rax - 00226 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0022a 48 8b 8d b8 06 + 00228 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0022c 48 8b 8d b8 06 00 00 mov rcx, QWORD PTR $T22[rbp] - 00231 48 89 48 20 mov QWORD PTR [rax+32], rcx + 00233 48 89 48 20 mov QWORD PTR [rax+32], rcx -; 451 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); +; 453 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); - 00235 8b 85 54 03 00 + 00237 8b 85 54 03 00 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 0023b 44 8b c0 mov r8d, eax - 0023e 48 8d 95 28 03 + 0023d 44 8b c0 mov r8d, eax + 00240 48 8d 95 28 03 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 00245 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00249 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 0024d e8 00 00 00 00 call memcpy - -; 452 : -; 453 : //Decode instruction so its proper and all that -; 454 : XedDecodedInstZeroSetMode(&T->XedInstruction, &MachineState); - - 00252 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00256 48 83 c0 30 add rax, 48 ; 00000030H - 0025a 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 0025e 48 8b c8 mov rcx, rax - 00261 e8 00 00 00 00 call xed_decoded_inst_zero_set_mode - -; 455 : if (XED_ERROR_NONE != XedDecode(&T->XedInstruction, T->RawData, T->RawDataSize)) - - 00266 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0026a 48 83 c0 30 add rax, 48 ; 00000030H - 0026e 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00272 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00276 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 0027a 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0027e 48 8b c8 mov rcx, rax - 00281 e8 00 00 00 00 call xed_decode - 00286 85 c0 test eax, eax - 00288 74 07 je SHORT $LN14@NcFixRelJm - -; 456 : return FALSE; - - 0028a 33 c0 xor eax, eax - 0028c e9 c1 00 00 00 jmp $LN1@NcFixRelJm + 00247 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0024b 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 0024f e8 00 00 00 00 call memcpy + +; 454 : +; 455 : //Decode instruction so its proper and all that +; 456 : XedDecodedInstZeroSetMode(&T->XedInstruction, &MachineState); + + 00254 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00258 48 83 c0 30 add rax, 48 ; 00000030H + 0025c 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 00260 48 8b c8 mov rcx, rax + 00263 e8 00 00 00 00 call xed_decoded_inst_zero_set_mode + +; 457 : if (XED_ERROR_NONE != XedDecode(&T->XedInstruction, T->RawData, T->RawDataSize)) + + 00268 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0026c 48 83 c0 30 add rax, 48 ; 00000030H + 00270 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00274 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00278 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 0027c 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00280 48 8b c8 mov rcx, rax + 00283 e8 00 00 00 00 call xed_decode + 00288 85 c0 test eax, eax + 0028a 74 07 je SHORT $LN14@NcFixRelJm + +; 458 : return FALSE; + + 0028c 33 c0 xor eax, eax + 0028e e9 c1 00 00 00 jmp $LN1@NcFixRelJm $LN14@NcFixRelJm: -; 457 : -; 458 : //Go back to the start and loop through all labels again because now this instruction is larger :)))) -; 459 : T = Block->Start; +; 459 : +; 460 : //Go back to the start and loop through all labels again because now this instruction is larger :)))) +; 461 : T = Block->Start; - 00291 48 8b 85 40 07 + 00293 48 8b 85 40 07 00 00 mov rax, QWORD PTR Block$[rbp] - 00298 48 8b 00 mov rax, QWORD PTR [rax] - 0029b 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 0029a 48 8b 00 mov rax, QWORD PTR [rax] + 0029d 48 89 45 08 mov QWORD PTR T$9[rbp], rax -; 460 : continue; +; 462 : continue; - 0029f e9 b2 fd ff ff jmp $LN2@NcFixRelJm + 002a1 e9 b2 fd ff ff jmp $LN2@NcFixRelJm -; 461 : } +; 463 : } - 002a4 e9 94 00 00 00 jmp $LN10@NcFixRelJm + 002a6 e9 94 00 00 00 jmp $LN10@NcFixRelJm $LN9@NcFixRelJm: -; 462 : else -; 463 : { -; 464 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); +; 464 : else +; 465 : { +; 466 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); - 002a9 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 002ad 48 83 c0 30 add rax, 48 ; 00000030H - 002b1 48 8b c8 mov rcx, rax - 002b4 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width - 002b9 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 002ab 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 002af 48 83 c0 30 add rax, 48 ; 00000030H + 002b3 48 8b c8 mov rcx, rax + 002b6 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width + 002bb 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax -; 465 : switch (DispWidth) +; 467 : switch (DispWidth) - 002bc 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 002bf 89 85 14 07 00 + 002be 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 002c1 89 85 14 07 00 00 mov DWORD PTR tv174[rbp], eax - 002c5 83 bd 14 07 00 + 002c7 83 bd 14 07 00 00 01 cmp DWORD PTR tv174[rbp], 1 - 002cc 74 14 je SHORT $LN15@NcFixRelJm - 002ce 83 bd 14 07 00 + 002ce 74 14 je SHORT $LN15@NcFixRelJm + 002d0 83 bd 14 07 00 00 02 cmp DWORD PTR tv174[rbp], 2 - 002d5 74 2a je SHORT $LN16@NcFixRelJm - 002d7 83 bd 14 07 00 + 002d7 74 2a je SHORT $LN16@NcFixRelJm + 002d9 83 bd 14 07 00 00 04 cmp DWORD PTR tv174[rbp], 4 - 002de 74 41 je SHORT $LN17@NcFixRelJm - 002e0 eb 5b jmp SHORT $LN5@NcFixRelJm + 002e0 74 41 je SHORT $LN17@NcFixRelJm + 002e2 eb 5b jmp SHORT $LN5@NcFixRelJm $LN15@NcFixRelJm: -; 466 : { -; 467 : case 1: *(PINT8)&T->RawData[T->RawDataSize - DispWidth] = (INT8)BranchDisp; break; - - 002e2 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 002e6 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 002e9 8b 40 28 mov eax, DWORD PTR [rax+40] - 002ec 2b c1 sub eax, ecx - 002ee 8b c0 mov eax, eax - 002f0 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 002f4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 002f8 0f b6 55 24 movzx edx, BYTE PTR BranchDisp$10[rbp] - 002fc 88 14 01 mov BYTE PTR [rcx+rax], dl - 002ff eb 3c jmp SHORT $LN5@NcFixRelJm +; 468 : { +; 469 : case 1: *(PINT8)&T->RawData[T->RawDataSize - DispWidth] = (INT8)BranchDisp; break; + + 002e4 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 002e8 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 002eb 8b 40 28 mov eax, DWORD PTR [rax+40] + 002ee 2b c1 sub eax, ecx + 002f0 8b c0 mov eax, eax + 002f2 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 002f6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 002fa 0f b6 55 24 movzx edx, BYTE PTR BranchDisp$10[rbp] + 002fe 88 14 01 mov BYTE PTR [rcx+rax], dl + 00301 eb 3c jmp SHORT $LN5@NcFixRelJm $LN16@NcFixRelJm: -; 468 : case 2: *(PINT16)&T->RawData[T->RawDataSize - DispWidth] = (INT16)BranchDisp; break; - - 00301 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00305 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 00308 8b 40 28 mov eax, DWORD PTR [rax+40] - 0030b 2b c1 sub eax, ecx - 0030d 8b c0 mov eax, eax - 0030f 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00313 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00317 0f b7 55 24 movzx edx, WORD PTR BranchDisp$10[rbp] - 0031b 66 89 14 01 mov WORD PTR [rcx+rax], dx - 0031f eb 1c jmp SHORT $LN5@NcFixRelJm +; 470 : case 2: *(PINT16)&T->RawData[T->RawDataSize - DispWidth] = (INT16)BranchDisp; break; + + 00303 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00307 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 0030a 8b 40 28 mov eax, DWORD PTR [rax+40] + 0030d 2b c1 sub eax, ecx + 0030f 8b c0 mov eax, eax + 00311 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00315 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00319 0f b7 55 24 movzx edx, WORD PTR BranchDisp$10[rbp] + 0031d 66 89 14 01 mov WORD PTR [rcx+rax], dx + 00321 eb 1c jmp SHORT $LN5@NcFixRelJm $LN17@NcFixRelJm: -; 469 : case 4: *(PINT32)&T->RawData[T->RawDataSize - DispWidth] = (INT32)BranchDisp; break; - - 00321 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00325 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 00328 8b 40 28 mov eax, DWORD PTR [rax+40] - 0032b 2b c1 sub eax, ecx - 0032d 8b c0 mov eax, eax - 0032f 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00333 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00337 8b 55 24 mov edx, DWORD PTR BranchDisp$10[rbp] - 0033a 89 14 01 mov DWORD PTR [rcx+rax], edx +; 471 : case 4: *(PINT32)&T->RawData[T->RawDataSize - DispWidth] = (INT32)BranchDisp; break; + + 00323 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00327 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 0032a 8b 40 28 mov eax, DWORD PTR [rax+40] + 0032d 2b c1 sub eax, ecx + 0032f 8b c0 mov eax, eax + 00331 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00335 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00339 8b 55 24 mov edx, DWORD PTR BranchDisp$10[rbp] + 0033c 89 14 01 mov DWORD PTR [rcx+rax], edx $LN5@NcFixRelJm: $LN10@NcFixRelJm: $LN7@NcFixRelJm: -; 470 : } -; 471 : } -; 472 : } -; 473 : -; 474 : T = T->Next; +; 472 : } +; 473 : } +; 474 : } +; 475 : +; 476 : T = T->Next; - 0033d 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00341 48 8b 00 mov rax, QWORD PTR [rax] - 00344 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 0033f 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00343 48 8b 00 mov rax, QWORD PTR [rax] + 00346 48 89 45 08 mov QWORD PTR T$9[rbp], rax -; 475 : } +; 477 : } - 00348 e9 09 fd ff ff jmp $LN2@NcFixRelJm + 0034a e9 09 fd ff ff jmp $LN2@NcFixRelJm $LN3@NcFixRelJm: -; 476 : return TRUE; +; 478 : return TRUE; - 0034d b8 01 00 00 00 mov eax, 1 + 0034f b8 01 00 00 00 mov eax, 1 $LN1@NcFixRelJm: -; 477 : } +; 479 : } - 00352 48 8b f8 mov rdi, rax - 00355 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00359 48 8d 15 00 00 + 00354 48 8b f8 mov rdi, rax + 00357 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0035b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 00360 e8 00 00 00 00 call _RTC_CheckStackVars - 00365 48 8b c7 mov rax, rdi - 00368 48 8b 8d 18 07 + 00362 e8 00 00 00 00 call _RTC_CheckStackVars + 00367 48 8b c7 mov rax, rdi + 0036a 48 8b 8d 18 07 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0036f 48 33 cd xor rcx, rbp - 00372 e8 00 00 00 00 call __security_check_cookie - 00377 48 8d a5 20 07 + 00371 48 33 cd xor rcx, rbp + 00374 e8 00 00 00 00 call __security_check_cookie + 00379 48 8d a5 20 07 00 00 lea rsp, QWORD PTR [rbp+1824] - 0037e 5f pop rdi - 0037f 5e pop rsi - 00380 5d pop rbp - 00381 c3 ret 0 + 00380 5f pop rdi + 00381 5e pop rsi + 00382 5d pop rbp + 00383 c3 ret 0 ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcFixRelJmps _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z _TEXT SEGMENT Delta$ = 4 @@ -10724,7 +10740,7 @@ Link$ = 320 DeltaOut$ = 328 ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z PROC ; NcGetDeltaToLabel, COMDAT -; 361 : { +; 363 : { $LN13: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -10734,189 +10750,183 @@ $LN13: 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 362 : INT32 Delta = 0; - - 0003b c7 45 04 00 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 364 : INT32 Delta = 0; + + 00024 c7 45 04 00 00 00 00 mov DWORD PTR Delta$[rbp], 0 -; 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) +; 365 : //First checking backwards because I feel like thats the direction most jmps are in +; 366 : for (PNATIVE_CODE_LINK T = Link; T; T = T->Prev) - 00042 48 8b 85 40 01 + 0002b 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00049 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 0004d eb 0c jmp SHORT $LN4@NcGetDelta + 00032 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00036 eb 0c jmp SHORT $LN4@NcGetDelta $LN2@NcGetDelta: - 0004f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00053 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00057 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00038 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0003c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00040 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN4@NcGetDelta: - 0005b 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00060 74 4c je SHORT $LN3@NcGetDelta + 00044 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00049 74 4c je SHORT $LN3@NcGetDelta -; 365 : { -; 366 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 367 : { +; 368 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00062 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00066 8b 40 18 mov eax, DWORD PTR [rax+24] - 00069 83 e0 01 and eax, 1 - 0006c 85 c0 test eax, eax - 0006e 74 2b je SHORT $LN8@NcGetDelta + 0004b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0004f 8b 40 18 mov eax, DWORD PTR [rax+24] + 00052 83 e0 01 and eax, 1 + 00055 85 c0 test eax, eax + 00057 74 2b je SHORT $LN8@NcGetDelta -; 367 : { -; 368 : if (T->Label == Link->Label) +; 369 : { +; 370 : if (T->Label == Link->Label) - 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00074 48 8b 8d 40 01 + 00059 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0005d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0007b 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 0007e 39 48 1c cmp DWORD PTR [rax+28], ecx - 00081 75 16 jne SHORT $LN9@NcGetDelta + 00064 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00067 39 48 1c cmp DWORD PTR [rax+28], ecx + 0006a 75 16 jne SHORT $LN9@NcGetDelta -; 369 : { -; 370 : *DeltaOut = Delta; +; 371 : { +; 372 : *DeltaOut = Delta; - 00083 48 8b 85 48 01 + 0006c 48 8b 85 48 01 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 0008a 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 0008d 89 08 mov DWORD PTR [rax], ecx + 00073 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00076 89 08 mov DWORD PTR [rax], ecx -; 371 : return TRUE; +; 373 : return TRUE; - 0008f b8 01 00 00 00 mov eax, 1 - 00094 e9 89 00 00 00 jmp $LN1@NcGetDelta + 00078 b8 01 00 00 00 mov eax, 1 + 0007d e9 89 00 00 00 jmp $LN1@NcGetDelta $LN9@NcGetDelta: -; 372 : } -; 373 : continue; +; 374 : } +; 375 : continue; - 00099 eb b4 jmp SHORT $LN2@NcGetDelta + 00082 eb b4 jmp SHORT $LN2@NcGetDelta $LN8@NcGetDelta: -; 374 : } -; 375 : Delta -= T->RawDataSize; +; 376 : } +; 377 : Delta -= T->RawDataSize; - 0009b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0009f 8b 40 28 mov eax, DWORD PTR [rax+40] - 000a2 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 000a5 2b c8 sub ecx, eax - 000a7 8b c1 mov eax, ecx - 000a9 89 45 04 mov DWORD PTR Delta$[rbp], eax + 00084 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00088 8b 40 28 mov eax, DWORD PTR [rax+40] + 0008b 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 0008e 2b c8 sub ecx, eax + 00090 8b c1 mov eax, ecx + 00092 89 45 04 mov DWORD PTR Delta$[rbp], eax -; 376 : } +; 378 : } - 000ac eb a1 jmp SHORT $LN2@NcGetDelta + 00095 eb a1 jmp SHORT $LN2@NcGetDelta $LN3@NcGetDelta: -; 377 : -; 378 : //Now check forwards -; 379 : Delta = 0; +; 379 : +; 380 : //Now check forwards +; 381 : Delta = 0; - 000ae c7 45 04 00 00 + 00097 c7 45 04 00 00 00 00 mov DWORD PTR Delta$[rbp], 0 -; 380 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) +; 382 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - 000b5 48 8b 85 40 01 + 0009e 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000bc 48 8b 00 mov rax, QWORD PTR [rax] - 000bf 48 89 45 48 mov QWORD PTR T$2[rbp], rax - 000c3 eb 0b jmp SHORT $LN7@NcGetDelta + 000a5 48 8b 00 mov rax, QWORD PTR [rax] + 000a8 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 000ac eb 0b jmp SHORT $LN7@NcGetDelta $LN5@NcGetDelta: - 000c5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000c9 48 8b 00 mov rax, QWORD PTR [rax] - 000cc 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 000ae 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000b2 48 8b 00 mov rax, QWORD PTR [rax] + 000b5 48 89 45 48 mov QWORD PTR T$2[rbp], rax $LN7@NcGetDelta: - 000d0 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 - 000d5 74 49 je SHORT $LN6@NcGetDelta + 000b9 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 000be 74 49 je SHORT $LN6@NcGetDelta -; 381 : { -; 382 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 383 : { +; 384 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000d7 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000db 8b 40 18 mov eax, DWORD PTR [rax+24] - 000de 83 e0 01 and eax, 1 - 000e1 85 c0 test eax, eax - 000e3 74 28 je SHORT $LN10@NcGetDelta + 000c0 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c7 83 e0 01 and eax, 1 + 000ca 85 c0 test eax, eax + 000cc 74 28 je SHORT $LN10@NcGetDelta -; 383 : { -; 384 : if (T->Label == Link->Label) +; 385 : { +; 386 : if (T->Label == Link->Label) - 000e5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000e9 48 8b 8d 40 01 + 000ce 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000d2 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 000f0 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 000f3 39 48 1c cmp DWORD PTR [rax+28], ecx - 000f6 75 13 jne SHORT $LN11@NcGetDelta + 000d9 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 000dc 39 48 1c cmp DWORD PTR [rax+28], ecx + 000df 75 13 jne SHORT $LN11@NcGetDelta -; 385 : { -; 386 : *DeltaOut = Delta; +; 387 : { +; 388 : *DeltaOut = Delta; - 000f8 48 8b 85 48 01 + 000e1 48 8b 85 48 01 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 000ff 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00102 89 08 mov DWORD PTR [rax], ecx + 000e8 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 000eb 89 08 mov DWORD PTR [rax], ecx -; 387 : return TRUE; +; 389 : return TRUE; - 00104 b8 01 00 00 00 mov eax, 1 - 00109 eb 17 jmp SHORT $LN1@NcGetDelta + 000ed b8 01 00 00 00 mov eax, 1 + 000f2 eb 17 jmp SHORT $LN1@NcGetDelta $LN11@NcGetDelta: -; 388 : } -; 389 : continue; +; 390 : } +; 391 : continue; - 0010b eb b8 jmp SHORT $LN5@NcGetDelta + 000f4 eb b8 jmp SHORT $LN5@NcGetDelta $LN10@NcGetDelta: -; 390 : } -; 391 : Delta += T->RawDataSize; +; 392 : } +; 393 : Delta += T->RawDataSize; - 0010d 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 00111 8b 40 28 mov eax, DWORD PTR [rax+40] - 00114 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00117 03 c8 add ecx, eax - 00119 8b c1 mov eax, ecx - 0011b 89 45 04 mov DWORD PTR Delta$[rbp], eax + 000f6 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000fa 8b 40 28 mov eax, DWORD PTR [rax+40] + 000fd 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00100 03 c8 add ecx, eax + 00102 8b c1 mov eax, ecx + 00104 89 45 04 mov DWORD PTR Delta$[rbp], eax -; 392 : } +; 394 : } - 0011e eb a5 jmp SHORT $LN5@NcGetDelta + 00107 eb a5 jmp SHORT $LN5@NcGetDelta $LN6@NcGetDelta: -; 393 : return FALSE; +; 395 : return FALSE; - 00120 33 c0 xor eax, eax + 00109 33 c0 xor eax, eax $LN1@NcGetDelta: -; 394 : } +; 396 : } - 00122 48 8d a5 28 01 + 0010b 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00129 5f pop rdi - 0012a 5d pop rbp - 0012b c3 ret 0 + 00112 5f pop rdi + 00113 5d pop rbp + 00114 c3 ret 0 ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ENDP ; NcGetDeltaToLabel _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT Block$ = 224 BlockCopy$ = 232 ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcDeepCopyBlock, COMDAT -; 356 : { +; 358 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -10926,39 +10936,33 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 357 : return NcDeepCopyPartialBlock(Block->Start, Block->End, BlockCopy); - - 0003b 4c 8b 85 e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 359 : return NcDeepCopyPartialBlock(Block->Start, Block->End, BlockCopy); + + 00024 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR BlockCopy$[rbp] - 00042 48 8b 85 e0 00 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00049 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 0004d 48 8b 85 e0 00 + 00032 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 0003d 48 8b 08 mov rcx, QWORD PTR [rax] + 00040 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock -; 358 : } +; 360 : } - 0005c 48 8d a5 c8 00 + 00045 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 + 0004c 5f pop rdi + 0004d 5d pop rbp + 0004e c3 ret 0 ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcDeepCopyBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT $L0$4 = 8 @@ -10974,7 +10978,7 @@ End$ = 440 Block$ = 448 ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeepCopyPartialBlock, COMDAT -; 331 : { +; 333 : { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -10985,206 +10989,206 @@ $LN12: 00011 48 81 ec b8 01 00 00 sub rsp, 440 ; 000001b8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 d8 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 36 00 00 00 mov ecx, 54 ; 00000036H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 d8 01 00 00 mov rcx, QWORD PTR [rsp+472] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 80 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 80 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 332 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) +; 334 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) - 00051 48 83 bd b0 01 + 00053 48 83 bd b0 01 00 00 00 cmp QWORD PTR Start$[rbp], 0 - 00059 74 3a je SHORT $LN9@NcDeepCopy - 0005b 48 83 bd b8 01 + 0005b 74 3a je SHORT $LN9@NcDeepCopy + 0005d 48 83 bd b8 01 00 00 00 cmp QWORD PTR End$[rbp], 0 - 00063 74 30 je SHORT $LN9@NcDeepCopy - 00065 48 8b 85 b0 01 + 00065 74 30 je SHORT $LN9@NcDeepCopy + 00067 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0006c 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00071 74 22 je SHORT $LN9@NcDeepCopy - 00073 48 8b 85 b0 01 + 0006e 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 00073 74 22 je SHORT $LN9@NcDeepCopy + 00075 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0007a 48 8b 8d b8 01 + 0007c 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR End$[rbp] - 00081 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00085 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 00089 75 0a jne SHORT $LN9@NcDeepCopy - 0008b 48 83 bd c0 01 + 00083 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00087 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 0008b 75 0a jne SHORT $LN9@NcDeepCopy + 0008d 48 83 bd c0 01 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00093 75 07 jne SHORT $LN8@NcDeepCopy + 00095 75 07 jne SHORT $LN8@NcDeepCopy $LN9@NcDeepCopy: -; 333 : return FALSE; +; 335 : return FALSE; - 00095 33 c0 xor eax, eax - 00097 e9 27 01 00 00 jmp $LN1@NcDeepCopy + 00097 33 c0 xor eax, eax + 00099 e9 27 01 00 00 jmp $LN1@NcDeepCopy $LN8@NcDeepCopy: -; 334 : -; 335 : Block->LabelIds.clear(); +; 336 : +; 337 : Block->LabelIds.clear(); - 0009c 48 8b 85 c0 01 + 0009e 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000a3 48 83 c0 10 add rax, 16 - 000a7 48 8b c8 mov rcx, rax - 000aa e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear + 000a5 48 83 c0 10 add rax, 16 + 000a9 48 8b c8 mov rcx, rax + 000ac e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear -; 336 : Block->Start = Block->End = NULL; +; 338 : Block->Start = Block->End = NULL; - 000af 48 8b 85 c0 01 + 000b1 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000b6 48 c7 40 08 00 + 000b8 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 000be 48 8b 85 c0 01 + 000c0 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000c5 48 c7 00 00 00 + 000c7 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 337 : -; 338 : for (ULONG L : Start->Block->LabelIds) +; 339 : +; 340 : for (ULONG L : Start->Block->LabelIds) - 000cc 48 8b 85 b0 01 + 000ce 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 000d3 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000d7 48 83 c0 10 add rax, 16 - 000db 48 89 45 08 mov QWORD PTR $L0$4[rbp], rax - 000df 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] - 000e3 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin - 000e8 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax - 000ec 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] - 000f0 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end - 000f5 48 89 45 48 mov QWORD PTR $L0$6[rbp], rax - 000f9 eb 0c jmp SHORT $LN4@NcDeepCopy + 000d5 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000d9 48 83 c0 10 add rax, 16 + 000dd 48 89 45 08 mov QWORD PTR $L0$4[rbp], rax + 000e1 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] + 000e5 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin + 000ea 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax + 000ee 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] + 000f2 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end + 000f7 48 89 45 48 mov QWORD PTR $L0$6[rbp], rax + 000fb eb 0c jmp SHORT $LN4@NcDeepCopy $LN2@NcDeepCopy: - 000fb 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] - 000ff 48 83 c0 04 add rax, 4 - 00103 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax + 000fd 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] + 00101 48 83 c0 04 add rax, 4 + 00105 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax $LN4@NcDeepCopy: - 00107 48 8b 45 48 mov rax, QWORD PTR $L0$6[rbp] - 0010b 48 39 45 28 cmp QWORD PTR $L0$5[rbp], rax - 0010f 74 2d je SHORT $LN3@NcDeepCopy - 00111 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] - 00115 8b 00 mov eax, DWORD PTR [rax] - 00117 89 45 64 mov DWORD PTR L$7[rbp], eax + 00109 48 8b 45 48 mov rax, QWORD PTR $L0$6[rbp] + 0010d 48 39 45 28 cmp QWORD PTR $L0$5[rbp], rax + 00111 74 2d je SHORT $LN3@NcDeepCopy + 00113 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] + 00117 8b 00 mov eax, DWORD PTR [rax] + 00119 89 45 64 mov DWORD PTR L$7[rbp], eax -; 339 : Block->LabelIds.push_back(L); +; 341 : Block->LabelIds.push_back(L); - 0011a 48 8b 85 c0 01 + 0011c 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00121 48 83 c0 10 add rax, 16 - 00125 48 89 85 78 01 + 00123 48 83 c0 10 add rax, 16 + 00127 48 89 85 78 01 00 00 mov QWORD PTR tv88[rbp], rax - 0012c 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] - 00130 48 8b 8d 78 01 + 0012e 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] + 00132 48 8b 8d 78 01 00 00 mov rcx, QWORD PTR tv88[rbp] - 00137 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back - 0013c eb bd jmp SHORT $LN2@NcDeepCopy + 00139 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 0013e eb bd jmp SHORT $LN2@NcDeepCopy $LN3@NcDeepCopy: -; 340 : -; 341 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) +; 342 : +; 343 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) - 0013e 48 8b 85 b0 01 + 00140 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00145 48 89 85 88 00 + 00147 48 89 85 88 00 00 00 mov QWORD PTR CurLink$8[rbp], rax - 0014c eb 11 jmp SHORT $LN7@NcDeepCopy + 0014e eb 11 jmp SHORT $LN7@NcDeepCopy $LN5@NcDeepCopy: - 0014e 48 8b 85 88 00 + 00150 48 8b 85 88 00 00 00 mov rax, QWORD PTR CurLink$8[rbp] - 00155 48 8b 00 mov rax, QWORD PTR [rax] - 00158 48 89 85 88 00 + 00157 48 8b 00 mov rax, QWORD PTR [rax] + 0015a 48 89 85 88 00 00 00 mov QWORD PTR CurLink$8[rbp], rax $LN7@NcDeepCopy: - 0015f 48 83 bd 88 00 + 00161 48 83 bd 88 00 00 00 00 cmp QWORD PTR CurLink$8[rbp], 0 - 00167 74 55 je SHORT $LN6@NcDeepCopy - 00169 48 8b 85 b8 01 + 00169 74 55 je SHORT $LN6@NcDeepCopy + 0016b 48 8b 85 b8 01 00 00 mov rax, QWORD PTR End$[rbp] - 00170 48 8b 00 mov rax, QWORD PTR [rax] - 00173 48 39 85 88 00 + 00172 48 8b 00 mov rax, QWORD PTR [rax] + 00175 48 39 85 88 00 00 00 cmp QWORD PTR CurLink$8[rbp], rax - 0017a 74 42 je SHORT $LN6@NcDeepCopy + 0017c 74 42 je SHORT $LN6@NcDeepCopy -; 342 : { -; 343 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); +; 344 : { +; 345 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); - 0017c 48 8b 8d 88 00 + 0017e 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR CurLink$8[rbp] - 00183 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink - 00188 48 89 85 a8 00 + 00185 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink + 0018a 48 89 85 a8 00 00 00 mov QWORD PTR Temp$9[rbp], rax -; 344 : if (!Temp) +; 346 : if (!Temp) - 0018f 48 83 bd a8 00 + 00191 48 83 bd a8 00 00 00 00 cmp QWORD PTR Temp$9[rbp], 0 - 00197 75 10 jne SHORT $LN10@NcDeepCopy + 00199 75 10 jne SHORT $LN10@NcDeepCopy -; 345 : { -; 346 : NcDeleteBlock(Block); +; 347 : { +; 348 : NcDeleteBlock(Block); - 00199 48 8b 8d c0 01 + 0019b 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 001a0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 347 : return FALSE; +; 349 : return FALSE; - 001a5 33 c0 xor eax, eax - 001a7 eb 1a jmp SHORT $LN1@NcDeepCopy + 001a7 33 c0 xor eax, eax + 001a9 eb 1a jmp SHORT $LN1@NcDeepCopy $LN10@NcDeepCopy: -; 348 : } -; 349 : NcAppendToBlock(Block, Temp); +; 350 : } +; 351 : NcAppendToBlock(Block, Temp); - 001a9 48 8b 95 a8 00 + 001ab 48 8b 95 a8 00 00 00 mov rdx, QWORD PTR Temp$9[rbp] - 001b0 48 8b 8d c0 01 + 001b2 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 001b7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001b9 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock -; 350 : } +; 352 : } - 001bc eb 90 jmp SHORT $LN5@NcDeepCopy + 001be eb 90 jmp SHORT $LN5@NcDeepCopy $LN6@NcDeepCopy: -; 351 : -; 352 : return TRUE; +; 353 : +; 354 : return TRUE; - 001be b8 01 00 00 00 mov eax, 1 + 001c0 b8 01 00 00 00 mov eax, 1 $LN1@NcDeepCopy: -; 353 : } +; 355 : } - 001c3 48 8b f8 mov rdi, rax - 001c6 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001ca 48 8d 15 00 00 + 001c5 48 8b f8 mov rdi, rax + 001c8 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001cc 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001d1 e8 00 00 00 00 call _RTC_CheckStackVars - 001d6 48 8b c7 mov rax, rdi - 001d9 48 8b 8d 80 01 + 001d3 e8 00 00 00 00 call _RTC_CheckStackVars + 001d8 48 8b c7 mov rax, rdi + 001db 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001e0 48 33 cd xor rcx, rbp - 001e3 e8 00 00 00 00 call __security_check_cookie - 001e8 48 8d a5 98 01 + 001e2 48 33 cd xor rcx, rbp + 001e5 e8 00 00 00 00 call __security_check_cookie + 001ea 48 8d a5 98 01 00 00 lea rsp, QWORD PTR [rbp+408] - 001ef 5f pop rdi - 001f0 5d pop rbp - 001f1 c3 ret 0 + 001f1 5f pop rdi + 001f2 5d pop rbp + 001f3 c3 ret 0 ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeepCopyPartialBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z _TEXT SEGMENT NewLink$1 = 8 @@ -11202,7 +11206,7 @@ tv81 = 408 Link$ = 448 ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z PROC ; NcDeepCopyLink, COMDAT -; 310 : { +; 312 : { $LN14: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -11211,192 +11215,186 @@ $LN14: 00007 48 81 ec d8 01 00 00 sub rsp, 472 ; 000001d8H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 76 00 00 00 mov ecx, 118 ; 00000076H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 f8 - 01 00 00 mov rcx, QWORD PTR [rsp+504] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 311 : if (Link->Flags & CODE_FLAG_IS_LABEL) - - 00036 48 8b 85 c0 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 313 : if (Link->Flags & CODE_FLAG_IS_LABEL) + + 0001f 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0003d 8b 40 18 mov eax, DWORD PTR [rax+24] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 67 je SHORT $LN2@NcDeepCopy + 00026 8b 40 18 mov eax, DWORD PTR [rax+24] + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 67 je SHORT $LN2@NcDeepCopy -; 312 : { -; 313 : return new NATIVE_CODE_LINK(Link->Label, NULL); +; 314 : { +; 315 : return new NATIVE_CODE_LINK(Link->Label, NULL); - 00047 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0004c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00051 48 89 85 28 01 + 00030 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00035 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0003a 48 89 85 28 01 00 00 mov QWORD PTR $T4[rbp], rax - 00058 48 83 bd 28 01 + 00041 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 00060 74 22 je SHORT $LN6@NcDeepCopy - 00062 45 33 c0 xor r8d, r8d - 00065 48 8b 85 c0 01 + 00049 74 22 je SHORT $LN6@NcDeepCopy + 0004b 45 33 c0 xor r8d, r8d + 0004e 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0006c 8b 50 1c mov edx, DWORD PTR [rax+28] - 0006f 48 8b 8d 28 01 + 00055 8b 50 1c mov edx, DWORD PTR [rax+28] + 00058 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 00076 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0007b 48 89 85 98 01 + 0005f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00064 48 89 85 98 01 00 00 mov QWORD PTR tv81[rbp], rax - 00082 eb 0b jmp SHORT $LN7@NcDeepCopy + 0006b eb 0b jmp SHORT $LN7@NcDeepCopy $LN6@NcDeepCopy: - 00084 48 c7 85 98 01 + 0006d 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 $LN7@NcDeepCopy: - 0008f 48 8b 85 98 01 + 00078 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv81[rbp] - 00096 48 89 85 08 01 + 0007f 48 89 85 08 01 00 00 mov QWORD PTR $T3[rbp], rax - 0009d 48 8b 85 08 01 + 00086 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T3[rbp] - 000a4 e9 3c 01 00 00 jmp $LN1@NcDeepCopy + 0008d e9 3c 01 00 00 jmp $LN1@NcDeepCopy -; 314 : } +; 316 : } - 000a9 e9 37 01 00 00 jmp $LN1@NcDeepCopy + 00092 e9 37 01 00 00 jmp $LN1@NcDeepCopy $LN2@NcDeepCopy: -; 315 : else -; 316 : { -; 317 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); +; 317 : else +; 318 : { +; 319 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); - 000ae b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000b3 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000b8 48 89 85 68 01 + 00097 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0009c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a1 48 89 85 68 01 00 00 mov QWORD PTR $T6[rbp], rax - 000bf 48 83 bd 68 01 + 000a8 48 83 bd 68 01 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 000c7 74 3d je SHORT $LN8@NcDeepCopy - 000c9 c7 44 24 20 00 + 000b0 74 3d je SHORT $LN8@NcDeepCopy + 000b2 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 000d1 48 8b 85 c0 01 + 000ba 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000d8 44 8b 48 28 mov r9d, DWORD PTR [rax+40] - 000dc 48 8b 85 c0 01 + 000c1 44 8b 48 28 mov r9d, DWORD PTR [rax+40] + 000c5 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000e3 4c 8b 40 20 mov r8, QWORD PTR [rax+32] - 000e7 48 8b 85 c0 01 + 000cc 4c 8b 40 20 mov r8, QWORD PTR [rax+32] + 000d0 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000ee 8b 50 18 mov edx, DWORD PTR [rax+24] - 000f1 48 8b 8d 68 01 + 000d7 8b 50 18 mov edx, DWORD PTR [rax+24] + 000da 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR $T6[rbp] - 000f8 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000fd 48 89 85 98 01 + 000e1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000e6 48 89 85 98 01 00 00 mov QWORD PTR tv131[rbp], rax - 00104 eb 0b jmp SHORT $LN9@NcDeepCopy + 000ed eb 0b jmp SHORT $LN9@NcDeepCopy $LN8@NcDeepCopy: - 00106 48 c7 85 98 01 + 000ef 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN9@NcDeepCopy: - 00111 48 8b 85 98 01 + 000fa 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv131[rbp] - 00118 48 89 85 48 01 + 00101 48 89 85 48 01 00 00 mov QWORD PTR $T5[rbp], rax - 0011f 48 8b 85 48 01 + 00108 48 8b 85 48 01 00 00 mov rax, QWORD PTR $T5[rbp] - 00126 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax + 0010f 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax -; 318 : NewLink->Label = Link->Label; +; 320 : NewLink->Label = Link->Label; - 0012a 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 0012e 48 8b 8d c0 01 + 00113 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00117 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00135 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 00138 89 48 1c mov DWORD PTR [rax+28], ecx + 0011e 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00121 89 48 1c mov DWORD PTR [rax+28], ecx -; 319 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); +; 321 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); - 0013b 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 0013f 48 83 c0 30 add rax, 48 ; 00000030H - 00143 48 8b 8d c0 01 + 00124 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00128 48 83 c0 30 add rax, 48 ; 00000030H + 0012c 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0014a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0014e 48 8b 8d c0 01 + 00133 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00137 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00155 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00159 48 8b c8 mov rcx, rax - 0015c e8 00 00 00 00 call xed_decode - 00161 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax + 0013e 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00142 48 8b c8 mov rcx, rax + 00145 e8 00 00 00 00 call xed_decode + 0014a 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax -; 320 : if (DecodeError != XED_ERROR_NONE) +; 322 : if (DecodeError != XED_ERROR_NONE) - 00164 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 - 00168 74 77 je SHORT $LN4@NcDeepCopy + 0014d 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 + 00151 74 77 je SHORT $LN4@NcDeepCopy -; 321 : { -; 322 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); +; 323 : { +; 324 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); - 0016a 48 8b 85 c0 01 + 00153 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00171 8b 40 28 mov eax, DWORD PTR [rax+40] - 00174 89 85 94 01 00 + 0015a 8b 40 28 mov eax, DWORD PTR [rax+40] + 0015d 89 85 94 01 00 00 mov DWORD PTR tv151[rbp], eax - 0017a 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] - 0017d e8 00 00 00 00 call xed_error_enum_t2str - 00182 48 89 85 98 01 + 00163 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] + 00166 e8 00 00 00 00 call xed_error_enum_t2str + 0016b 48 89 85 98 01 00 00 mov QWORD PTR tv149[rbp], rax - 00189 44 8b 85 94 01 + 00172 44 8b 85 94 01 00 00 mov r8d, DWORD PTR tv151[rbp] - 00190 48 8b 95 98 01 + 00179 48 8b 95 98 01 00 00 mov rdx, QWORD PTR tv149[rbp] - 00197 48 8d 0d 00 00 + 00180 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ - 0019e e8 00 00 00 00 call printf + 00187 e8 00 00 00 00 call printf -; 323 : delete NewLink; +; 325 : delete NewLink; - 001a3 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 001a7 48 89 85 88 01 + 0018c 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00190 48 89 85 88 01 00 00 mov QWORD PTR $T7[rbp], rax - 001ae 48 83 bd 88 01 + 00197 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 001b6 74 1a je SHORT $LN10@NcDeepCopy - 001b8 ba 01 00 00 00 mov edx, 1 - 001bd 48 8b 8d 88 01 + 0019f 74 1a je SHORT $LN10@NcDeepCopy + 001a1 ba 01 00 00 00 mov edx, 1 + 001a6 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T7[rbp] - 001c4 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001c9 48 89 85 98 01 + 001ad e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001b2 48 89 85 98 01 00 00 mov QWORD PTR tv155[rbp], rax - 001d0 eb 0b jmp SHORT $LN11@NcDeepCopy + 001b9 eb 0b jmp SHORT $LN11@NcDeepCopy $LN10@NcDeepCopy: - 001d2 48 c7 85 98 01 + 001bb 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv155[rbp], 0 $LN11@NcDeepCopy: -; 324 : return NULL; +; 326 : return NULL; - 001dd 33 c0 xor eax, eax - 001df eb 04 jmp SHORT $LN1@NcDeepCopy + 001c6 33 c0 xor eax, eax + 001c8 eb 04 jmp SHORT $LN1@NcDeepCopy $LN4@NcDeepCopy: -; 325 : } -; 326 : return NewLink; +; 327 : } +; 328 : return NewLink; - 001e1 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 001ca 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] $LN1@NcDeepCopy: -; 327 : } -; 328 : } +; 329 : } +; 330 : } - 001e5 48 8d a5 a8 01 + 001ce 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001ec 5f pop rdi - 001ed 5d pop rbp - 001ee c3 ret 0 + 001d5 5f pop rdi + 001d6 5d pop rbp + 001d7 c3 ret 0 ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ENDP ; NcDeepCopyLink _TEXT ENDS ; COMDAT text$x @@ -11530,7 +11528,7 @@ Link$ = 448 ?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z _TEXT SEGMENT T$ = 8 @@ -11538,7 +11536,7 @@ Jmp$ = 256 Delta$ = 264 ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z PROC ; NcValidateJmp, COMDAT -; 270 : { +; 272 : { $LN23: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx @@ -11548,253 +11546,247 @@ $LN23: 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 271 : PNATIVE_CODE_LINK T; -; 272 : if (Delta > 0) +; 273 : PNATIVE_CODE_LINK T; +; 274 : if (Delta > 0) - 0003a 83 bd 08 01 00 + 00023 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00041 0f 8e a2 00 00 + 0002a 0f 8e a2 00 00 00 jle $LN10@NcValidate -; 273 : { -; 274 : T = Jmp->Next; +; 275 : { +; 276 : T = Jmp->Next; - 00047 48 8b 85 00 01 + 00030 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 89 45 08 mov QWORD PTR T$[rbp], rax + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 89 45 08 mov QWORD PTR T$[rbp], rax $LN21@NcValidate: $LN2@NcValidate: -; 275 : while (Delta > 0 && T) +; 277 : while (Delta > 0 && T) - 00055 83 bd 08 01 00 + 0003e 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 0005c 7e 44 jle SHORT $LN3@NcValidate - 0005e 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00063 74 3d je SHORT $LN3@NcValidate + 00045 7e 44 jle SHORT $LN3@NcValidate + 00047 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 0004c 74 3d je SHORT $LN3@NcValidate -; 276 : { -; 277 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 278 : { +; 279 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00065 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00069 8b 40 18 mov eax, DWORD PTR [rax+24] - 0006c 83 e0 01 and eax, 1 - 0006f 85 c0 test eax, eax - 00071 74 02 je SHORT $LN12@NcValidate + 0004e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00052 8b 40 18 mov eax, DWORD PTR [rax+24] + 00055 83 e0 01 and eax, 1 + 00058 85 c0 test eax, eax + 0005a 74 02 je SHORT $LN12@NcValidate -; 278 : continue; +; 280 : continue; - 00073 eb e0 jmp SHORT $LN2@NcValidate + 0005c eb e0 jmp SHORT $LN2@NcValidate $LN12@NcValidate: -; 279 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); +; 281 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); - 00075 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00079 48 83 c0 30 add rax, 48 ; 00000030H - 0007d 48 8b c8 mov rcx, rax - 00080 e8 00 00 00 00 call xed_decoded_inst_get_length - 00085 8b 8d 08 01 00 + 0005e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00062 48 83 c0 30 add rax, 48 ; 00000030H + 00066 48 8b c8 mov rcx, rax + 00069 e8 00 00 00 00 call xed_decoded_inst_get_length + 0006e 8b 8d 08 01 00 00 mov ecx, DWORD PTR Delta$[rbp] - 0008b 2b c8 sub ecx, eax - 0008d 8b c1 mov eax, ecx - 0008f 89 85 08 01 00 + 00074 2b c8 sub ecx, eax + 00076 8b c1 mov eax, ecx + 00078 89 85 08 01 00 00 mov DWORD PTR Delta$[rbp], eax -; 280 : T = T->Next; +; 282 : T = T->Next; - 00095 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00099 48 8b 00 mov rax, QWORD PTR [rax] - 0009c 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0007e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00082 48 8b 00 mov rax, QWORD PTR [rax] + 00085 48 89 45 08 mov QWORD PTR T$[rbp], rax -; 281 : } +; 283 : } - 000a0 eb b3 jmp SHORT $LN21@NcValidate + 00089 eb b3 jmp SHORT $LN21@NcValidate $LN3@NcValidate: -; 282 : if (Delta != 0 || !T) +; 284 : if (Delta != 0 || !T) - 000a2 83 bd 08 01 00 + 0008b 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 000a9 75 07 jne SHORT $LN14@NcValidate - 000ab 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000b0 75 07 jne SHORT $LN13@NcValidate + 00092 75 07 jne SHORT $LN14@NcValidate + 00094 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00099 75 07 jne SHORT $LN13@NcValidate $LN14@NcValidate: -; 283 : return NULL; +; 285 : return NULL; - 000b2 33 c0 xor eax, eax - 000b4 e9 db 00 00 00 jmp $LN1@NcValidate + 0009b 33 c0 xor eax, eax + 0009d e9 db 00 00 00 jmp $LN1@NcValidate $LN13@NcValidate: $LN4@NcValidate: -; 284 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) +; 286 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 000b9 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000be 74 1b je SHORT $LN5@NcValidate - 000c0 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] - 000c7 83 e0 01 and eax, 1 - 000ca 85 c0 test eax, eax - 000cc 74 0d je SHORT $LN5@NcValidate + 000a2 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000a7 74 1b je SHORT $LN5@NcValidate + 000a9 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000ad 8b 40 18 mov eax, DWORD PTR [rax+24] + 000b0 83 e0 01 and eax, 1 + 000b3 85 c0 test eax, eax + 000b5 74 0d je SHORT $LN5@NcValidate -; 285 : T = T->Next; +; 287 : T = T->Next; - 000ce 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000d2 48 8b 00 mov rax, QWORD PTR [rax] - 000d5 48 89 45 08 mov QWORD PTR T$[rbp], rax - 000d9 eb de jmp SHORT $LN4@NcValidate + 000b7 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000bb 48 8b 00 mov rax, QWORD PTR [rax] + 000be 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000c2 eb de jmp SHORT $LN4@NcValidate $LN5@NcValidate: -; 286 : return T; +; 288 : return T; - 000db 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000df e9 b0 00 00 00 jmp $LN1@NcValidate + 000c4 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000c8 e9 b0 00 00 00 jmp $LN1@NcValidate -; 287 : } +; 289 : } - 000e4 e9 a4 00 00 00 jmp $LN11@NcValidate + 000cd e9 a4 00 00 00 jmp $LN11@NcValidate $LN10@NcValidate: -; 288 : else if (Delta < 0) +; 290 : else if (Delta < 0) - 000e9 83 bd 08 01 00 + 000d2 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 000f0 0f 8d 97 00 00 + 000d9 0f 8d 97 00 00 00 jge $LN15@NcValidate -; 289 : { -; 290 : T = Jmp; +; 291 : { +; 292 : T = Jmp; - 000f6 48 8b 85 00 01 + 000df 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] - 000fd 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000e6 48 89 45 08 mov QWORD PTR T$[rbp], rax $LN22@NcValidate: $LN6@NcValidate: -; 291 : while (T) +; 293 : while (T) - 00101 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00106 74 49 je SHORT $LN7@NcValidate + 000ea 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000ef 74 49 je SHORT $LN7@NcValidate -; 292 : { -; 293 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 294 : { +; 295 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00108 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0010c 8b 40 18 mov eax, DWORD PTR [rax+24] - 0010f 83 e0 01 and eax, 1 - 00112 85 c0 test eax, eax - 00114 74 02 je SHORT $LN16@NcValidate + 000f1 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000f5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000f8 83 e0 01 and eax, 1 + 000fb 85 c0 test eax, eax + 000fd 74 02 je SHORT $LN16@NcValidate -; 294 : continue; +; 296 : continue; - 00116 eb e9 jmp SHORT $LN6@NcValidate + 000ff eb e9 jmp SHORT $LN6@NcValidate $LN16@NcValidate: -; 295 : Delta += XedDecodedInstGetLength(&T->XedInstruction); +; 297 : Delta += XedDecodedInstGetLength(&T->XedInstruction); - 00118 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0011c 48 83 c0 30 add rax, 48 ; 00000030H - 00120 48 8b c8 mov rcx, rax - 00123 e8 00 00 00 00 call xed_decoded_inst_get_length - 00128 8b 8d 08 01 00 + 00101 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00105 48 83 c0 30 add rax, 48 ; 00000030H + 00109 48 8b c8 mov rcx, rax + 0010c e8 00 00 00 00 call xed_decoded_inst_get_length + 00111 8b 8d 08 01 00 00 mov ecx, DWORD PTR Delta$[rbp] - 0012e 03 c8 add ecx, eax - 00130 8b c1 mov eax, ecx - 00132 89 85 08 01 00 + 00117 03 c8 add ecx, eax + 00119 8b c1 mov eax, ecx + 0011b 89 85 08 01 00 00 mov DWORD PTR Delta$[rbp], eax -; 296 : if (Delta >= 0) +; 298 : if (Delta >= 0) - 00138 83 bd 08 01 00 + 00121 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 0013f 7c 02 jl SHORT $LN17@NcValidate + 00128 7c 02 jl SHORT $LN17@NcValidate -; 297 : break; +; 299 : break; - 00141 eb 0e jmp SHORT $LN7@NcValidate + 0012a eb 0e jmp SHORT $LN7@NcValidate $LN17@NcValidate: -; 298 : T = T->Prev; +; 300 : T = T->Prev; - 00143 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00147 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0014b 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0012c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00130 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00134 48 89 45 08 mov QWORD PTR T$[rbp], rax -; 299 : } +; 301 : } - 0014f eb b0 jmp SHORT $LN22@NcValidate + 00138 eb b0 jmp SHORT $LN22@NcValidate $LN7@NcValidate: -; 300 : if (Delta != 0 || !T) +; 302 : if (Delta != 0 || !T) - 00151 83 bd 08 01 00 + 0013a 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00158 75 07 jne SHORT $LN19@NcValidate - 0015a 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 0015f 75 04 jne SHORT $LN18@NcValidate + 00141 75 07 jne SHORT $LN19@NcValidate + 00143 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00148 75 04 jne SHORT $LN18@NcValidate $LN19@NcValidate: -; 301 : return NULL; +; 303 : return NULL; - 00161 33 c0 xor eax, eax - 00163 eb 2f jmp SHORT $LN1@NcValidate + 0014a 33 c0 xor eax, eax + 0014c eb 2f jmp SHORT $LN1@NcValidate $LN18@NcValidate: $LN8@NcValidate: -; 302 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) +; 304 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 00165 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 0016a 74 1b je SHORT $LN9@NcValidate - 0016c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00170 8b 40 18 mov eax, DWORD PTR [rax+24] - 00173 83 e0 01 and eax, 1 - 00176 85 c0 test eax, eax - 00178 74 0d je SHORT $LN9@NcValidate + 0014e 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00153 74 1b je SHORT $LN9@NcValidate + 00155 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00159 8b 40 18 mov eax, DWORD PTR [rax+24] + 0015c 83 e0 01 and eax, 1 + 0015f 85 c0 test eax, eax + 00161 74 0d je SHORT $LN9@NcValidate -; 303 : T = T->Next; +; 305 : T = T->Next; - 0017a 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0017e 48 8b 00 mov rax, QWORD PTR [rax] - 00181 48 89 45 08 mov QWORD PTR T$[rbp], rax - 00185 eb de jmp SHORT $LN8@NcValidate + 00163 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00167 48 8b 00 mov rax, QWORD PTR [rax] + 0016a 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0016e eb de jmp SHORT $LN8@NcValidate $LN9@NcValidate: -; 304 : return T; +; 306 : return T; - 00187 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0018b eb 07 jmp SHORT $LN1@NcValidate + 00170 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00174 eb 07 jmp SHORT $LN1@NcValidate $LN15@NcValidate: $LN11@NcValidate: -; 305 : } -; 306 : return Jmp; +; 307 : } +; 308 : return Jmp; - 0018d 48 8b 85 00 01 + 00176 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] $LN1@NcValidate: -; 307 : } +; 309 : } - 00194 48 8d a5 e8 00 + 0017d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0019b 5f pop rdi - 0019c 5d pop rbp - 0019d c3 ret 0 + 00184 5f pop rdi + 00185 5d pop rbp + 00186 c3 ret 0 ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ENDP ; NcValidateJmp _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT CurrentLabelId$ = 4 @@ -11814,7 +11806,7 @@ __$ArrayPad$ = 544 Block$ = 592 ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCreateLabels, COMDAT -; 218 : { +; 220 : { $LN18: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -11823,331 +11815,331 @@ $LN18: 00007 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 96 00 00 00 mov ecx, 150 ; 00000096H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 78 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 78 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 20 02 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 219 : ULONG CurrentLabelId = 0; +; 221 : ULONG CurrentLabelId = 0; - 00047 c7 45 04 00 00 + 00049 c7 45 04 00 00 00 00 mov DWORD PTR CurrentLabelId$[rbp], 0 -; 220 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) +; 222 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) - 0004e 48 8b 85 50 02 + 00050 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00055 48 8b 00 mov rax, QWORD PTR [rax] - 00058 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0005c eb 0b jmp SHORT $LN4@NcCreateLa + 00057 48 8b 00 mov rax, QWORD PTR [rax] + 0005a 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0005e eb 0b jmp SHORT $LN4@NcCreateLa $LN2@NcCreateLa: - 0005e 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00062 48 8b 00 mov rax, QWORD PTR [rax] - 00065 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 00060 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00064 48 8b 00 mov rax, QWORD PTR [rax] + 00067 48 89 45 28 mov QWORD PTR T$4[rbp], rax $LN4@NcCreateLa: - 00069 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 0006e 0f 84 07 02 00 + 0006b 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 00070 0f 84 07 02 00 00 je $LN3@NcCreateLa -; 221 : { -; 222 : if (!(T->Flags & CODE_FLAG_IS_INST)) +; 223 : { +; 224 : if (!(T->Flags & CODE_FLAG_IS_INST)) - 00074 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00078 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007b 83 e0 04 and eax, 4 - 0007e 85 c0 test eax, eax - 00080 75 02 jne SHORT $LN5@NcCreateLa + 00076 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 0007a 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007d 83 e0 04 and eax, 4 + 00080 85 c0 test eax, eax + 00082 75 02 jne SHORT $LN5@NcCreateLa -; 223 : continue; +; 225 : continue; - 00082 eb da jmp SHORT $LN2@NcCreateLa + 00084 eb da jmp SHORT $LN2@NcCreateLa $LN5@NcCreateLa: -; 224 : -; 225 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); +; 226 : +; 227 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); - 00084 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00088 48 83 c0 30 add rax, 48 ; 00000030H - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call xed_decoded_inst_get_category - 00094 89 45 44 mov DWORD PTR Category$5[rbp], eax + 00086 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 0008a 48 83 c0 30 add rax, 48 ; 00000030H + 0008e 48 8b c8 mov rcx, rax + 00091 e8 00 00 00 00 call xed_decoded_inst_get_category + 00096 89 45 44 mov DWORD PTR Category$5[rbp], eax -; 226 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) +; 228 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) - 00097 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 - 0009b 74 08 je SHORT $LN6@NcCreateLa - 0009d 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH - 000a1 74 02 je SHORT $LN6@NcCreateLa + 00099 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 + 0009d 74 08 je SHORT $LN6@NcCreateLa + 0009f 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH + 000a3 74 02 je SHORT $LN6@NcCreateLa -; 227 : continue; +; 229 : continue; - 000a3 eb b9 jmp SHORT $LN2@NcCreateLa + 000a5 eb b9 jmp SHORT $LN2@NcCreateLa $LN6@NcCreateLa: -; 228 : -; 229 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); +; 230 : +; 231 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); - 000a5 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000a9 48 83 c0 30 add rax, 48 ; 00000030H - 000ad 48 8b c8 mov rcx, rax - 000b0 e8 00 00 00 00 call xed_decoded_inst_noperands - 000b5 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax + 000a7 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000ab 48 83 c0 30 add rax, 48 ; 00000030H + 000af 48 8b c8 mov rcx, rax + 000b2 e8 00 00 00 00 call xed_decoded_inst_noperands + 000b7 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax -; 230 : if (OperandCount < 1) +; 232 : if (OperandCount < 1) - 000b8 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 - 000bc 73 02 jae SHORT $LN7@NcCreateLa + 000ba 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 + 000be 73 02 jae SHORT $LN7@NcCreateLa -; 231 : continue; +; 233 : continue; - 000be eb 9e jmp SHORT $LN2@NcCreateLa + 000c0 eb 9e jmp SHORT $LN2@NcCreateLa $LN7@NcCreateLa: -; 232 : -; 233 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); +; 234 : +; 235 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); - 000c0 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000c4 48 83 c0 30 add rax, 48 ; 00000030H - 000c8 48 8b c8 mov rcx, rax - 000cb e8 00 00 00 00 call xed_decoded_inst_inst - 000d0 48 89 85 88 00 + 000c2 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000c6 48 83 c0 30 add rax, 48 ; 00000030H + 000ca 48 8b c8 mov rcx, rax + 000cd e8 00 00 00 00 call xed_decoded_inst_inst + 000d2 48 89 85 88 00 00 00 mov QWORD PTR Inst$7[rbp], rax -; 234 : if (!Inst) +; 236 : if (!Inst) - 000d7 48 83 bd 88 00 + 000d9 48 83 bd 88 00 00 00 00 cmp QWORD PTR Inst$7[rbp], 0 - 000df 75 05 jne SHORT $LN8@NcCreateLa + 000e1 75 05 jne SHORT $LN8@NcCreateLa -; 235 : continue; +; 237 : continue; - 000e1 e9 78 ff ff ff jmp $LN2@NcCreateLa + 000e3 e9 78 ff ff ff jmp $LN2@NcCreateLa $LN8@NcCreateLa: -; 236 : -; 237 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); +; 238 : +; 239 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); - 000e6 33 d2 xor edx, edx - 000e8 48 8b 8d 88 00 + 000e8 33 d2 xor edx, edx + 000ea 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR Inst$7[rbp] - 000ef e8 00 00 00 00 call xed_inst_operand - 000f4 48 89 85 a8 00 + 000f1 e8 00 00 00 00 call xed_inst_operand + 000f6 48 89 85 a8 00 00 00 mov QWORD PTR Operand$8[rbp], rax -; 238 : if (!Operand) +; 240 : if (!Operand) - 000fb 48 83 bd a8 00 + 000fd 48 83 bd a8 00 00 00 00 cmp QWORD PTR Operand$8[rbp], 0 - 00103 75 05 jne SHORT $LN9@NcCreateLa + 00105 75 05 jne SHORT $LN9@NcCreateLa -; 239 : continue; +; 241 : continue; - 00105 e9 54 ff ff ff jmp $LN2@NcCreateLa + 00107 e9 54 ff ff ff jmp $LN2@NcCreateLa $LN9@NcCreateLa: -; 240 : -; 241 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); +; 242 : +; 243 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); - 0010a 48 8b 8d a8 00 + 0010c 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR Operand$8[rbp] - 00111 e8 00 00 00 00 call xed_operand_type - 00116 89 85 c4 00 00 + 00113 e8 00 00 00 00 call xed_operand_type + 00118 89 85 c4 00 00 00 mov DWORD PTR OperandType$9[rbp], eax -; 242 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) +; 244 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) - 0011c 83 bd c4 00 00 + 0011e 83 bd c4 00 00 00 02 cmp DWORD PTR OperandType$9[rbp], 2 - 00123 74 0e je SHORT $LN10@NcCreateLa - 00125 83 bd c4 00 00 + 00125 74 0e je SHORT $LN10@NcCreateLa + 00127 83 bd c4 00 00 00 03 cmp DWORD PTR OperandType$9[rbp], 3 - 0012c 74 05 je SHORT $LN10@NcCreateLa + 0012e 74 05 je SHORT $LN10@NcCreateLa -; 243 : continue; +; 245 : continue; - 0012e e9 2b ff ff ff jmp $LN2@NcCreateLa + 00130 e9 2b ff ff ff jmp $LN2@NcCreateLa $LN10@NcCreateLa: -; 244 : -; 245 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); +; 246 : +; 247 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); - 00133 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00137 48 83 c0 30 add rax, 48 ; 00000030H - 0013b 48 8b c8 mov rcx, rax - 0013e e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement - 00143 89 85 e4 00 00 + 00135 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00139 48 83 c0 30 add rax, 48 ; 00000030H + 0013d 48 8b c8 mov rcx, rax + 00140 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement + 00145 89 85 e4 00 00 00 mov DWORD PTR BranchDisplacement$10[rbp], eax -; 246 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); +; 248 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); - 00149 8b 95 e4 00 00 + 0014b 8b 95 e4 00 00 00 mov edx, DWORD PTR BranchDisplacement$10[rbp] - 0014f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 00153 e8 00 00 00 00 call ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp - 00158 48 89 85 08 01 + 00151 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00155 e8 00 00 00 00 call ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp + 0015a 48 89 85 08 01 00 00 mov QWORD PTR JmpPos$11[rbp], rax -; 247 : if (!JmpPos) +; 249 : if (!JmpPos) - 0015f 48 83 bd 08 01 + 00161 48 83 bd 08 01 00 00 00 cmp QWORD PTR JmpPos$11[rbp], 0 - 00167 75 25 jne SHORT $LN11@NcCreateLa + 00169 75 25 jne SHORT $LN11@NcCreateLa -; 248 : { -; 249 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); +; 250 : { +; 251 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); - 00169 8b 4d 44 mov ecx, DWORD PTR Category$5[rbp] - 0016c e8 00 00 00 00 call xed_category_enum_t2str - 00171 44 8b 85 e4 00 + 0016b 8b 4d 44 mov ecx, DWORD PTR Category$5[rbp] + 0016e e8 00 00 00 00 call xed_category_enum_t2str + 00173 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR BranchDisplacement$10[rbp] - 00178 48 8b d0 mov rdx, rax - 0017b 48 8d 0d 00 00 + 0017a 48 8b d0 mov rdx, rax + 0017d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ - 00182 e8 00 00 00 00 call printf + 00184 e8 00 00 00 00 call printf -; 250 : return FALSE; +; 252 : return FALSE; - 00187 33 c0 xor eax, eax - 00189 e9 f2 00 00 00 jmp $LN1@NcCreateLa + 00189 33 c0 xor eax, eax + 0018b e9 f2 00 00 00 jmp $LN1@NcCreateLa $LN11@NcCreateLa: -; 251 : } -; 252 : -; 253 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) +; 253 : } +; 254 : +; 255 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) - 0018e 48 8b 85 08 01 + 00190 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 00195 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0019a 74 2f je SHORT $LN12@NcCreateLa - 0019c 48 8b 85 08 01 + 00197 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0019c 74 2f je SHORT $LN12@NcCreateLa + 0019e 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 001a3 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 001a7 8b 40 18 mov eax, DWORD PTR [rax+24] - 001aa 83 e0 01 and eax, 1 - 001ad 85 c0 test eax, eax - 001af 74 1a je SHORT $LN12@NcCreateLa + 001a5 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001a9 8b 40 18 mov eax, DWORD PTR [rax+24] + 001ac 83 e0 01 and eax, 1 + 001af 85 c0 test eax, eax + 001b1 74 1a je SHORT $LN12@NcCreateLa -; 254 : { -; 255 : T->Label = JmpPos->Prev->Label; +; 256 : { +; 257 : T->Label = JmpPos->Prev->Label; - 001b1 48 8b 85 08 01 + 001b3 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 001b8 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 001bc 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 001c0 8b 40 1c mov eax, DWORD PTR [rax+28] - 001c3 89 41 1c mov DWORD PTR [rcx+28], eax + 001ba 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001be 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 001c2 8b 40 1c mov eax, DWORD PTR [rax+28] + 001c5 89 41 1c mov DWORD PTR [rcx+28], eax -; 256 : } +; 258 : } - 001c6 e9 9a 00 00 00 jmp $LN13@NcCreateLa + 001c8 e9 9a 00 00 00 jmp $LN13@NcCreateLa $LN12@NcCreateLa: -; 257 : else -; 258 : { -; 259 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); +; 259 : else +; 260 : { +; 261 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); - 001cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 001d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 001d5 48 89 85 08 02 + 001cd b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 001d2 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 001d7 48 89 85 08 02 00 00 mov QWORD PTR $T13[rbp], rax - 001dc 48 83 bd 08 02 + 001de 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e4 74 1f je SHORT $LN15@NcCreateLa - 001e6 4c 8b 85 50 02 + 001e6 74 1f je SHORT $LN15@NcCreateLa + 001e8 4c 8b 85 50 02 00 00 mov r8, QWORD PTR Block$[rbp] - 001ed 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] - 001f0 48 8b 8d 08 02 + 001ef 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] + 001f2 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 001fc 48 89 85 18 02 + 001f9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 001fe 48 89 85 18 02 00 00 mov QWORD PTR tv157[rbp], rax - 00203 eb 0b jmp SHORT $LN16@NcCreateLa + 00205 eb 0b jmp SHORT $LN16@NcCreateLa $LN15@NcCreateLa: - 00205 48 c7 85 18 02 + 00207 48 c7 85 18 02 00 00 00 00 00 00 mov QWORD PTR tv157[rbp], 0 $LN16@NcCreateLa: - 00210 48 8b 85 18 02 + 00212 48 8b 85 18 02 00 00 mov rax, QWORD PTR tv157[rbp] - 00217 48 89 85 e8 01 + 00219 48 89 85 e8 01 00 00 mov QWORD PTR $T12[rbp], rax - 0021e 48 8b 95 e8 01 + 00220 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR $T12[rbp] - 00225 48 8b 8d 08 01 + 00227 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR JmpPos$11[rbp] - 0022c e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore + 0022e e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore -; 260 : Block->LabelIds.push_back(CurrentLabelId); +; 262 : Block->LabelIds.push_back(CurrentLabelId); - 00231 48 8b 85 50 02 + 00233 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00238 48 83 c0 10 add rax, 16 - 0023c 48 89 85 18 02 + 0023a 48 83 c0 10 add rax, 16 + 0023e 48 89 85 18 02 00 00 mov QWORD PTR tv163[rbp], rax - 00243 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] - 00247 48 8b 8d 18 02 + 00245 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] + 00249 48 8b 8d 18 02 00 00 mov rcx, QWORD PTR tv163[rbp] - 0024e e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 00250 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back -; 261 : T->Label = CurrentLabelId; +; 263 : T->Label = CurrentLabelId; - 00253 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00257 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] - 0025a 89 48 1c mov DWORD PTR [rax+28], ecx + 00255 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00259 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] + 0025c 89 48 1c mov DWORD PTR [rax+28], ecx -; 262 : ++CurrentLabelId; +; 264 : ++CurrentLabelId; - 0025d 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] - 00260 ff c0 inc eax - 00262 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax + 0025f 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] + 00262 ff c0 inc eax + 00264 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax $LN13@NcCreateLa: -; 263 : } -; 264 : T->Flags |= CODE_FLAG_IS_REL_JMP; +; 265 : } +; 266 : T->Flags |= CODE_FLAG_IS_REL_JMP; - 00265 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00269 8b 40 18 mov eax, DWORD PTR [rax+24] - 0026c 83 c8 02 or eax, 2 - 0026f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 00273 89 41 18 mov DWORD PTR [rcx+24], eax + 00267 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 0026b 8b 40 18 mov eax, DWORD PTR [rax+24] + 0026e 83 c8 02 or eax, 2 + 00271 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00275 89 41 18 mov DWORD PTR [rcx+24], eax -; 265 : } +; 267 : } - 00276 e9 e3 fd ff ff jmp $LN2@NcCreateLa + 00278 e9 e3 fd ff ff jmp $LN2@NcCreateLa $LN3@NcCreateLa: -; 266 : return TRUE; +; 268 : return TRUE; - 0027b b8 01 00 00 00 mov eax, 1 + 0027d b8 01 00 00 00 mov eax, 1 $LN1@NcCreateLa: -; 267 : } +; 269 : } - 00280 48 8b f8 mov rdi, rax - 00283 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00287 48 8d 15 00 00 + 00282 48 8b f8 mov rdi, rax + 00285 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00289 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 0028e e8 00 00 00 00 call _RTC_CheckStackVars - 00293 48 8b c7 mov rax, rdi - 00296 48 8b 8d 20 02 + 00290 e8 00 00 00 00 call _RTC_CheckStackVars + 00295 48 8b c7 mov rax, rdi + 00298 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0029d 48 33 cd xor rcx, rbp - 002a0 e8 00 00 00 00 call __security_check_cookie - 002a5 48 8d a5 38 02 + 0029f 48 33 cd xor rcx, rbp + 002a2 e8 00 00 00 00 call __security_check_cookie + 002a7 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 002ac 5f pop rdi - 002ad 5d pop rbp - 002ae c3 ret 0 + 002ae 5f pop rdi + 002af 5d pop rbp + 002b0 c3 ret 0 ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCreateLabels _TEXT ENDS ; COMDAT text$x @@ -12220,7 +12212,7 @@ Block$ = 592 ?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcCreateLabels'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT T$1 = 8 @@ -12229,7 +12221,7 @@ Block$ = 264 FixLabels$ = 272 ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockBefore, COMDAT -; 198 : { +; 200 : { $LN10: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -12240,172 +12232,166 @@ $LN10: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 199 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) +; 201 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) - 00040 48 83 bd 00 01 + 00029 48 83 bd 00 01 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00048 74 33 je SHORT $LN6@NcInsertBl - 0004a 48 8b 85 00 01 + 00031 74 33 je SHORT $LN6@NcInsertBl + 00033 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00056 74 25 je SHORT $LN6@NcInsertBl - 00058 48 83 bd 08 01 + 0003a 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 0003f 74 25 je SHORT $LN6@NcInsertBl + 00041 48 83 bd 08 01 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00060 74 1b je SHORT $LN6@NcInsertBl - 00062 48 8b 85 08 01 + 00049 74 1b je SHORT $LN6@NcInsertBl + 0004b 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00069 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006d 74 0e je SHORT $LN6@NcInsertBl - 0006f 48 8b 85 08 01 + 00052 48 83 38 00 cmp QWORD PTR [rax], 0 + 00056 74 0e je SHORT $LN6@NcInsertBl + 00058 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0007b 75 07 jne SHORT $LN5@NcInsertBl + 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00064 75 07 jne SHORT $LN5@NcInsertBl $LN6@NcInsertBl: -; 200 : return FALSE; +; 202 : return FALSE; - 0007d 33 c0 xor eax, eax - 0007f e9 0e 01 00 00 jmp $LN1@NcInsertBl + 00066 33 c0 xor eax, eax + 00068 e9 0e 01 00 00 jmp $LN1@NcInsertBl $LN5@NcInsertBl: -; 201 : -; 202 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) +; 203 : +; 204 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 00084 83 bd 10 01 00 + 0006d 83 bd 10 01 00 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 0008b 74 4b je SHORT $LN7@NcInsertBl - 0008d 48 8b 85 08 01 + 00074 74 4b je SHORT $LN7@NcInsertBl + 00076 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00094 48 83 c0 10 add rax, 16 - 00098 48 8b c8 mov rcx, rax - 0009b e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000a0 48 85 c0 test rax, rax - 000a3 74 33 je SHORT $LN7@NcInsertBl - 000a5 48 8b 85 00 01 + 0007d 48 83 c0 10 add rax, 16 + 00081 48 8b c8 mov rcx, rax + 00084 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 00089 48 85 c0 test rax, rax + 0008c 74 33 je SHORT $LN7@NcInsertBl + 0008e 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000ac 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000b0 48 83 c0 10 add rax, 16 - 000b4 48 8b c8 mov rcx, rax - 000b7 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000bc 48 85 c0 test rax, rax - 000bf 74 17 je SHORT $LN7@NcInsertBl + 00095 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00099 48 83 c0 10 add rax, 16 + 0009d 48 8b c8 mov rcx, rax + 000a0 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000a5 48 85 c0 test rax, rax + 000a8 74 17 je SHORT $LN7@NcInsertBl -; 203 : NcFixLabelsForBlocks(Link->Block, Block); +; 205 : NcFixLabelsForBlocks(Link->Block, Block); - 000c1 48 8b 95 08 01 + 000aa 48 8b 95 08 01 00 00 mov rdx, QWORD PTR Block$[rbp] - 000c8 48 8b 85 00 01 + 000b1 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000cf 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 000d3 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks + 000b8 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 000bc e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks $LN7@NcInsertBl: -; 204 : -; 205 : if (Link->Prev) +; 206 : +; 207 : if (Link->Prev) - 000d8 48 8b 85 00 01 + 000c1 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000df 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 000e4 74 18 je SHORT $LN8@NcInsertBl + 000c8 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 000cd 74 18 je SHORT $LN8@NcInsertBl -; 206 : Link->Prev->Next = Block->Start; +; 208 : Link->Prev->Next = Block->Start; - 000e6 48 8b 85 00 01 + 000cf 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000ed 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000f1 48 8b 8d 08 01 + 000d6 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000da 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000f8 48 8b 09 mov rcx, QWORD PTR [rcx] - 000fb 48 89 08 mov QWORD PTR [rax], rcx + 000e1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000e4 48 89 08 mov QWORD PTR [rax], rcx $LN8@NcInsertBl: -; 207 : Block->Start->Prev = Link->Prev; +; 209 : Block->Start->Prev = Link->Prev; - 000fe 48 8b 85 08 01 + 000e7 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00105 48 8b 00 mov rax, QWORD PTR [rax] - 00108 48 8b 8d 00 01 + 000ee 48 8b 00 mov rax, QWORD PTR [rax] + 000f1 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0010f 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00113 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000f8 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000fc 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 208 : Block->End->Next = Link; +; 210 : Block->End->Next = Link; - 00117 48 8b 85 08 01 + 00100 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0011e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00122 48 8b 8d 00 01 + 00107 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0010b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00129 48 89 08 mov QWORD PTR [rax], rcx + 00112 48 89 08 mov QWORD PTR [rax], rcx -; 209 : Link->Prev = Block->End; +; 211 : Link->Prev = Block->End; - 0012c 48 8b 85 00 01 + 00115 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00133 48 8b 8d 08 01 + 0011c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0013a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0013e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00123 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00127 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 210 : -; 211 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 212 : +; 213 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00142 48 8b 85 08 01 + 0012b 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00149 48 8b 00 mov rax, QWORD PTR [rax] - 0014c 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00150 eb 0b jmp SHORT $LN4@NcInsertBl + 00132 48 8b 00 mov rax, QWORD PTR [rax] + 00135 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00139 eb 0b jmp SHORT $LN4@NcInsertBl $LN2@NcInsertBl: - 00152 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00156 48 8b 00 mov rax, QWORD PTR [rax] - 00159 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0013b 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0013f 48 8b 00 mov rax, QWORD PTR [rax] + 00142 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcInsertBl: - 0015d 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00162 74 29 je SHORT $LN3@NcInsertBl - 00164 48 8b 85 08 01 + 00146 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0014b 74 29 je SHORT $LN3@NcInsertBl + 0014d 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0016b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0016f 48 8b 00 mov rax, QWORD PTR [rax] - 00172 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00176 74 15 je SHORT $LN3@NcInsertBl + 00154 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00158 48 8b 00 mov rax, QWORD PTR [rax] + 0015b 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0015f 74 15 je SHORT $LN3@NcInsertBl -; 212 : T->Block = Link->Block; +; 214 : T->Block = Link->Block; - 00178 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0017c 48 8b 8d 00 01 + 00161 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00165 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00183 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00187 48 89 48 10 mov QWORD PTR [rax+16], rcx - 0018b eb c5 jmp SHORT $LN2@NcInsertBl + 0016c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00170 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00174 eb c5 jmp SHORT $LN2@NcInsertBl $LN3@NcInsertBl: -; 213 : -; 214 : return TRUE; +; 215 : +; 216 : return TRUE; - 0018d b8 01 00 00 00 mov eax, 1 + 00176 b8 01 00 00 00 mov eax, 1 $LN1@NcInsertBl: -; 215 : } +; 217 : } - 00192 48 8d a5 e8 00 + 0017b 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00199 5f pop rdi - 0019a 5d pop rbp - 0019b c3 ret 0 + 00182 5f pop rdi + 00183 5d pop rbp + 00184 c3 ret 0 ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockBefore _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT T$1 = 8 @@ -12414,7 +12400,7 @@ Block$ = 264 FixLabels$ = 272 ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockAfter, COMDAT -; 178 : { +; 180 : { $LN10: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -12425,178 +12411,172 @@ $LN10: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 179 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) +; 181 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) - 00040 48 83 bd 00 01 + 00029 48 83 bd 00 01 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00048 74 47 je SHORT $LN6@NcInsertBl - 0004a 48 8b 85 00 01 + 00031 74 47 je SHORT $LN6@NcInsertBl + 00033 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00056 74 39 je SHORT $LN6@NcInsertBl - 00058 48 83 bd 08 01 + 0003a 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 0003f 74 39 je SHORT $LN6@NcInsertBl + 00041 48 83 bd 08 01 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00060 74 2f je SHORT $LN6@NcInsertBl - 00062 48 8b 85 08 01 + 00049 74 2f je SHORT $LN6@NcInsertBl + 0004b 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00069 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006d 74 22 je SHORT $LN6@NcInsertBl - 0006f 48 8b 85 08 01 + 00052 48 83 38 00 cmp QWORD PTR [rax], 0 + 00056 74 22 je SHORT $LN6@NcInsertBl + 00058 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0007b 74 14 je SHORT $LN6@NcInsertBl - 0007d 48 8b 85 00 01 + 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00064 74 14 je SHORT $LN6@NcInsertBl + 00066 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00084 48 8b 8d 08 01 + 0006d 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0008b 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 0008f 75 07 jne SHORT $LN5@NcInsertBl + 00074 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 00078 75 07 jne SHORT $LN5@NcInsertBl $LN6@NcInsertBl: -; 180 : return FALSE; +; 182 : return FALSE; - 00091 33 c0 xor eax, eax - 00093 e9 0b 01 00 00 jmp $LN1@NcInsertBl + 0007a 33 c0 xor eax, eax + 0007c e9 0b 01 00 00 jmp $LN1@NcInsertBl $LN5@NcInsertBl: -; 181 : -; 182 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) +; 183 : +; 184 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 00098 83 bd 10 01 00 + 00081 83 bd 10 01 00 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 0009f 74 4b je SHORT $LN7@NcInsertBl - 000a1 48 8b 85 08 01 + 00088 74 4b je SHORT $LN7@NcInsertBl + 0008a 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000a8 48 83 c0 10 add rax, 16 - 000ac 48 8b c8 mov rcx, rax - 000af e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000b4 48 85 c0 test rax, rax - 000b7 74 33 je SHORT $LN7@NcInsertBl - 000b9 48 8b 85 00 01 + 00091 48 83 c0 10 add rax, 16 + 00095 48 8b c8 mov rcx, rax + 00098 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 0009d 48 85 c0 test rax, rax + 000a0 74 33 je SHORT $LN7@NcInsertBl + 000a2 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000c0 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000c4 48 83 c0 10 add rax, 16 - 000c8 48 8b c8 mov rcx, rax - 000cb e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000d0 48 85 c0 test rax, rax - 000d3 74 17 je SHORT $LN7@NcInsertBl + 000a9 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000ad 48 83 c0 10 add rax, 16 + 000b1 48 8b c8 mov rcx, rax + 000b4 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000b9 48 85 c0 test rax, rax + 000bc 74 17 je SHORT $LN7@NcInsertBl -; 183 : NcFixLabelsForBlocks(Link->Block, Block); +; 185 : NcFixLabelsForBlocks(Link->Block, Block); - 000d5 48 8b 95 08 01 + 000be 48 8b 95 08 01 00 00 mov rdx, QWORD PTR Block$[rbp] - 000dc 48 8b 85 00 01 + 000c5 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000e3 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 000e7 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks + 000cc 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 000d0 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks $LN7@NcInsertBl: -; 184 : -; 185 : if (Link->Next) +; 186 : +; 187 : if (Link->Next) - 000ec 48 8b 85 00 01 + 000d5 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000f3 48 83 38 00 cmp QWORD PTR [rax], 0 - 000f7 74 19 je SHORT $LN8@NcInsertBl + 000dc 48 83 38 00 cmp QWORD PTR [rax], 0 + 000e0 74 19 je SHORT $LN8@NcInsertBl -; 186 : Link->Next->Prev = Block->End; +; 188 : Link->Next->Prev = Block->End; - 000f9 48 8b 85 00 01 + 000e2 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00100 48 8b 00 mov rax, QWORD PTR [rax] - 00103 48 8b 8d 08 01 + 000e9 48 8b 00 mov rax, QWORD PTR [rax] + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0010a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0010e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000f3 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000f7 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN8@NcInsertBl: -; 187 : Block->End->Next = Link->Next; +; 189 : Block->End->Next = Link->Next; - 00112 48 8b 85 08 01 + 000fb 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00119 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0011d 48 8b 8d 00 01 + 00102 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00106 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00124 48 8b 09 mov rcx, QWORD PTR [rcx] - 00127 48 89 08 mov QWORD PTR [rax], rcx + 0010d 48 8b 09 mov rcx, QWORD PTR [rcx] + 00110 48 89 08 mov QWORD PTR [rax], rcx -; 188 : Block->Start->Prev = Link; +; 190 : Block->Start->Prev = Link; - 0012a 48 8b 85 08 01 + 00113 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00131 48 8b 00 mov rax, QWORD PTR [rax] - 00134 48 8b 8d 00 01 + 0011a 48 8b 00 mov rax, QWORD PTR [rax] + 0011d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0013b 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00124 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 189 : Link->Next = Block->Start; +; 191 : Link->Next = Block->Start; - 0013f 48 8b 85 00 01 + 00128 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00146 48 8b 8d 08 01 + 0012f 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014d 48 8b 09 mov rcx, QWORD PTR [rcx] - 00150 48 89 08 mov QWORD PTR [rax], rcx + 00136 48 8b 09 mov rcx, QWORD PTR [rcx] + 00139 48 89 08 mov QWORD PTR [rax], rcx -; 190 : -; 191 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 192 : +; 193 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00153 48 8b 85 08 01 + 0013c 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0015a 48 8b 00 mov rax, QWORD PTR [rax] - 0015d 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00161 eb 0b jmp SHORT $LN4@NcInsertBl + 00143 48 8b 00 mov rax, QWORD PTR [rax] + 00146 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0014a eb 0b jmp SHORT $LN4@NcInsertBl $LN2@NcInsertBl: - 00163 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00167 48 8b 00 mov rax, QWORD PTR [rax] - 0016a 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0014c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00150 48 8b 00 mov rax, QWORD PTR [rax] + 00153 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcInsertBl: - 0016e 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00173 74 29 je SHORT $LN3@NcInsertBl - 00175 48 8b 85 08 01 + 00157 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0015c 74 29 je SHORT $LN3@NcInsertBl + 0015e 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0017c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00180 48 8b 00 mov rax, QWORD PTR [rax] - 00183 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00187 74 15 je SHORT $LN3@NcInsertBl + 00165 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00169 48 8b 00 mov rax, QWORD PTR [rax] + 0016c 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00170 74 15 je SHORT $LN3@NcInsertBl -; 192 : T->Block = Link->Block; +; 194 : T->Block = Link->Block; - 00189 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0018d 48 8b 8d 00 01 + 00172 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00176 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00194 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00198 48 89 48 10 mov QWORD PTR [rax+16], rcx - 0019c eb c5 jmp SHORT $LN2@NcInsertBl + 0017d 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00181 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00185 eb c5 jmp SHORT $LN2@NcInsertBl $LN3@NcInsertBl: -; 193 : -; 194 : return TRUE; +; 195 : +; 196 : return TRUE; - 0019e b8 01 00 00 00 mov eax, 1 + 00187 b8 01 00 00 00 mov eax, 1 $LN1@NcInsertBl: -; 195 : } +; 197 : } - 001a3 48 8d a5 e8 00 + 0018c 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 001aa 5f pop rdi - 001ab 5d pop rbp - 001ac c3 ret 0 + 00193 5f pop rdi + 00194 5d pop rbp + 00195 c3 ret 0 ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT T$1 = 8 @@ -12616,461 +12596,230 @@ tv138 = 552 tv133 = 560 tv183 = 568 tv92 = 576 -tv198 = 584 -tv188 = 592 -tv161 = 600 -tv153 = 608 -tv199 = 616 -tv193 = 624 -tv159 = 632 -tv165 = 640 -Block1$ = 688 -Block2$ = 696 +tv188 = 584 +tv161 = 592 +tv153 = 600 +tv193 = 608 +tv159 = 616 +tv165 = 624 +Block1$ = 672 +Block2$ = 680 ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcFixLabelsForBlocks, COMDAT -; 167 : { +; 169 : { $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 b8 02 - 00 00 sub rsp, 696 ; 000002b8H + 0000c 48 81 ec a8 02 + 00 00 sub rsp, 680 ; 000002a8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 ae 00 00 00 mov ecx, 174 ; 000000aeH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 d8 - 02 00 00 mov rcx, QWORD PTR [rsp+728] - 0002f c7 85 04 02 00 + 00018 c7 85 04 02 00 00 00 00 00 00 mov DWORD PTR $T9[rbp], 0 - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 168 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) +; 170 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) - 00045 48 8b 85 b8 02 + 0002e 48 8b 85 a8 02 00 00 mov rax, QWORD PTR Block2$[rbp] - 0004c 48 8b 00 mov rax, QWORD PTR [rax] - 0004f 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00053 eb 0b jmp SHORT $LN4@NcFixLabel + 00035 48 8b 00 mov rax, QWORD PTR [rax] + 00038 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0003c eb 0b jmp SHORT $LN4@NcFixLabel $LN2@NcFixLabel: - 00055 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00059 48 8b 00 mov rax, QWORD PTR [rax] - 0005c 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0003e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcFixLabel: - 00060 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00065 0f 84 2e 02 00 + 00049 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0004e 0f 84 11 02 00 00 je $LN3@NcFixLabel - 0006b 48 8b 85 b8 02 + 00054 48 8b 85 a8 02 00 00 mov rax, QWORD PTR Block2$[rbp] - 00072 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00076 48 8b 00 mov rax, QWORD PTR [rax] - 00079 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0007d 0f 84 16 02 00 + 0005b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0005f 48 8b 00 mov rax, QWORD PTR [rax] + 00062 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00066 0f 84 f9 01 00 00 je $LN3@NcFixLabel -; 169 : { -; 170 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) +; 171 : { +; 172 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) - 00083 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00087 8b 40 18 mov eax, DWORD PTR [rax+24] - 0008a 83 e0 01 and eax, 1 - 0008d 85 c0 test eax, eax - 0008f 0f 84 64 01 00 + 0006c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00070 8b 40 18 mov eax, DWORD PTR [rax+24] + 00073 83 e0 01 and eax, 1 + 00076 85 c0 test eax, eax + 00078 0f 84 48 01 00 00 je $LN7@NcFixLabel - 00095 48 8d 85 08 01 + 0007e 48 8d 85 08 01 00 00 lea rax, QWORD PTR $T3[rbp] - 0009c 48 89 85 38 01 + 00085 48 89 85 38 01 00 00 mov QWORD PTR $T4[rbp], rax - 000a3 48 8b 85 b0 02 + 0008c 48 8b 85 a0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 000aa 48 83 c0 10 add rax, 16 - 000ae 48 89 85 18 02 + 00093 48 83 c0 10 add rax, 16 + 00097 48 89 85 18 02 00 00 mov QWORD PTR tv89[rbp], rax - 000b5 48 8b 95 38 01 + 0009e 48 8b 95 38 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 000bc 48 8b 8d 18 02 + 000a5 48 8b 8d 18 02 00 00 mov rcx, QWORD PTR tv89[rbp] - 000c3 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 000c8 48 89 85 20 02 + 000ac e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 000b1 48 89 85 20 02 00 00 mov QWORD PTR tv181[rbp], rax - 000cf 48 8b 85 20 02 + 000b8 48 8b 85 20 02 00 00 mov rax, QWORD PTR tv181[rbp] - 000d6 48 89 85 28 02 + 000bf 48 89 85 28 02 00 00 mov QWORD PTR tv138[rbp], rax - 000dd 48 8d 85 58 01 + 000c6 48 8d 85 58 01 00 00 lea rax, QWORD PTR $T5[rbp] - 000e4 48 89 85 88 01 + 000cd 48 89 85 88 01 00 00 mov QWORD PTR $T6[rbp], rax - 000eb 48 8b 85 b0 02 + 000d4 48 8b 85 a0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 000f2 48 83 c0 10 add rax, 16 - 000f6 48 89 85 30 02 + 000db 48 83 c0 10 add rax, 16 + 000df 48 89 85 30 02 00 00 mov QWORD PTR tv133[rbp], rax - 000fd 48 8b 95 88 01 + 000e6 48 8b 95 88 01 00 00 mov rdx, QWORD PTR $T6[rbp] - 00104 48 8b 8d 30 02 + 000ed 48 8b 8d 30 02 00 00 mov rcx, QWORD PTR tv133[rbp] - 0010b e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin - 00110 48 89 85 38 02 + 000f4 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin + 000f9 48 89 85 38 02 00 00 mov QWORD PTR tv183[rbp], rax - 00117 48 8b 85 38 02 + 00100 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv183[rbp] - 0011e 48 89 85 40 02 + 00107 48 89 85 40 02 00 00 mov QWORD PTR tv92[rbp], rax - 00125 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00129 48 83 c0 1c add rax, 28 - 0012d 4c 8b c8 mov r9, rax - 00130 4c 8b 85 28 02 + 0010e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00112 48 83 c0 1c add rax, 28 + 00116 4c 8b c8 mov r9, rax + 00119 4c 8b 85 28 02 00 00 mov r8, QWORD PTR tv138[rbp] - 00137 48 8b 95 40 02 + 00120 48 8b 95 40 02 00 00 mov rdx, QWORD PTR tv92[rbp] - 0013e 48 8d 8d a8 01 + 00127 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 00145 e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> - 0014a 48 89 85 48 02 - 00 00 mov QWORD PTR tv198[rbp], rax - 00151 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR tv198[rbp] - 00158 48 89 85 50 02 + 0012e e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> + 00133 48 89 85 48 02 00 00 mov QWORD PTR tv188[rbp], rax - 0015f 8b 85 04 02 00 + 0013a 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 00165 83 c8 01 or eax, 1 - 00168 89 85 04 02 00 + 00140 83 c8 01 or eax, 1 + 00143 89 85 04 02 00 00 mov DWORD PTR $T9[rbp], eax - 0016e 48 8b 85 50 02 + 00149 48 8b 85 48 02 00 00 mov rax, QWORD PTR tv188[rbp] - 00175 48 89 85 58 02 + 00150 48 89 85 50 02 00 00 mov QWORD PTR tv161[rbp], rax - 0017c 48 8b 85 b0 02 + 00157 48 8b 85 a0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 00183 48 83 c0 10 add rax, 16 - 00187 48 89 85 60 02 + 0015e 48 83 c0 10 add rax, 16 + 00162 48 89 85 58 02 00 00 mov QWORD PTR tv153[rbp], rax - 0018e 48 8d 95 d8 01 + 00169 48 8d 95 d8 01 00 00 lea rdx, QWORD PTR $T8[rbp] - 00195 48 8b 8d 60 02 + 00170 48 8b 8d 58 02 00 00 mov rcx, QWORD PTR tv153[rbp] - 0019c e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 001a1 48 89 85 68 02 - 00 00 mov QWORD PTR tv199[rbp], rax - 001a8 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR tv199[rbp] - 001af 48 89 85 70 02 + 00177 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 0017c 48 89 85 60 02 00 00 mov QWORD PTR tv193[rbp], rax - 001b6 8b 85 04 02 00 + 00183 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 001bc 83 c8 02 or eax, 2 - 001bf 89 85 04 02 00 + 00189 83 c8 02 or eax, 2 + 0018c 89 85 04 02 00 00 mov DWORD PTR $T9[rbp], eax - 001c5 48 8b 85 70 02 + 00192 48 8b 85 60 02 00 00 mov rax, QWORD PTR tv193[rbp] - 001cc 48 89 85 78 02 + 00199 48 89 85 68 02 00 00 mov QWORD PTR tv159[rbp], rax - 001d3 48 8b 95 78 02 + 001a0 48 8b 95 68 02 00 00 mov rdx, QWORD PTR tv159[rbp] - 001da 48 8b 8d 58 02 + 001a7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR tv161[rbp] - 001e1 e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= - 001e6 0f b6 c0 movzx eax, al - 001e9 85 c0 test eax, eax - 001eb 74 0c je SHORT $LN7@NcFixLabel - 001ed c7 85 80 02 00 + 001ae e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= + 001b3 0f b6 c0 movzx eax, al + 001b6 85 c0 test eax, eax + 001b8 74 0c je SHORT $LN7@NcFixLabel + 001ba c7 85 70 02 00 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 - 001f7 eb 0a jmp SHORT $LN8@NcFixLabel + 001c4 eb 0a jmp SHORT $LN8@NcFixLabel $LN7@NcFixLabel: - 001f9 c7 85 80 02 00 + 001c6 c7 85 70 02 00 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 $LN8@NcFixLabel: - 00203 0f b6 85 80 02 + 001d0 0f b6 85 70 02 00 00 movzx eax, BYTE PTR tv165[rbp] - 0020a 88 85 e4 00 00 + 001d7 88 85 e4 00 00 00 mov BYTE PTR $T2[rbp], al - 00210 8b 85 04 02 00 + 001dd 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 00216 83 e0 02 and eax, 2 - 00219 85 c0 test eax, eax - 0021b 74 14 je SHORT $LN15@NcFixLabel - 0021d 83 a5 04 02 00 + 001e3 83 e0 02 and eax, 2 + 001e6 85 c0 test eax, eax + 001e8 74 13 je SHORT $LN15@NcFixLabel + 001ea 83 a5 04 02 00 00 fd and DWORD PTR $T9[rbp], -3 - 00224 48 8d 8d d8 01 + 001f1 48 8d 8d d8 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 0022b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00230 90 npad 1 + 001f8 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ $LN15@NcFixLabel: - 00231 8b 85 04 02 00 + 001fd 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 00237 83 e0 01 and eax, 1 - 0023a 85 c0 test eax, eax - 0023c 74 13 je SHORT $LN16@NcFixLabel - 0023e 83 a5 04 02 00 + 00203 83 e0 01 and eax, 1 + 00206 85 c0 test eax, eax + 00208 74 13 je SHORT $LN16@NcFixLabel + 0020a 83 a5 04 02 00 00 fe and DWORD PTR $T9[rbp], -2 - 00245 48 8d 8d a8 01 + 00211 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 0024c e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00218 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ $LN16@NcFixLabel: - 00251 0f b6 85 e4 00 + 0021d 0f b6 85 e4 00 00 00 movzx eax, BYTE PTR $T2[rbp] - 00258 85 c0 test eax, eax - 0025a 74 38 je SHORT $LN5@NcFixLabel + 00224 85 c0 test eax, eax + 00226 74 38 je SHORT $LN5@NcFixLabel -; 171 : { -; 172 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); +; 173 : { +; 174 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); - 0025c 48 8b 8d b0 02 + 00228 48 8b 8d a0 02 00 00 mov rcx, QWORD PTR Block1$[rbp] - 00263 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 00268 89 85 14 02 00 + 0022f e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00234 89 85 14 02 00 00 mov DWORD PTR tv178[rbp], eax - 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 + 0023a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0023e 8b 40 1c mov eax, DWORD PTR [rax+28] + 00241 89 85 18 02 00 00 mov DWORD PTR tv176[rbp], eax - 0027b 44 8b 85 14 02 + 00247 44 8b 85 14 02 00 00 mov r8d, DWORD PTR tv178[rbp] - 00282 8b 95 18 02 00 + 0024e 8b 95 18 02 00 00 mov edx, DWORD PTR tv176[rbp] - 00288 48 8b 8d b8 02 + 00254 48 8b 8d a8 02 00 00 mov rcx, QWORD PTR Block2$[rbp] - 0028f e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId + 0025b e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId $LN5@NcFixLabel: -; 173 : } -; 174 : } +; 175 : } +; 176 : } - 00294 e9 bc fd ff ff jmp $LN2@NcFixLabel + 00260 e9 d9 fd ff ff jmp $LN2@NcFixLabel $LN3@NcFixLabel: -; 175 : } +; 177 : } - 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 + 00265 48 8d a5 88 02 + 00 00 lea rsp, QWORD PTR [rbp+648] + 0026c 5f pop rdi + 0026d 5d pop rbp + 0026e c3 ret 0 ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcFixLabelsForBlocks _TEXT ENDS -; 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT ReturnLabelId$ = 4 @@ -13088,362 +12837,181 @@ tv130 = 520 tv93 = 528 tv166 = 536 tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 +tv168 = 552 +tv153 = 560 +tv145 = 568 +tv170 = 576 +tv151 = 584 +__$ArrayPad$ = 592 +Block$ = 640 ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcGenUnusedLabelId, COMDAT -; 149 : { +; 151 : { $LN9: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 98 02 - 00 00 sub rsp, 664 ; 00000298H + 00007 48 81 ec 88 02 + 00 00 sub rsp, 648 ; 00000288H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 a6 00 00 00 mov ecx, 166 ; 000000a6H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 b8 - 02 00 00 mov rcx, QWORD PTR [rsp+696] - 0002a 48 8b 05 00 00 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 a8 + 02 00 00 mov rcx, QWORD PTR [rsp+680] + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 60 02 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 50 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 150 : ULONG ReturnLabelId = rand(); +; 152 : ULONG ReturnLabelId = rand(); - 00047 ff 15 00 00 00 + 00049 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 0004d 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 0004f 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax $LN2@NcGenUnuse: -; 151 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) +; 153 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) - 00050 48 8d 85 08 01 + 00052 48 8d 85 08 01 00 00 lea rax, QWORD PTR $T5[rbp] - 00057 48 89 85 38 01 + 00059 48 89 85 38 01 00 00 mov QWORD PTR $T6[rbp], rax - 0005e 48 8b 85 90 02 + 00060 48 8b 85 80 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00065 48 83 c0 10 add rax, 16 - 00069 48 89 85 f8 01 + 00067 48 83 c0 10 add rax, 16 + 0006b 48 89 85 f8 01 00 00 mov QWORD PTR tv81[rbp], rax - 00070 48 8b 95 38 01 + 00072 48 8b 95 38 01 00 00 mov rdx, QWORD PTR $T6[rbp] - 00077 48 8b 8d f8 01 + 00079 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR tv81[rbp] - 0007e e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 00083 48 89 85 00 02 + 00080 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 00085 48 89 85 00 02 00 00 mov QWORD PTR tv164[rbp], rax - 0008a 48 8b 85 00 02 + 0008c 48 8b 85 00 02 00 00 mov rax, QWORD PTR tv164[rbp] - 00091 48 89 85 08 02 + 00093 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax - 00098 48 8d 85 58 01 + 0009a 48 8d 85 58 01 00 00 lea rax, QWORD PTR $T7[rbp] - 0009f 48 89 85 88 01 + 000a1 48 89 85 88 01 00 00 mov QWORD PTR $T8[rbp], rax - 000a6 48 8b 85 90 02 + 000a8 48 8b 85 80 02 00 00 mov rax, QWORD PTR Block$[rbp] - 000ad 48 83 c0 10 add rax, 16 - 000b1 48 89 85 10 02 + 000af 48 83 c0 10 add rax, 16 + 000b3 48 89 85 10 02 00 00 mov QWORD PTR tv93[rbp], rax - 000b8 48 8b 95 88 01 + 000ba 48 8b 95 88 01 00 00 mov rdx, QWORD PTR $T8[rbp] - 000bf 48 8b 8d 10 02 + 000c1 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv93[rbp] - 000c6 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin - 000cb 48 89 85 18 02 + 000c8 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin + 000cd 48 89 85 18 02 00 00 mov QWORD PTR tv166[rbp], rax - 000d2 48 8b 85 18 02 + 000d4 48 8b 85 18 02 00 00 mov rax, QWORD PTR tv166[rbp] - 000d9 48 89 85 20 02 + 000db 48 89 85 20 02 00 00 mov QWORD PTR tv84[rbp], rax - 000e0 4c 8d 4d 04 lea r9, QWORD PTR ReturnLabelId$[rbp] - 000e4 4c 8b 85 08 02 + 000e2 4c 8d 4d 04 lea r9, QWORD PTR ReturnLabelId$[rbp] + 000e6 4c 8b 85 08 02 00 00 mov r8, QWORD PTR tv130[rbp] - 000eb 48 8b 95 20 02 + 000ed 48 8b 95 20 02 00 00 mov rdx, QWORD PTR tv84[rbp] - 000f2 48 8d 8d a8 01 + 000f4 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T9[rbp] - 000f9 e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> - 000fe 48 89 85 28 02 - 00 00 mov QWORD PTR tv171[rbp], rax - 00105 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR tv171[rbp] - 0010c 48 89 85 30 02 + 000fb e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> + 00100 48 89 85 28 02 00 00 mov QWORD PTR tv168[rbp], rax - 00113 48 8b 85 30 02 + 00107 48 8b 85 28 02 00 00 mov rax, QWORD PTR tv168[rbp] - 0011a 48 89 85 38 02 + 0010e 48 89 85 30 02 00 00 mov QWORD PTR tv153[rbp], rax - 00121 48 8b 85 90 02 + 00115 48 8b 85 80 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00128 48 83 c0 10 add rax, 16 - 0012c 48 89 85 40 02 + 0011c 48 83 c0 10 add rax, 16 + 00120 48 89 85 38 02 00 00 mov QWORD PTR tv145[rbp], rax - 00133 48 8d 95 d8 01 + 00127 48 8d 95 d8 01 00 00 lea rdx, QWORD PTR $T10[rbp] - 0013a 48 8b 8d 40 02 + 0012e 48 8b 8d 38 02 00 00 mov rcx, QWORD PTR tv145[rbp] - 00141 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 00146 48 89 85 48 02 - 00 00 mov QWORD PTR tv172[rbp], rax - 0014d 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR tv172[rbp] - 00154 48 89 85 50 02 - 00 00 mov QWORD PTR tv170[rbp], rax - 0015b 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR tv170[rbp] - 00162 48 89 85 58 02 - 00 00 mov QWORD PTR tv151[rbp], rax - 00169 48 8b 95 58 02 - 00 00 mov rdx, QWORD PTR tv151[rbp] - 00170 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR tv153[rbp] - 00177 e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= - 0017c 88 85 e4 00 00 - 00 mov BYTE PTR $T4[rbp], al - 00182 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 00189 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 0018e 90 npad 1 - 0018f 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 00196 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 0019b 0f b6 85 e4 00 - 00 00 movzx eax, BYTE PTR $T4[rbp] - 001a2 85 c0 test eax, eax - 001a4 74 0e je SHORT $LN3@NcGenUnuse - -; 152 : ReturnLabelId = rand(); - - 001a6 ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 001ac 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax - 001af e9 9c fe ff ff jmp $LN2@NcGenUnuse -$LN3@NcGenUnuse: - -; 153 : Block->LabelIds.push_back(ReturnLabelId); - - 001b4 48 8b 85 90 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001bb 48 83 c0 10 add rax, 16 - 001bf 48 89 85 f8 01 - 00 00 mov QWORD PTR tv161[rbp], rax - 001c6 48 8d 55 04 lea rdx, QWORD PTR ReturnLabelId$[rbp] - 001ca 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR tv161[rbp] - 001d1 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back - -; 154 : return ReturnLabelId; - - 001d6 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] - -; 155 : } - - 001d9 8b f8 mov edi, eax - 001db 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001df 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001e6 e8 00 00 00 00 call _RTC_CheckStackVars - 001eb 8b c7 mov eax, edi - 001ed 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001f4 48 33 cd xor rcx, rbp - 001f7 e8 00 00 00 00 call __security_check_cookie - 001fc 48 8d a5 78 02 - 00 00 lea rsp, QWORD PTR [rbp+632] - 00203 5f pop rdi - 00204 5d pop rbp - 00205 c3 ret 0 -?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d d8 01 + 00135 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 0013a 48 89 85 40 02 + 00 00 mov QWORD PTR tv170[rbp], rax + 00141 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR tv170[rbp] + 00148 48 89 85 48 02 + 00 00 mov QWORD PTR tv151[rbp], rax + 0014f 48 8b 95 48 02 + 00 00 mov rdx, QWORD PTR tv151[rbp] + 00156 48 8b 8d 30 02 + 00 00 mov rcx, QWORD PTR tv153[rbp] + 0015d e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= + 00162 88 85 e4 00 00 + 00 mov BYTE PTR $T4[rbp], al + 00168 48 8d 8d d8 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 -text$x ENDS + 0016f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00174 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 0017b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00180 0f b6 85 e4 00 + 00 00 movzx eax, BYTE PTR $T4[rbp] + 00187 85 c0 test eax, eax + 00189 74 0e je SHORT $LN3@NcGenUnuse + +; 154 : ReturnLabelId = rand(); + + 0018b ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 00191 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 00194 e9 b9 fe ff ff jmp $LN2@NcGenUnuse +$LN3@NcGenUnuse: + +; 155 : Block->LabelIds.push_back(ReturnLabelId); + + 00199 48 8b 85 80 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001a0 48 83 c0 10 add rax, 16 + 001a4 48 89 85 f8 01 + 00 00 mov QWORD PTR tv161[rbp], rax + 001ab 48 8d 55 04 lea rdx, QWORD PTR ReturnLabelId$[rbp] + 001af 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR tv161[rbp] + 001b6 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + +; 156 : return ReturnLabelId; + + 001bb 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] + +; 157 : } + + 001be 8b f8 mov edi, eax + 001c0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001c4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 001cb e8 00 00 00 00 call _RTC_CheckStackVars + 001d0 8b c7 mov eax, edi + 001d2 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 001d9 48 33 cd xor rcx, rbp + 001dc e8 00 00 00 00 call __security_check_cookie + 001e1 48 8d a5 68 02 + 00 00 lea rsp, QWORD PTR [rbp+616] + 001e8 5f pop rdi + 001e9 5d pop rbp + 001ea c3 ret 0 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z _TEXT SEGMENT T$1 = 8 @@ -13452,7 +13020,7 @@ Original$ = 264 New$ = 272 ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z PROC ; NcChangeLabelId, COMDAT -; 158 : { +; 160 : { $LN8: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -13463,81 +13031,75 @@ $LN8: 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00033 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 159 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 161 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0003f 48 8b 85 00 01 + 00028 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00046 48 8b 00 mov rax, QWORD PTR [rax] - 00049 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 0004d eb 0b jmp SHORT $LN4@NcChangeLa + 0002f 48 8b 00 mov rax, QWORD PTR [rax] + 00032 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00036 eb 0b jmp SHORT $LN4@NcChangeLa $LN2@NcChangeLa: - 0004f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00038 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcChangeLa: - 0005a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0005f 74 4e je SHORT $LN3@NcChangeLa - 00061 48 8b 85 00 01 + 00043 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00048 74 4e je SHORT $LN3@NcChangeLa + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00068 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006c 48 8b 00 mov rax, QWORD PTR [rax] - 0006f 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00073 74 3a je SHORT $LN3@NcChangeLa - -; 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 + 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 + +; 162 : { +; 163 : 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 $LN6@NcChangeLa: - 00091 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00095 8b 8d 08 01 00 + 0007a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0007e 8b 8d 08 01 00 00 mov ecx, DWORD PTR Original$[rbp] - 0009b 39 48 1c cmp DWORD PTR [rax+28], ecx - 0009e 75 0d jne SHORT $LN5@NcChangeLa + 00084 39 48 1c cmp DWORD PTR [rax+28], ecx + 00087 75 0d jne SHORT $LN5@NcChangeLa -; 162 : T->Label = New; +; 164 : T->Label = New; - 000a0 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 000a4 8b 8d 10 01 00 + 00089 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0008d 8b 8d 10 01 00 00 mov ecx, DWORD PTR New$[rbp] - 000aa 89 48 1c mov DWORD PTR [rax+28], ecx + 00093 89 48 1c mov DWORD PTR [rax+28], ecx $LN5@NcChangeLa: -; 163 : } +; 165 : } - 000ad eb a0 jmp SHORT $LN2@NcChangeLa + 00096 eb a0 jmp SHORT $LN2@NcChangeLa $LN3@NcChangeLa: -; 164 : } +; 166 : } - 000af 48 8d a5 e8 00 + 00098 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000b6 5f pop rdi - 000b7 5d pop rbp - 000b8 c3 ret 0 + 0009f 5f pop rdi + 000a0 5d pop rbp + 000a1 c3 ret 0 ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ENDP ; NcChangeLabelId _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT TotalSize$ = 4 @@ -13545,7 +13107,7 @@ T$1 = 40 Block$ = 288 ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCalcBlockSizeInBytes, COMDAT -; 137 : { +; 139 : { $LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13554,177 +13116,192 @@ $LN7: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 138 : ULONG TotalSize = 0; - - 00036 c7 45 04 00 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 140 : ULONG TotalSize = 0; + + 0001f 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) +; 141 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0003d 48 8b 85 20 01 + 00026 48 8b 85 20 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00044 48 8b 00 mov rax, QWORD PTR [rax] - 00047 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 0004b eb 0b jmp SHORT $LN4@NcCalcBloc + 0002d 48 8b 00 mov rax, QWORD PTR [rax] + 00030 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00034 eb 0b jmp SHORT $LN4@NcCalcBloc $LN2@NcCalcBloc: - 0004d 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00051 48 8b 00 mov rax, QWORD PTR [rax] - 00054 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00036 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0003a 48 8b 00 mov rax, QWORD PTR [rax] + 0003d 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN4@NcCalcBloc: - 00058 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0005d 74 37 je SHORT $LN3@NcCalcBloc - 0005f 48 8b 85 20 01 + 00041 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00046 74 37 je SHORT $LN3@NcCalcBloc + 00048 48 8b 85 20 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00066 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00071 74 23 je SHORT $LN3@NcCalcBloc + 0004f 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 0005a 74 23 je SHORT $LN3@NcCalcBloc -; 140 : { -; 141 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 142 : { +; 143 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00073 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00077 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007a 83 e0 01 and eax, 1 - 0007d 85 c0 test eax, eax - 0007f 74 02 je SHORT $LN5@NcCalcBloc + 0005c 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00060 8b 40 18 mov eax, DWORD PTR [rax+24] + 00063 83 e0 01 and eax, 1 + 00066 85 c0 test eax, eax + 00068 74 02 je SHORT $LN5@NcCalcBloc -; 142 : continue; +; 144 : continue; - 00081 eb ca jmp SHORT $LN2@NcCalcBloc + 0006a eb ca jmp SHORT $LN2@NcCalcBloc $LN5@NcCalcBloc: -; 143 : TotalSize += T->RawDataSize; +; 145 : TotalSize += T->RawDataSize; - 00083 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00087 8b 40 28 mov eax, DWORD PTR [rax+40] - 0008a 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] - 0008d 03 c8 add ecx, eax - 0008f 8b c1 mov eax, ecx - 00091 89 45 04 mov DWORD PTR TotalSize$[rbp], eax + 0006c 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00070 8b 40 28 mov eax, DWORD PTR [rax+40] + 00073 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] + 00076 03 c8 add ecx, eax + 00078 8b c1 mov eax, ecx + 0007a 89 45 04 mov DWORD PTR TotalSize$[rbp], eax -; 144 : } +; 146 : } - 00094 eb b7 jmp SHORT $LN2@NcCalcBloc + 0007d eb b7 jmp SHORT $LN2@NcCalcBloc $LN3@NcCalcBloc: -; 145 : return TotalSize; +; 147 : return TotalSize; - 00096 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + 0007f 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] -; 146 : } +; 148 : } - 00099 48 8d a5 08 01 + 00082 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a0 5f pop rdi - 000a1 5d pop rbp - 000a2 c3 ret 0 + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b c3 ret 0 ?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 +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT InstructionCount$ = 4 T$1 = 40 Block$ = 288 -?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCountInstructions, COMDAT +CountCombinedAsOne$ = 296 +?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcCountInstructions, COMDAT ; 125 : { -$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 +$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 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 + 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 ; 126 : ULONG InstructionCount = 0; - 00036 c7 45 04 00 00 + 00023 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) - 0003d 48 8b 85 20 01 + 0002a 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@NcCountIns + 00031 48 8b 00 mov rax, QWORD PTR [rax] + 00034 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00038 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 + 0003a 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0003e 48 8b 00 mov rax, QWORD PTR [rax] + 00041 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 + 00045 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0004a 74 62 je SHORT $LN3@NcCountIns + 0004c 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 1a je SHORT $LN3@NcCountIns + 00053 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00057 48 8b 00 mov rax, QWORD PTR [rax] + 0005a 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 0005e 74 4e je SHORT $LN3@NcCountIns ; 128 : { ; 129 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00073 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00077 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007a 83 e0 01 and eax, 1 - 0007d 85 c0 test eax, eax - 0007f 74 02 je SHORT $LN5@NcCountIns + 00060 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00064 8b 40 18 mov eax, DWORD PTR [rax+24] + 00067 83 e0 01 and eax, 1 + 0006a 85 c0 test eax, eax + 0006c 74 02 je SHORT $LN5@NcCountIns ; 130 : continue; - 00081 eb ca jmp SHORT $LN2@NcCountIns + 0006e eb ca jmp SHORT $LN2@NcCountIns $LN5@NcCountIns: -; 131 : ++InstructionCount; +; 131 : if (CountCombinedAsOne && T->Next && (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) && !(T->Next->Flags & CODE_FLAG_DO_NOT_DIVIDE)) + + 00070 83 bd 28 01 00 + 00 00 cmp DWORD PTR CountCombinedAsOne$[rbp], 0 + 00077 74 2b je SHORT $LN6@NcCountIns + 00079 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0007d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00081 74 21 je SHORT $LN6@NcCountIns + 00083 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00087 8b 40 18 mov eax, DWORD PTR [rax+24] + 0008a 83 e0 08 and eax, 8 + 0008d 85 c0 test eax, eax + 0008f 74 13 je SHORT $LN6@NcCountIns + 00091 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00095 48 8b 00 mov rax, QWORD PTR [rax] + 00098 8b 40 18 mov eax, DWORD PTR [rax+24] + 0009b 83 e0 08 and eax, 8 + 0009e 85 c0 test eax, eax + 000a0 75 02 jne SHORT $LN6@NcCountIns + +; 132 : continue; + + 000a2 eb 96 jmp SHORT $LN2@NcCountIns +$LN6@NcCountIns: + +; 133 : ++InstructionCount; - 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 + 000a4 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 000a7 ff c0 inc eax + 000a9 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax -; 132 : } +; 134 : } - 0008b eb c0 jmp SHORT $LN2@NcCountIns + 000ac eb 8c jmp SHORT $LN2@NcCountIns $LN3@NcCountIns: -; 133 : return InstructionCount; +; 135 : return InstructionCount; - 0008d 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 000ae 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] -; 134 : } +; 136 : } - 00090 48 8d a5 08 01 + 000b1 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00097 5f pop rdi - 00098 5d pop rbp - 00099 c3 ret 0 -?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCountInstructions + 000b8 5f pop rdi + 000b9 5d pop rbp + 000ba c3 ret 0 +?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcCountInstructions _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -13739,72 +13316,66 @@ $LN6: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 115 : if (Link) - 00036 48 83 bd e0 00 + 0001f 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 0003e 74 4c je SHORT $LN2@NcUnlink + 00027 74 4c je SHORT $LN2@NcUnlink ; 116 : { ; 117 : if (Link->Next) - 00040 48 8b 85 e0 00 + 00029 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00047 48 83 38 00 cmp QWORD PTR [rax], 0 - 0004b 74 19 je SHORT $LN3@NcUnlink + 00030 48 83 38 00 cmp QWORD PTR [rax], 0 + 00034 74 19 je SHORT $LN3@NcUnlink ; 118 : Link->Next->Prev = Link->Prev; - 0004d 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00054 48 8b 00 mov rax, QWORD PTR [rax] - 00057 48 8b 8d e0 00 + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 0005e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00062 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00047 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004b 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN3@NcUnlink: ; 119 : if (Link->Prev) - 00066 48 8b 85 e0 00 + 0004f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0006d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00072 74 18 je SHORT $LN4@NcUnlink + 00056 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0005b 74 18 je SHORT $LN4@NcUnlink ; 120 : Link->Prev->Next = Link->Next; - 00074 48 8b 85 e0 00 + 0005d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0007b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0007f 48 8b 8d e0 00 + 00064 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00068 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 00086 48 8b 09 mov rcx, QWORD PTR [rcx] - 00089 48 89 08 mov QWORD PTR [rax], rcx + 0006f 48 8b 09 mov rcx, QWORD PTR [rcx] + 00072 48 89 08 mov QWORD PTR [rax], rcx $LN4@NcUnlink: $LN2@NcUnlink: ; 121 : } ; 122 : } - 0008c 48 8d a5 c8 00 + 00075 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00093 5f pop rdi - 00094 5d pop rbp - 00095 c3 ret 0 + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcUnlink _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z _TEXT SEGMENT Link1$ = 224 @@ -13821,78 +13392,72 @@ $LN5: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 103 : if (Link1) - 0003b 48 83 bd e0 00 + 00024 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 00043 74 5c je SHORT $LN2@NcInsertLi + 0002c 74 5c je SHORT $LN2@NcInsertLi ; 104 : { ; 105 : Link2->Next = Link1; - 00045 48 8b 85 e8 00 + 0002e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0004c 48 8b 8d e0 00 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00053 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 89 08 mov QWORD PTR [rax], rcx ; 106 : Link2->Prev = Link1->Prev; - 00056 48 8b 85 e8 00 + 0003f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0005d 48 8b 8d e0 00 + 00046 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00064 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00068 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0004d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00051 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 107 : Link1->Prev = Link2; - 0006c 48 8b 85 e0 00 + 00055 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link1$[rbp] - 00073 48 8b 8d e8 00 + 0005c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 0007a 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00063 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 108 : if (Link2->Prev) - 0007e 48 8b 85 e8 00 + 00067 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00085 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0008a 74 15 je SHORT $LN3@NcInsertLi + 0006e 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00073 74 15 je SHORT $LN3@NcInsertLi ; 109 : Link2->Prev->Next = Link2; - 0008c 48 8b 85 e8 00 + 00075 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00093 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00097 48 8b 8d e8 00 + 0007c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00080 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 0009e 48 89 08 mov QWORD PTR [rax], rcx + 00087 48 89 08 mov QWORD PTR [rax], rcx $LN3@NcInsertLi: $LN2@NcInsertLi: ; 110 : } ; 111 : } - 000a1 48 8d a5 c8 00 + 0008a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkBefore _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z _TEXT SEGMENT Link1$ = 224 @@ -13909,78 +13474,72 @@ $LN5: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : if (Link1) - 0003b 48 83 bd e0 00 + 00024 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 00043 74 59 je SHORT $LN2@NcInsertLi + 0002c 74 59 je SHORT $LN2@NcInsertLi ; 92 : { ; 93 : Link2->Prev = Link1; - 00045 48 8b 85 e8 00 + 0002e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0004c 48 8b 8d e0 00 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00053 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0003c 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 94 : Link2->Next = Link1->Next; - 00057 48 8b 85 e8 00 + 00040 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0005e 48 8b 8d e0 00 + 00047 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00065 48 8b 09 mov rcx, QWORD PTR [rcx] - 00068 48 89 08 mov QWORD PTR [rax], rcx + 0004e 48 8b 09 mov rcx, QWORD PTR [rcx] + 00051 48 89 08 mov QWORD PTR [rax], rcx ; 95 : Link1->Next = Link2; - 0006b 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link1$[rbp] - 00072 48 8b 8d e8 00 + 0005b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00079 48 89 08 mov QWORD PTR [rax], rcx + 00062 48 89 08 mov QWORD PTR [rax], rcx ; 96 : if (Link2->Next) - 0007c 48 8b 85 e8 00 + 00065 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00083 48 83 38 00 cmp QWORD PTR [rax], 0 - 00087 74 15 je SHORT $LN3@NcInsertLi + 0006c 48 83 38 00 cmp QWORD PTR [rax], 0 + 00070 74 15 je SHORT $LN3@NcInsertLi ; 97 : Link2->Next->Prev = Link2; - 00089 48 8b 85 e8 00 + 00072 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00090 48 8b 00 mov rax, QWORD PTR [rax] - 00093 48 8b 8d e8 00 + 00079 48 8b 00 mov rax, QWORD PTR [rax] + 0007c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 0009a 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00083 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN3@NcInsertLi: $LN2@NcInsertLi: ; 98 : } ; 99 : } - 0009e 48 8d a5 c8 00 + 00087 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000a5 5f pop rdi - 000a6 5d pop rbp - 000a7 c3 ret 0 + 0008e 5f pop rdi + 0008f 5d pop rbp + 00090 c3 ret 0 ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Block$ = 224 @@ -13997,117 +13556,111 @@ $LN7: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 71 : if (!Link) - 0003b 48 83 bd e8 00 + 00024 48 83 bd e8 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00043 75 05 jne SHORT $LN2@NcPrependT + 0002c 75 05 jne SHORT $LN2@NcPrependT ; 72 : return; - 00045 e9 9b 00 00 00 jmp $LN1@NcPrependT + 0002e e9 9b 00 00 00 jmp $LN1@NcPrependT $LN2@NcPrependT: ; 73 : ; 74 : Link->Block = Block; - 0004a 48 8b 85 e8 00 + 00033 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 8b 8d e0 00 + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 75 : Link->Next = Block->Start; - 0005c 48 8b 85 e8 00 + 00045 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00063 48 8b 8d e0 00 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0006d 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 09 mov rcx, QWORD PTR [rcx] + 00056 48 89 08 mov QWORD PTR [rax], rcx ; 76 : Link->Prev = NULL; - 00070 48 8b 85 e8 00 + 00059 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00077 48 c7 40 08 00 + 00060 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 ; 77 : ; 78 : if (!Block->End || !Block->Start) - 0007f 48 8b 85 e0 00 + 00068 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00086 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0008b 74 0d je SHORT $LN5@NcPrependT - 0008d 48 8b 85 e0 00 + 0006f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00074 74 0d je SHORT $LN5@NcPrependT + 00076 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00094 48 83 38 00 cmp QWORD PTR [rax], 0 - 00098 75 25 jne SHORT $LN3@NcPrependT + 0007d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00081 75 25 jne SHORT $LN3@NcPrependT $LN5@NcPrependT: ; 79 : { ; 80 : Block->Start = Block->End = Link; - 0009a 48 8b 85 e0 00 + 00083 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000a1 48 8b 8d e8 00 + 0008a 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a8 48 89 48 08 mov QWORD PTR [rax+8], rcx - 000ac 48 8b 85 e0 00 + 00091 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00095 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000b3 48 8b 8d e8 00 + 0009c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000ba 48 89 08 mov QWORD PTR [rax], rcx + 000a3 48 89 08 mov QWORD PTR [rax], rcx ; 81 : } - 000bd eb 26 jmp SHORT $LN4@NcPrependT + 000a6 eb 26 jmp SHORT $LN4@NcPrependT $LN3@NcPrependT: ; 82 : else ; 83 : { ; 84 : Block->Start->Prev = Link; - 000bf 48 8b 85 e0 00 + 000a8 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000c6 48 8b 00 mov rax, QWORD PTR [rax] - 000c9 48 8b 8d e8 00 + 000af 48 8b 00 mov rax, QWORD PTR [rax] + 000b2 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000d0 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 85 : Block->Start = Link; - 000d4 48 8b 85 e0 00 + 000bd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000db 48 8b 8d e8 00 + 000c4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000e2 48 89 08 mov QWORD PTR [rax], rcx + 000cb 48 89 08 mov QWORD PTR [rax], rcx $LN4@NcPrependT: $LN1@NcPrependT: ; 86 : } ; 87 : } - 000e5 48 8d a5 c8 00 + 000ce 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000ec 5f pop rdi - 000ed 5d pop rbp - 000ee c3 ret 0 + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcPrependToBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Block$ = 224 @@ -14124,117 +13677,111 @@ $LN7: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 51 : if (!Link) - 0003b 48 83 bd e8 00 + 00024 48 83 bd e8 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00043 75 05 jne SHORT $LN2@NcAppendTo + 0002c 75 05 jne SHORT $LN2@NcAppendTo ; 52 : return; - 00045 e9 9d 00 00 00 jmp $LN1@NcAppendTo + 0002e e9 9d 00 00 00 jmp $LN1@NcAppendTo $LN2@NcAppendTo: ; 53 : ; 54 : Link->Block = Block; - 0004a 48 8b 85 e8 00 + 00033 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 8b 8d e0 00 + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 55 : Link->Prev = Block->End; - 0005c 48 8b 85 e8 00 + 00045 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00063 48 8b 8d e0 00 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0006e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00053 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00057 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 56 : Link->Next = NULL; - 00072 48 8b 85 e8 00 + 0005b 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00079 48 c7 00 00 00 + 00062 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 57 : ; 58 : if (!Block->End || !Block->Start) - 00080 48 8b 85 e0 00 + 00069 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00087 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0008c 74 0d je SHORT $LN5@NcAppendTo - 0008e 48 8b 85 e0 00 + 00070 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00075 74 0d je SHORT $LN5@NcAppendTo + 00077 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00095 48 83 38 00 cmp QWORD PTR [rax], 0 - 00099 75 25 jne SHORT $LN3@NcAppendTo + 0007e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00082 75 25 jne SHORT $LN3@NcAppendTo $LN5@NcAppendTo: ; 59 : { ; 60 : Block->Start = Block->End = Link; - 0009b 48 8b 85 e0 00 + 00084 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000a2 48 8b 8d e8 00 + 0008b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a9 48 89 48 08 mov QWORD PTR [rax+8], rcx - 000ad 48 8b 85 e0 00 + 00092 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00096 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000b4 48 8b 8d e8 00 + 0009d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000bb 48 89 08 mov QWORD PTR [rax], rcx + 000a4 48 89 08 mov QWORD PTR [rax], rcx ; 61 : } - 000be eb 27 jmp SHORT $LN4@NcAppendTo + 000a7 eb 27 jmp SHORT $LN4@NcAppendTo $LN3@NcAppendTo: ; 62 : else ; 63 : { ; 64 : Block->End->Next = Link; - 000c0 48 8b 85 e0 00 + 000a9 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000c7 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000cb 48 8b 8d e8 00 + 000b0 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000b4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000d2 48 89 08 mov QWORD PTR [rax], rcx + 000bb 48 89 08 mov QWORD PTR [rax], rcx ; 65 : Block->End = Link; - 000d5 48 8b 85 e0 00 + 000be 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000dc 48 8b 8d e8 00 + 000c5 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000e3 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000cc 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN4@NcAppendTo: $LN1@NcAppendTo: ; 66 : } ; 67 : } - 000e7 48 8d a5 c8 00 + 000d0 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000ee 5f pop rdi - 000ef 5d pop rbp - 000f0 c3 ret 0 + 000d7 5f pop rdi + 000d8 5d pop rbp + 000d9 c3 ret 0 ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcAppendToBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_BLOCK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -14249,59 +13796,53 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 c0 10 add rax, 16 - 00041 48 8b c8 mov rcx, rax - 00044 e8 00 00 00 00 call ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > + 00026 48 83 c0 10 add rax, 16 + 0002a 48 8b c8 mov rcx, rax + 0002d e8 00 00 00 00 call ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > ; 45 : Start = End = NULL; - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 c7 40 08 00 + 00039 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 c7 00 00 00 + 00048 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 46 : LabelIds.clear(); - 00066 48 8b 85 e0 00 + 0004f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006d 48 83 c0 10 add rax, 16 - 00071 48 8b c8 mov rcx, rax - 00074 e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear + 00056 48 83 c0 10 add rax, 16 + 0005a 48 8b c8 mov rcx, rax + 0005d e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear ; 47 : } - 00079 48 8b 85 e0 00 + 00062 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00080 48 8d a5 c8 00 + 00069 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00087 5f pop rdi - 00088 5d pop rbp - 00089 c3 ret 0 + 00070 5f pop rdi + 00071 5d pop rbp + 00072 c3 ret 0 ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1347 : constexpr const _Ty1& _Get_first() const noexcept { +; 1381 : constexpr const _Ty1& _Get_first() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14310,38 +13851,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1348 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1382 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1349 : } +; 1383 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1343 : constexpr _Ty1& _Get_first() noexcept { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14350,38 +13885,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ PROC ; std::_Vector_val >::_Vector_val >, COMDAT -; 375 : _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} +; 401 : _CONSTEXPR20_CONTAINER _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14390,47 +13919,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 c7 40 08 00 + 00032 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00051 48 8b 85 e0 00 + 0003a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 c7 40 10 00 + 00041 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 - 00060 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00067 48 c7 40 18 00 + 00050 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 - 0006f 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00076 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007d 5f pop rdi - 0007e 5d pop rbp - 0007f c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ENDP ; std::_Vector_val >::_Vector_val > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1735 : const _Alty& _Getal() const noexcept { +; 1821 : _NODISCARD _CONSTEXPR20_CONTAINER const _Alty& _Getal() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14439,41 +13962,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1736 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1822 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first -; 1737 : } +; 1823 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1731 : _Alty& _Getal() noexcept { +; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14482,180 +13998,321 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1732 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1818 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first -; 1733 : } +; 1819 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z _TEXT SEGMENT -_Lock$ = 4 -_Pnext$ = 40 -_Pnextptr$4 = 72 -__$ArrayPad$ = 280 -this$ = 320 -_First$ = 328 -_Last$ = 336 +this$ = 224 +_First$ = 232 +_Last$ = 240 ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT -; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range +; 1802 : _CONSTEXPR20_CONTAINER void _Orphan_range(pointer _First, pointer _Last) const { -$LN9: +$LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi - 00011 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1803 : // orphan iterators within specified (inclusive) range +; 1804 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1805 : if (_STD is_constant_evaluated()) { +; 1806 : _Orphan_range_unlocked(_First, _Last); +; 1807 : } else +; 1808 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1809 : { +; 1810 : _Orphan_range_locked(_First, _Last); + + 00029 4c 8b 85 f0 00 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 00030 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00037 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003e e8 00 00 00 00 call ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_locked + +; 1811 : } +; 1812 : } + + 00043 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; COMDAT ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +_TEXT SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_First$ = 264 +_Last$ = 272 +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range_locked, COMDAT + +; 1797 : void _Orphan_range_locked(pointer _First, pointer _Last) const { + +$LN4: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 00034 48 8b 05 00 00 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 0a 00 00 00 mov ecx, 10 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 18 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1713 : _Lockit _Lock(_LOCK_DEBUG); +; 1798 : _Lockit _Lock(_LOCK_DEBUG); - 00051 ba 03 00 00 00 mov edx, 3 - 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 0005a ff 15 00 00 00 + 00053 ba 03 00 00 00 mov edx, 3 + 00058 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005c ff 15 00 00 00 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00062 90 npad 1 -; 1714 : -; 1715 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; +; 1799 : _Orphan_range_unlocked(_First, _Last); - 00060 48 8b 85 40 01 + 00063 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 0006a 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00071 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00078 e8 00 00 00 00 call ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_unlocked + 0007d 90 npad 1 + +; 1800 : } + + 0007e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00082 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00088 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008c 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData + 00093 e8 00 00 00 00 call _RTC_CheckStackVars + 00098 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0009f 48 33 cd xor rcx, rbp + 000a2 e8 00 00 00 00 call __security_check_cookie + 000a7 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000ae 5f pop rdi + 000af 5d pop rbp + 000b0 c3 ret 0 +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range_locked +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_First$ = 264 +_Last$ = 272 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA PROC ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00018 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0001e 48 83 c4 28 add rsp, 40 ; 00000028H + 00022 5f pop rdi + 00023 5d pop rbp + 00024 c3 ret 0 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA ENDP ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_First$ = 264 +_Last$ = 272 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA PROC ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00018 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0001e 48 83 c4 28 add rsp, 40 ; 00000028H + 00022 5f pop rdi + 00023 5d pop rbp + 00024 c3 ret 0 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA ENDP ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; COMDAT ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +_TEXT SEGMENT +_Pnext$ = 8 +_Pnextptr$1 = 40 +_Temp$2 = 72 +_Temp$3 = 104 +this$ = 352 +_First$ = 360 +_Last$ = 368 +?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range_unlocked, COMDAT + +; 1782 : _CONSTEXPR20_CONTAINER void _Orphan_range_unlocked(pointer _First, pointer _Last) const { + +$LN8: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 68 01 + 00 00 sub rsp, 360 ; 00000168H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1783 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; + + 00029 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 83 c0 08 add rax, 8 - 0006e 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax + 00030 48 8b 00 mov rax, QWORD PTR [rax] + 00033 48 83 c0 08 add rax, 8 + 00037 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax $LN2@Orphan_ran: -; 1716 : while (*_Pnext) { +; 1784 : while (*_Pnext) { - 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 00076 48 83 38 00 cmp QWORD PTR [rax], 0 - 0007a 74 5c je SHORT $LN3@Orphan_ran + 0003b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0003f 48 83 38 00 cmp QWORD PTR [rax], 0 + 00043 74 69 je SHORT $LN3@Orphan_ran -; 1717 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; +; 1785 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; - 0007c 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 00080 48 8b 00 mov rax, QWORD PTR [rax] - 00083 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00087 48 89 45 48 mov QWORD PTR _Pnextptr$4[rbp], rax + 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00049 48 8b 00 mov rax, QWORD PTR [rax] + 0004c 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00050 48 89 45 28 mov QWORD PTR _Pnextptr$1[rbp], rax -; 1718 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator +; 1786 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator - 0008b 48 8b 85 48 01 + 00054 48 8b 85 68 01 00 00 mov rax, QWORD PTR _First$[rbp] - 00092 48 39 45 48 cmp QWORD PTR _Pnextptr$4[rbp], rax - 00096 72 0d jb SHORT $LN6@Orphan_ran - 00098 48 8b 45 48 mov rax, QWORD PTR _Pnextptr$4[rbp] - 0009c 48 39 85 50 01 + 0005b 48 39 45 28 cmp QWORD PTR _Pnextptr$1[rbp], rax + 0005f 72 0d jb SHORT $LN6@Orphan_ran + 00061 48 8b 45 28 mov rax, QWORD PTR _Pnextptr$1[rbp] + 00065 48 39 85 70 01 00 00 cmp QWORD PTR _Last$[rbp], rax - 000a3 73 11 jae SHORT $LN4@Orphan_ran + 0006c 73 19 jae SHORT $LN4@Orphan_ran $LN6@Orphan_ran: -; 1719 : _Pnext = &(*_Pnext)->_Mynextiter; +; 1787 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 + + 0006e 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00072 48 8b 00 mov rax, QWORD PTR [rax] + 00075 48 89 45 48 mov QWORD PTR _Temp$2[rbp], rax - 000a5 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 000a9 48 8b 00 mov rax, QWORD PTR [rax] - 000ac 48 83 c0 08 add rax, 8 - 000b0 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax +; 1788 : _Pnext = &_Temp->_Mynextiter; + + 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 +$LN4@Orphan_ran: -; 1720 : } else { // orphan the iterator +; 1790 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 - 000b4 eb 20 jmp SHORT $LN5@Orphan_ran -$LN4@Orphan_ran: + 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 -; 1721 : (*_Pnext)->_Myproxy = nullptr; +; 1791 : _Temp->_Myproxy = nullptr; - 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 + 00092 48 8b 45 68 mov rax, QWORD PTR _Temp$3[rbp] + 00096 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1722 : *_Pnext = (*_Pnext)->_Mynextiter; +; 1792 : *_Pnext = _Temp->_Mynextiter; - 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 + 0009d 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 000a1 48 8b 4d 68 mov rcx, QWORD PTR _Temp$3[rbp] + 000a5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000a9 48 89 08 mov QWORD PTR [rax], rcx $LN5@Orphan_ran: -; 1723 : } -; 1724 : } +; 1793 : } +; 1794 : } - 000d6 eb 9a jmp SHORT $LN2@Orphan_ran + 000ac eb 8d jmp SHORT $LN2@Orphan_ran $LN3@Orphan_ran: -; 1725 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 2 vvv -; 1726 : (void) _First; -; 1727 : (void) _Last; -; 1728 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1729 : } +; 1795 : } - 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 + 000ae 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 000b5 5f pop rdi + 000b6 5d pop rbp + 000b7 c3 ret 0 +?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range_unlocked _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ _TEXT SEGMENT ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ PROC ; std::vector >::_Xlength, COMDAT -; 1703 : [[noreturn]] static void _Xlength() { +; 1773 : [[noreturn]] static void _Xlength() { $LN3: 00000 40 55 push rbp @@ -14663,32 +14320,28 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1704 : _Xlength_error("vector too long"); +; 1774 : _Xlength_error("vector too long"); - 0002a 48 8d 0d 00 00 + 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ - 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error + 00022 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error $LN2@Xlength: -; 1705 : } +; 1775 : } - 00036 48 8d a5 c8 00 + 00027 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 0002e 5f pop rdi + 0002f 5d pop rbp + 00030 c3 ret 0 ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ENDP ; std::vector >::_Xlength _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z _TEXT SEGMENT _My_data$ = 8 @@ -14704,7 +14357,7 @@ _Newsize$ = 384 _Newcapacity$ = 392 ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z PROC ; std::vector >::_Change_array, COMDAT -; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { +; 1736 : const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -14716,241 +14369,229 @@ $LN4: 00016 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1667 : // orphan all iterators, discard old array, acquire new array -; 1668 : auto& _My_data = _Mypair._Myval2; +; 1737 : // orphan all iterators, discard old array, acquire new array +; 1738 : auto& _My_data = _Mypair._Myval2; - 00045 48 8b 85 70 01 + 0002e 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00035 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1669 : pointer& _Myfirst = _My_data._Myfirst; +; 1739 : pointer& _Myfirst = _My_data._Myfirst; - 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00054 48 83 c0 08 add rax, 8 - 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 00039 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003d 48 83 c0 08 add rax, 8 + 00041 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1670 : pointer& _Mylast = _My_data._Mylast; +; 1740 : pointer& _Mylast = _My_data._Mylast; - 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00060 48 83 c0 10 add rax, 16 - 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 00045 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00049 48 83 c0 10 add rax, 16 + 0004d 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1671 : pointer& _Myend = _My_data._Myend; +; 1741 : pointer& _Myend = _My_data._Myend; - 00068 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0006c 48 83 c0 18 add rax, 24 - 00070 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00051 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00055 48 83 c0 18 add rax, 24 + 00059 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1672 : -; 1673 : _My_data._Orphan_all(); +; 1742 : +; 1743 : _My_data._Orphan_all(); - 00074 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00078 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 0005d 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00061 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1674 : -; 1675 : if (_Myfirst) { // destroy and deallocate old array +; 1744 : +; 1745 : if (_Myfirst) { // destroy and deallocate old array - 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00081 48 83 38 00 cmp QWORD PTR [rax], 0 - 00085 74 71 je SHORT $LN2@Change_arr + 00066 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0006a 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006e 74 71 je SHORT $LN2@Change_arr -; 1676 : _Destroy(_Myfirst, _Mylast); +; 1746 : _Destroy(_Myfirst, _Mylast); - 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 0008b 4c 8b 00 mov r8, QWORD PTR [rax] - 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00092 48 8b 10 mov rdx, QWORD PTR [rax] - 00095 48 8b 8d 70 01 + 00070 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00074 4c 8b 00 mov r8, QWORD PTR [rax] + 00077 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0007b 48 8b 10 mov rdx, QWORD PTR [rax] + 0007e 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009c e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00085 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1747 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 000a1 48 8b 8d 70 01 + 0008a 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000a8 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 000ad 48 89 85 38 01 + 00091 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00096 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 000b4 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000b8 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000bc 48 8b 09 mov rcx, QWORD PTR [rcx] - 000bf 48 8b 00 mov rax, QWORD PTR [rax] - 000c2 48 2b c1 sub rax, rcx - 000c5 48 c1 f8 02 sar rax, 2 - 000c9 48 89 85 40 01 + 0009d 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000a1 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000a5 48 8b 09 mov rcx, QWORD PTR [rcx] + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 48 2b c1 sub rax, rcx + 000ae 48 c1 f8 02 sar rax, 2 + 000b2 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000d0 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000d4 48 8b 00 mov rax, QWORD PTR [rax] - 000d7 48 89 85 48 01 + 000b9 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000bd 48 8b 00 mov rax, QWORD PTR [rax] + 000c0 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000de 4c 8b 85 40 01 + 000c7 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000e5 48 8b 95 48 01 + 000ce 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000ec 48 8b 8d 38 01 + 000d5 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000f3 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000dc e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate $LN2@Change_arr: -; 1678 : } -; 1679 : -; 1680 : _Myfirst = _Newvec; +; 1748 : } +; 1749 : +; 1750 : _Myfirst = _Newvec; - 000f8 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000fc 48 8b 8d 78 01 + 000e1 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000e5 48 8b 8d 78 01 00 00 mov rcx, QWORD PTR _Newvec$[rbp] - 00103 48 89 08 mov QWORD PTR [rax], rcx + 000ec 48 89 08 mov QWORD PTR [rax], rcx -; 1681 : _Mylast = _Newvec + _Newsize; +; 1751 : _Mylast = _Newvec + _Newsize; - 00106 48 8b 85 78 01 + 000ef 48 8b 85 78 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0010d 48 8b 8d 80 01 + 000f6 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR _Newsize$[rbp] - 00114 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00118 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] - 0011c 48 89 01 mov QWORD PTR [rcx], rax + 000fd 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00101 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] + 00105 48 89 01 mov QWORD PTR [rcx], rax -; 1682 : _Myend = _Newvec + _Newcapacity; +; 1752 : _Myend = _Newvec + _Newcapacity; - 0011f 48 8b 85 78 01 + 00108 48 8b 85 78 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00126 48 8b 8d 88 01 + 0010f 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR _Newcapacity$[rbp] - 0012d 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00131 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] - 00135 48 89 01 mov QWORD PTR [rcx], rax + 00116 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 0011a 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] + 0011e 48 89 01 mov QWORD PTR [rcx], rax -; 1683 : } +; 1753 : } - 00138 48 8d a5 58 01 + 00121 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0013f 5f pop rdi - 00140 5d pop rbp - 00141 c3 ret 0 + 00128 5f pop rdi + 00129 5d pop rbp + 0012a c3 ret 0 ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ENDP ; std::vector >::_Change_array _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z _TEXT SEGMENT _Oldcapacity$ = 8 -_Geometric$ = 40 -tv67 = 248 -this$ = 288 -_Newsize$ = 296 +_Max$ = 40 +_Geometric$ = 72 +this$ = 320 +_Newsize$ = 328 ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z PROC ; std::vector >::_Calculate_growth, COMDAT -; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { +; 1683 : _CONSTEXPR20_CONTAINER size_type _Calculate_growth(const size_type _Newsize) const { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H + 0000c 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1616 : // given _Oldcapacity and _Newsize, calculate geometric growth -; 1617 : const size_type _Oldcapacity = capacity(); - - 0003b 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00042 e8 00 00 00 00 call ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity - 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1618 : -; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { +; 1684 : // given _Oldcapacity and _Newsize, calculate geometric growth +; 1685 : const size_type _Oldcapacity = capacity(); - 0004b 48 8b 8d 20 01 + 00024 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00052 e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size - 00057 48 89 85 f8 00 - 00 00 mov QWORD PTR tv67[rbp], rax - 0005e 33 d2 xor edx, edx - 00060 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] - 00064 b9 02 00 00 00 mov ecx, 2 - 00069 48 f7 f1 div rcx - 0006c 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR tv67[rbp] - 00073 48 2b c8 sub rcx, rax - 00076 48 8b c1 mov rax, rcx - 00079 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax - 0007d 76 09 jbe SHORT $LN2@Calculate_ + 0002b e8 00 00 00 00 call ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity + 00030 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax -; 1620 : return _Newsize; // geometric growth would overflow +; 1686 : const auto _Max = max_size(); - 0007f 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 00086 eb 36 jmp SHORT $LN1@Calculate_ + 00034 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003b e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size + 00040 48 89 45 28 mov QWORD PTR _Max$[rbp], rax + +; 1687 : +; 1688 : if (_Oldcapacity > _Max - _Oldcapacity / 2) { + + 00044 33 d2 xor edx, edx + 00046 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0004a b9 02 00 00 00 mov ecx, 2 + 0004f 48 f7 f1 div rcx + 00052 48 8b 4d 28 mov rcx, QWORD PTR _Max$[rbp] + 00056 48 2b c8 sub rcx, rax + 00059 48 8b c1 mov rax, rcx + 0005c 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax + 00060 76 06 jbe SHORT $LN2@Calculate_ + +; 1689 : return _Max; // geometric growth would overflow + + 00062 48 8b 45 28 mov rax, QWORD PTR _Max$[rbp] + 00066 eb 36 jmp SHORT $LN1@Calculate_ $LN2@Calculate_: -; 1621 : } -; 1622 : -; 1623 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; +; 1690 : } +; 1691 : +; 1692 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; - 00088 33 d2 xor edx, edx - 0008a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] - 0008e b9 02 00 00 00 mov ecx, 2 - 00093 48 f7 f1 div rcx - 00096 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] - 0009a 48 03 c8 add rcx, rax - 0009d 48 8b c1 mov rax, rcx - 000a0 48 89 45 28 mov QWORD PTR _Geometric$[rbp], rax + 00068 33 d2 xor edx, edx + 0006a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0006e b9 02 00 00 00 mov ecx, 2 + 00073 48 f7 f1 div rcx + 00076 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] + 0007a 48 03 c8 add rcx, rax + 0007d 48 8b c1 mov rax, rcx + 00080 48 89 45 48 mov QWORD PTR _Geometric$[rbp], rax -; 1624 : -; 1625 : if (_Geometric < _Newsize) { +; 1693 : +; 1694 : if (_Geometric < _Newsize) { - 000a4 48 8b 85 28 01 + 00084 48 8b 85 48 01 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 000ab 48 39 45 28 cmp QWORD PTR _Geometric$[rbp], rax - 000af 73 09 jae SHORT $LN3@Calculate_ + 0008b 48 39 45 48 cmp QWORD PTR _Geometric$[rbp], rax + 0008f 73 09 jae SHORT $LN3@Calculate_ -; 1626 : return _Newsize; // geometric growth would be insufficient +; 1695 : return _Newsize; // geometric growth would be insufficient - 000b1 48 8b 85 28 01 + 00091 48 8b 85 48 01 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 000b8 eb 04 jmp SHORT $LN1@Calculate_ + 00098 eb 04 jmp SHORT $LN1@Calculate_ $LN3@Calculate_: -; 1627 : } -; 1628 : -; 1629 : return _Geometric; // geometric growth is sufficient +; 1696 : } +; 1697 : +; 1698 : return _Geometric; // geometric growth is sufficient - 000ba 48 8b 45 28 mov rax, QWORD PTR _Geometric$[rbp] + 0009a 48 8b 45 48 mov rax, QWORD PTR _Geometric$[rbp] $LN1@Calculate_: -; 1630 : } +; 1699 : } - 000be 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 0009e 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000a5 5f pop rdi + 000a6 5d pop rbp + 000a7 c3 ret 0 ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ENDP ; std::vector >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -14958,7 +14599,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator +; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14969,39 +14610,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1612 : _Destroy_range(_First, _Last, _Getal()); + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 8d e0 00 +; 1679 : // destroy [_First, _Last) using allocator +; 1680 : _Destroy_range(_First, _Last, _Getal()); + + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 4c 8b c0 mov r8, rax - 0004f 48 8b 95 f0 00 + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 4c 8b c0 mov r8, rax + 00038 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d e8 00 + 0003f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1613 : } +; 1681 : } - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z _TEXT SEGMENT $T1 = 196 @@ -15011,7 +14647,7 @@ _Last$ = 272 _Dest$ = 280 ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z PROC ; std::vector >::_Umove_if_noexcept, COMDAT -; 1605 : void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { +; 1672 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -15023,50 +14659,44 @@ $LN3: 00016 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8b fc mov rdi, rsp - 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1606 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator -; 1607 : _Umove_if_noexcept1(_First, _Last, _Dest, +; 1673 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator +; 1674 : _Umove_if_noexcept1(_First, _Last, _Dest, - 00045 48 8d 85 c4 00 + 0002e 48 8d 85 c4 00 00 00 lea rax, QWORD PTR $T1[rbp] - 0004c 48 8b f8 mov rdi, rax - 0004f 33 c0 xor eax, eax - 00051 b9 01 00 00 00 mov ecx, 1 - 00056 f3 aa rep stosb - 00058 0f b6 85 c4 00 + 00035 48 8b f8 mov rdi, rax + 00038 33 c0 xor eax, eax + 0003a b9 01 00 00 00 mov ecx, 1 + 0003f f3 aa rep stosb + 00041 0f b6 85 c4 00 00 00 movzx eax, BYTE PTR $T1[rbp] - 0005f 88 44 24 20 mov BYTE PTR [rsp+32], al - 00063 4c 8b 8d 18 01 + 00048 88 44 24 20 mov BYTE PTR [rsp+32], al + 0004c 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR _Dest$[rbp] - 0006a 4c 8b 85 10 01 + 00053 4c 8b 85 10 01 00 00 mov r8, QWORD PTR _Last$[rbp] - 00071 48 8b 95 08 01 + 0005a 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _First$[rbp] - 00078 48 8b 8d 00 01 + 00061 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007f e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 + 00068 e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 -; 1608 : bool_constant, negation>>>{}); -; 1609 : } +; 1675 : bool_constant, negation>>>{}); +; 1676 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ENDP ; std::vector >::_Umove_if_noexcept _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z _TEXT SEGMENT this$ = 224 @@ -15076,7 +14706,7 @@ _Dest$ = 248 __formal$ = 256 ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z PROC ; std::vector >::_Umove_if_noexcept1, COMDAT -; 1595 : void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { +; 1662 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -15088,42 +14718,36 @@ $LN3: 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1596 : // move [_First, _Last) to raw _Dest, using allocator -; 1597 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1663 : // move [_First, _Last) to raw _Dest, using allocator +; 1664 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00045 48 8b 8d e0 00 + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00051 4c 8b c8 mov r9, rax - 00054 4c 8b 85 f8 00 + 00035 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0003a 4c 8b c8 mov r9, rax + 0003d 4c 8b 85 f8 00 00 00 mov r8, QWORD PTR _Dest$[rbp] - 0005b 48 8b 95 f0 00 + 00044 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00062 48 8b 8d e8 00 + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 1598 : } +; 1665 : } - 0006e 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ENDP ; std::vector >::_Umove_if_noexcept1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z _TEXT SEGMENT this$ = 224 @@ -15132,7 +14756,7 @@ _Last$ = 240 _Dest$ = 248 ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT -; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator +; 1657 : _CONSTEXPR20_CONTAINER pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -15144,48 +14768,43 @@ $LN3: 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1592 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1658 : // move [_First, _Last) to raw _Dest, using allocator +; 1659 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00045 48 8b 8d e0 00 + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00051 4c 8b c8 mov r9, rax - 00054 4c 8b 85 f8 00 + 00035 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0003a 4c 8b c8 mov r9, rax + 0003d 4c 8b 85 f8 00 00 00 mov r8, QWORD PTR _Dest$[rbp] - 0005b 48 8b 95 f0 00 + 00044 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00062 48 8b 8d e8 00 + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 1593 : } +; 1660 : } - 0006e 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ENDP ; std::vector >::_Umove _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT _My_data$ = 8 this$ = 256 ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::capacity, COMDAT -; 1492 : _NODISCARD size_type capacity() const noexcept { +; 1557 : _NODISCARD _CONSTEXPR20_CONTAINER size_type capacity() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15194,42 +14813,36 @@ $LN3: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1493 : auto& _My_data = _Mypair._Myval2; +; 1558 : auto& _My_data = _Mypair._Myval2; - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1494 : return static_cast(_My_data._Myend - _My_data._Myfirst); +; 1559 : return static_cast(_My_data._Myend - _My_data._Myfirst); - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004d 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00051 48 2b c1 sub rax, rcx - 00054 48 c1 f8 02 sar rax, 2 + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00032 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00036 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0003a 48 2b c1 sub rax, rcx + 0003d 48 c1 f8 02 sar rax, 2 -; 1495 : } +; 1560 : } - 00058 48 8d a5 e8 00 + 00041 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT $T1 = 200 @@ -15237,7 +14850,7 @@ $T2 = 232 this$ = 288 ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::max_size, COMDAT -; 1487 : _NODISCARD size_type max_size() const noexcept { +; 1552 : _NODISCARD _CONSTEXPR20_CONTAINER size_type max_size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15246,54 +14859,48 @@ $LN3: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1488 : return (_STD min)( - - 00036 48 8b 8d 20 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1553 : return (_STD min)( + + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal - 00042 48 8b c8 mov rcx, rax - 00045 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size - 0004a 48 89 85 c8 00 + 00026 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal + 0002b 48 8b c8 mov rcx, rax + 0002e e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size + 00033 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00051 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max - 00056 48 89 85 e8 00 + 0003a e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 0003f 48 89 85 e8 00 00 00 mov QWORD PTR $T2[rbp], rax - 0005d 48 8d 95 c8 00 + 00046 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00064 48 8d 8d e8 00 + 0004d 48 8d 8d e8 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 0006b e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min - 00070 48 8b 00 mov rax, QWORD PTR [rax] + 00054 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 00059 48 8b 00 mov rax, QWORD PTR [rax] -; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); -; 1490 : } +; 1554 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1555 : } - 00073 48 8d a5 08 01 + 0005c 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0007a 5f pop rdi - 0007b 5d pop rbp - 0007c c3 ret 0 + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT _My_data$ = 8 this$ = 256 ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::size, COMDAT -; 1482 : _NODISCARD size_type size() const noexcept { +; 1547 : _NODISCARD _CONSTEXPR20_CONTAINER size_type size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15302,48 +14909,42 @@ $LN3: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1483 : auto& _My_data = _Mypair._Myval2; +; 1548 : auto& _My_data = _Mypair._Myval2; - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1484 : return static_cast(_My_data._Mylast - _My_data._Myfirst); +; 1549 : return static_cast(_My_data._Mylast - _My_data._Myfirst); - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004d 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00051 48 2b c1 sub rax, rcx - 00054 48 c1 f8 02 sar rax, 2 + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00032 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00036 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0003a 48 2b c1 sub rax, rcx + 0003d 48 c1 f8 02 sar rax, 2 -; 1485 : } +; 1550 : } - 00058 48 8d a5 e8 00 + 00041 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT this$ = 224 ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_end, COMDAT -; 1469 : pointer _Unchecked_end() noexcept { +; 1534 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_end() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15352,39 +14953,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1470 : return _Mypair._Myval2._Mylast; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1535 : return _Mypair._Myval2._Mylast; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00026 48 8b 40 10 mov rax, QWORD PTR [rax+16] -; 1471 : } +; 1536 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT this$ = 224 ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_begin, COMDAT -; 1461 : pointer _Unchecked_begin() noexcept { +; 1526 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_begin() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15393,33 +14988,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1462 : return _Mypair._Myval2._Myfirst; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1527 : return _Mypair._Myval2._Myfirst; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00026 48 8b 40 08 mov rax, QWORD PTR [rax+8] -; 1463 : } +; 1528 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_begin _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ _TEXT SEGMENT _My_data$ = 8 @@ -15429,7 +15018,7 @@ this$ = 272 __$ReturnUdt$ = 280 ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::end, COMDAT -; 1419 : _NODISCARD iterator end() noexcept { +; 1484 : _NODISCARD _CONSTEXPR20_CONTAINER iterator end() noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15439,53 +15028,47 @@ $LN3: 0000c 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1420 : auto& _My_data = _Mypair._Myval2; - - 0003b 48 8b 85 10 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1485 : auto& _My_data = _Mypair._Myval2; + + 00024 48 8b 85 10 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1421 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); +; 1486 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); - 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > - 0004f 48 89 85 d8 00 + 0002f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00033 e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 00038 48 89 85 d8 00 00 00 mov QWORD PTR tv80[rbp], rax - 00056 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005a 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 0005e 48 89 85 e0 00 + 0003f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00043 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00047 48 89 85 e0 00 00 00 mov QWORD PTR tv78[rbp], rax - 00065 4c 8b 85 d8 00 + 0004e 4c 8b 85 d8 00 00 00 mov r8, QWORD PTR tv80[rbp] - 0006c 48 8b 95 e0 00 + 00055 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR tv78[rbp] - 00073 48 8b 8d 18 01 + 0005c 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 0007a e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z - 0007f 48 8b 85 18 01 + 00063 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z + 00068 48 8b 85 18 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 1422 : } +; 1487 : } - 00086 48 8d a5 f8 00 + 0006f 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 0008d 5f pop rdi - 0008e 5d pop rbp - 0008f c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ _TEXT SEGMENT _My_data$ = 8 @@ -15495,7 +15078,7 @@ this$ = 272 __$ReturnUdt$ = 280 ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::begin, COMDAT -; 1409 : _NODISCARD iterator begin() noexcept { +; 1474 : _NODISCARD _CONSTEXPR20_CONTAINER iterator begin() noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15505,53 +15088,47 @@ $LN3: 0000c 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1410 : auto& _My_data = _Mypair._Myval2; - - 0003b 48 8b 85 10 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1475 : auto& _My_data = _Mypair._Myval2; + + 00024 48 8b 85 10 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1411 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); +; 1476 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); - 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > - 0004f 48 89 85 d8 00 + 0002f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00033 e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 00038 48 89 85 d8 00 00 00 mov QWORD PTR tv80[rbp], rax - 00056 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005a 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0005e 48 89 85 e0 00 + 0003f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00043 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00047 48 89 85 e0 00 00 00 mov QWORD PTR tv78[rbp], rax - 00065 4c 8b 85 d8 00 + 0004e 4c 8b 85 d8 00 00 00 mov r8, QWORD PTR tv80[rbp] - 0006c 48 8b 95 e0 00 + 00055 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR tv78[rbp] - 00073 48 8b 8d 18 01 + 0005c 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 0007a e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z - 0007f 48 8b 85 18 01 + 00063 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z + 00068 48 8b 85 18 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 1412 : } +; 1477 : } - 00086 48 8d a5 f8 00 + 0006f 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 0008d 5f pop rdi - 0008e 5d pop rbp - 0008f c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::begin _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -15560,7 +15137,7 @@ _Mylast$ = 72 this$ = 320 ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ PROC ; std::vector >::clear, COMDAT -; 1383 : void clear() noexcept { // erase all +; 1449 : _CONSTEXPR20_CONTAINER void clear() noexcept { // erase all $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15569,75 +15146,69 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1384 : auto& _My_data = _Mypair._Myval2; - - 00036 48 8b 85 40 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1450 : auto& _My_data = _Mypair._Myval2; + + 0001f 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1385 : pointer& _Myfirst = _My_data._Myfirst; +; 1451 : pointer& _Myfirst = _My_data._Myfirst; - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 83 c0 08 add rax, 8 - 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 83 c0 08 add rax, 8 + 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1386 : pointer& _Mylast = _My_data._Mylast; +; 1452 : pointer& _Mylast = _My_data._Mylast; - 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00051 48 83 c0 10 add rax, 16 - 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003a 48 83 c0 10 add rax, 16 + 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1387 : -; 1388 : _My_data._Orphan_all(); +; 1453 : +; 1454 : _My_data._Orphan_all(); - 00059 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0005d e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 00042 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00046 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1389 : _Destroy(_Myfirst, _Mylast); +; 1455 : _Destroy(_Myfirst, _Mylast); - 00062 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00066 4c 8b 00 mov r8, QWORD PTR [rax] - 00069 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0006d 48 8b 10 mov rdx, QWORD PTR [rax] - 00070 48 8b 8d 40 01 + 0004b 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0004f 4c 8b 00 mov r8, QWORD PTR [rax] + 00052 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00056 48 8b 10 mov rdx, QWORD PTR [rax] + 00059 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00077 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00060 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1390 : _Mylast = _Myfirst; +; 1456 : _Mylast = _Myfirst; - 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00080 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 00084 48 8b 09 mov rcx, QWORD PTR [rcx] - 00087 48 89 08 mov QWORD PTR [rax], rcx + 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00069 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 0006d 48 8b 09 mov rcx, QWORD PTR [rcx] + 00070 48 89 08 mov QWORD PTR [rax], rcx -; 1391 : } +; 1457 : } - 0008a 48 8d a5 28 01 + 00073 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c c3 ret 0 ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ENDP ; std::vector >::clear _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z _TEXT SEGMENT this$ = 224 _Val$ = 232 ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z PROC ; std::vector >::push_back, COMDAT -; 716 : void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee +; 755 : _CONSTEXPR20_CONTAINER void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15647,35 +15218,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 717 : emplace_back(_Val); - - 0003b 48 8b 95 e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 756 : emplace_back(_Val); + + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Val$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back + 00032 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back -; 718 : } +; 757 : } - 0004e 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00055 5f pop rdi - 00056 5d pop rbp - 00057 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ENDP ; std::vector >::push_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -15685,7 +15250,7 @@ tv69 = 248 this$ = 288 ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::vector >, COMDAT -; 445 : vector() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { +; 476 : : _Mypair(_Zero_then_variadic_args_t{}) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15694,62 +15259,56 @@ $LN3: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 20 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 85 f8 00 + 00026 48 89 85 f8 00 00 00 mov QWORD PTR tv69[rbp], rax - 00044 0f b6 95 c4 00 + 0002d 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 0004b 48 8b 8d f8 00 + 00034 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00052 e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> + 0003b e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> -; 446 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); +; 477 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 00057 48 8b 85 20 01 + 00040 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005e 48 89 85 f8 00 + 00047 48 89 85 f8 00 00 00 mov QWORD PTR tv83[rbp], rax - 00065 48 8b 8d 20 01 + 0004e 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0006c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00071 48 8b d0 mov rdx, rax - 00074 48 8d 8d e4 00 + 00055 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005a 48 8b d0 mov rdx, rax + 0005d 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 0007b e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 00080 48 8b d0 mov rdx, rax - 00083 48 8b 8d f8 00 + 00064 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 00069 48 8b d0 mov rdx, rax + 0006c 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv83[rbp] - 0008a e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > + 00073 e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > -; 447 : } +; 478 : } - 0008f 48 8b 85 20 01 + 00078 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00096 48 8d a5 08 01 + 0007f 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0009d 5f pop rdi - 0009e 5d pop rbp - 0009f c3 ret 0 + 00086 5f pop rdi + 00087 5d pop rbp + 00088 c3 ret 0 ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z _TEXT SEGMENT __formal$ = 224 ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT -; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { +; 727 : _NODISCARD static _CONSTEXPR20_DYNALLOC size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15758,39 +15317,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 703 : return static_cast(-1) / sizeof(value_type); - - 00036 48 b8 ff ff ff + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 728 : return static_cast(-1) / sizeof(value_type); + + 0001f 48 b8 ff ff ff ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH -; 704 : } +; 729 : } - 00040 48 8d a5 c8 00 + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ENDP ; std::_Default_allocator_traits >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z PROC ; std::allocator::allocate, COMDAT -; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15800,35 +15353,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> - 00047 48 8b c8 mov rcx, rax - 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 808 : } +; 840 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -15836,7 +15383,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -15847,44 +15394,38 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 802 : // no overflow check on the following multiply; we assume _Allocate did that check -; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00040 48 8b 85 f0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 834 : // no overflow check on the following multiply; we assume _Allocate did that check +; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Count$[rbp] - 00047 48 c1 e0 02 shl rax, 2 - 0004b 48 8b d0 mov rdx, rax - 0004e 48 8b 8d e8 00 + 00030 48 c1 e0 02 shl rax, 2 + 00034 48 8b d0 mov rdx, rax + 00037 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0?$allocator@K@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$allocator@K@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 795 : constexpr allocator() noexcept {} +; 825 : constexpr allocator() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15893,22 +15434,16 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??0?$allocator@K@std@@QEAA@XZ ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -15925,36 +15460,30 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??1_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT $T1 = 200 @@ -15970,48 +15499,41 @@ $LN4: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 39 : if (RawData) - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 - 00042 74 24 je SHORT $LN2@NATIVE_COD + 00026 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 + 0002b 74 23 je SHORT $LN2@NATIVE_COD ; 40 : delete RawData; - 00044 48 8b 85 00 01 + 0002d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0004f 48 89 85 c8 00 + 00034 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00038 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00056 ba 01 00 00 00 mov edx, 1 - 0005b 48 8b 8d c8 00 + 0003f ba 01 00 00 00 mov edx, 1 + 00044 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00062 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00067 90 npad 1 + 0004b e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@NATIVE_COD: ; 41 : } - 00068 48 8d a5 e8 00 + 00050 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0006f 5f pop rdi - 00070 5d pop rbp - 00071 c3 ret 0 + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 ??1_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z _TEXT SEGMENT $T1 = 200 @@ -16034,104 +15556,98 @@ $LN6: 00015 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8b fc mov rdi, rsp - 00024 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00038 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 24 : : _NATIVE_CODE_LINK() - 00044 48 8b 8d 00 01 + 0002d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00050 90 npad 1 + 00034 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00039 90 npad 1 ; 26 : Flags = F; - 00051 48 8b 85 00 01 + 0003a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00058 8b 8d 08 01 00 + 00041 8b 8d 08 01 00 00 mov ecx, DWORD PTR F$[rbp] - 0005e 89 48 18 mov DWORD PTR [rax+24], ecx + 00047 89 48 18 mov DWORD PTR [rax+24], ecx ; 27 : RawDataSize = Rds; - 00061 48 8b 85 00 01 + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00068 8b 8d 18 01 00 + 00051 8b 8d 18 01 00 00 mov ecx, DWORD PTR Rds$[rbp] - 0006e 89 48 28 mov DWORD PTR [rax+40], ecx + 00057 89 48 28 mov DWORD PTR [rax+40], ecx ; 28 : RawData = new UCHAR[Rds]; - 00071 8b 85 18 01 00 + 0005a 8b 85 18 01 00 00 mov eax, DWORD PTR Rds$[rbp] - 00077 8b c8 mov ecx, eax - 00079 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 0007e 48 89 85 c8 00 + 00060 8b c8 mov ecx, eax + 00062 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 00067 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00085 48 8b 85 00 01 + 0006e 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008c 48 8b 8d c8 00 + 00075 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00093 48 89 48 20 mov QWORD PTR [rax+32], rcx + 0007c 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 29 : if (Rd) - 00097 48 83 bd 10 01 + 00080 48 83 bd 10 01 00 00 00 cmp QWORD PTR Rd$[rbp], 0 - 0009f 74 53 je SHORT $LN2@NATIVE_COD + 00088 74 53 je SHORT $LN2@NATIVE_COD ; 30 : { ; 31 : RtlCopyMemory(RawData, Rd, Rds); - 000a1 8b 85 18 01 00 + 0008a 8b 85 18 01 00 00 mov eax, DWORD PTR Rds$[rbp] - 000a7 44 8b c0 mov r8d, eax - 000aa 48 8b 95 10 01 + 00090 44 8b c0 mov r8d, eax + 00093 48 8b 95 10 01 00 00 mov rdx, QWORD PTR Rd$[rbp] - 000b1 48 8b 85 00 01 + 0009a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000b8 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 000bc e8 00 00 00 00 call memcpy + 000a1 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 000a5 e8 00 00 00 00 call memcpy ; 32 : if (Decode) - 000c1 83 bd 20 01 00 + 000aa 83 bd 20 01 00 00 00 cmp DWORD PTR Decode$[rbp], 0 - 000c8 74 2a je SHORT $LN2@NATIVE_COD + 000b1 74 2a je SHORT $LN2@NATIVE_COD ; 33 : XedDecode(&XedInstruction, RawData, RawDataSize); - 000ca 48 8b 85 00 01 + 000b3 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d1 48 83 c0 30 add rax, 48 ; 00000030H - 000d5 48 8b 8d 00 01 + 000ba 48 83 c0 30 add rax, 48 ; 00000030H + 000be 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000dc 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 000e0 48 8b 8d 00 01 + 000c5 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 000c9 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000e7 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000eb 48 8b c8 mov rcx, rax - 000ee e8 00 00 00 00 call xed_decode - 000f3 90 npad 1 + 000d0 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000d4 48 8b c8 mov rcx, rax + 000d7 e8 00 00 00 00 call xed_decode + 000dc 90 npad 1 $LN2@NATIVE_COD: ; 34 : } ; 35 : } - 000f4 48 8b 85 00 01 + 000dd 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 8d a5 e8 00 + 000e4 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00102 5f pop rdi - 00103 5d pop rbp - 00104 c3 ret 0 + 000eb 5f pop rdi + 000ec 5d pop rbp + 000ed c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; COMDAT text$x @@ -16184,7 +15700,7 @@ Decode$ = 288 ?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT this$ = 224 @@ -16203,58 +15719,52 @@ $LN4: 00010 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00033 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 16 : : _NATIVE_CODE_LINK() - 0003f 48 8b 8d e0 00 + 00028 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00046 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0002f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK ; 18 : Block = B; - 0004b 48 8b 85 e0 00 + 00034 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00052 48 8b 8d f0 00 + 0003b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR B$[rbp] - 00059 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00042 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 19 : Label = LabelId; - 0005d 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00064 8b 8d e8 00 00 + 0004d 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 0006a 89 48 1c mov DWORD PTR [rax+28], ecx + 00053 89 48 1c mov DWORD PTR [rax+28], ecx ; 20 : Flags = CODE_FLAG_IS_LABEL; - 0006d 48 8b 85 e0 00 + 00056 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00074 c7 40 18 01 00 + 0005d c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 21 : } - 0007b 48 8b 85 e0 00 + 00064 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00082 48 8d a5 c8 00 + 0006b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -16269,94 +15779,88 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : XedDecodedInstZero(&XedInstruction); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 c0 30 add rax, 48 ; 00000030H - 00041 48 8b c8 mov rcx, rax - 00044 e8 00 00 00 00 call xed_decoded_inst_zero + 00026 48 83 c0 30 add rax, 48 ; 00000030H + 0002a 48 8b c8 mov rcx, rax + 0002d e8 00 00 00 00 call xed_decoded_inst_zero ; 6 : XedDecodedInstSetMode(&XedInstruction, XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b); - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 83 c0 30 add rax, 48 ; 00000030H - 00054 41 b8 08 00 00 + 00039 48 83 c0 30 add rax, 48 ; 00000030H + 0003d 41 b8 08 00 00 00 mov r8d, 8 - 0005a ba 01 00 00 00 mov edx, 1 - 0005f 48 8b c8 mov rcx, rax - 00062 e8 00 00 00 00 call xed_decoded_inst_set_mode + 00043 ba 01 00 00 00 mov edx, 1 + 00048 48 8b c8 mov rcx, rax + 0004b e8 00 00 00 00 call xed_decoded_inst_set_mode ; 7 : Flags = 0UL; - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006e c7 40 18 00 00 + 00057 c7 40 18 00 00 00 00 mov DWORD PTR [rax+24], 0 ; 8 : Next = Prev = NULL; - 00075 48 8b 85 e0 00 + 0005e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0007c 48 c7 40 08 00 + 00065 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00084 48 8b 85 e0 00 + 0006d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0008b 48 c7 00 00 00 + 00074 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 9 : Block = NULL; - 00092 48 8b 85 e0 00 + 0007b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00099 48 c7 40 10 00 + 00082 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 10 : Label = 0UL; - 000a1 48 8b 85 e0 00 + 0008a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000a8 c7 40 1c 00 00 + 00091 c7 40 1c 00 00 00 00 mov DWORD PTR [rax+28], 0 ; 11 : RawData = NULL; - 000af 48 8b 85 e0 00 + 00098 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000b6 48 c7 40 20 00 + 0009f 48 c7 40 20 00 00 00 00 mov QWORD PTR [rax+32], 0 ; 12 : RawDataSize = 0UL; - 000be 48 8b 85 e0 00 + 000a7 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000c5 c7 40 28 00 00 + 000ae c7 40 28 00 00 00 00 mov DWORD PTR [rax+40], 0 ; 13 : } - 000cc 48 8b 85 e0 00 + 000b5 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000d3 48 8d a5 c8 00 + 000bc 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000da 5f pop rdi - 000db 5d pop rbp - 000dc c3 ret 0 + 000c3 5f pop rdi + 000c4 5d pop rbp + 000c5 c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_length _TEXT SEGMENT p$ = 224 @@ -16370,34 +15874,28 @@ xed_decoded_inst_get_length PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 283 : return p->_decoded_length; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b6 80 a6 00 + 00026 0f b6 80 a6 00 00 00 movzx eax, BYTE PTR [rax+166] ; 284 : } - 00044 48 8d a5 c8 00 + 0002d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 + 00034 5f pop rdi + 00035 5d pop rbp + 00036 c3 ret 0 xed_decoded_inst_get_length ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_set_mode _TEXT SEGMENT dstate$ = 8 @@ -16417,60 +15915,60 @@ xed_decoded_inst_set_mode PROC ; COMDAT 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 28 + 0001c 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00021 b9 0a 00 00 00 mov ecx, 10 + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 d8 00 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 260 : xed_state_t dstate; ; 261 : dstate.mmode = mmode; - 00050 8b 85 08 01 00 + 00052 8b 85 08 01 00 00 mov eax, DWORD PTR mmode$[rbp] - 00056 89 45 08 mov DWORD PTR dstate$[rbp], eax + 00058 89 45 08 mov DWORD PTR dstate$[rbp], eax ; 262 : dstate.stack_addr_width = stack_addr_width; - 00059 8b 85 10 01 00 + 0005b 8b 85 10 01 00 00 mov eax, DWORD PTR stack_addr_width$[rbp] - 0005f 89 45 0c mov DWORD PTR dstate$[rbp+4], eax + 00061 89 45 0c mov DWORD PTR dstate$[rbp+4], eax ; 263 : xed_operand_values_set_mode(p, &dstate); - 00062 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] - 00066 48 8b 8d 00 01 + 00064 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] + 00068 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 0006d e8 00 00 00 00 call xed_operand_values_set_mode + 0006f e8 00 00 00 00 call xed_operand_values_set_mode ; 264 : } - 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00076 48 8d 15 00 00 + 00074 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00078 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_decoded_inst_set_mode$rtcFrameData - 0007d e8 00 00 00 00 call _RTC_CheckStackVars - 00082 48 8b 8d d8 00 + 0007f e8 00 00 00 00 call _RTC_CheckStackVars + 00084 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00089 48 33 cd xor rcx, rbp - 0008c e8 00 00 00 00 call __security_check_cookie - 00091 48 8d a5 e8 00 + 0008b 48 33 cd xor rcx, rbp + 0008e e8 00 00 00 00 call __security_check_cookie + 00093 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00098 5f pop rdi - 00099 5d pop rbp - 0009a c3 ret 0 + 0009a 5f pop rdi + 0009b 5d pop rbp + 0009c c3 ret 0 xed_decoded_inst_set_mode ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_noperands _TEXT SEGMENT noperands$ = 4 @@ -16485,40 +15983,34 @@ xed_decoded_inst_noperands PROC ; COMDAT 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 171 : unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); - 00036 48 8b 8d 00 01 + 0001f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 0003d e8 00 00 00 00 call xed_decoded_inst_inst - 00042 48 8b c8 mov rcx, rax - 00045 e8 00 00 00 00 call xed_inst_noperands - 0004a 89 45 04 mov DWORD PTR noperands$[rbp], eax + 00026 e8 00 00 00 00 call xed_decoded_inst_inst + 0002b 48 8b c8 mov rcx, rax + 0002e e8 00 00 00 00 call xed_inst_noperands + 00033 89 45 04 mov DWORD PTR noperands$[rbp], eax ; 172 : return noperands; - 0004d 8b 45 04 mov eax, DWORD PTR noperands$[rbp] + 00036 8b 45 04 mov eax, DWORD PTR noperands$[rbp] ; 173 : } - 00050 48 8d a5 e8 00 + 00039 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 + 00040 5f pop rdi + 00041 5d pop rbp + 00042 c3 ret 0 xed_decoded_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_iclass _TEXT SEGMENT p$ = 224 @@ -16532,42 +16024,36 @@ xed_decoded_inst_get_iclass PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 76 : xed_assert(p->_inst != 0); - 00036 33 c0 xor eax, eax - 00038 85 c0 test eax, eax - 0003a 75 fa jne SHORT $LN4@xed_decode + 0001f 33 c0 xor eax, eax + 00021 85 c0 test eax, eax + 00023 75 fa jne SHORT $LN4@xed_decode ; 77 : return xed_inst_iclass(p->_inst); - 0003c 48 8b 85 e0 00 + 00025 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00043 48 8b 88 a8 00 + 0002c 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 0004a e8 00 00 00 00 call xed_inst_iclass + 00033 e8 00 00 00 00 call xed_inst_iclass ; 78 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 xed_decoded_inst_get_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_category _TEXT SEGMENT p$ = 224 @@ -16581,42 +16067,36 @@ xed_decoded_inst_get_category PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 55 : xed_assert(p->_inst != 0); - 00036 33 c0 xor eax, eax - 00038 85 c0 test eax, eax - 0003a 75 fa jne SHORT $LN4@xed_decode + 0001f 33 c0 xor eax, eax + 00021 85 c0 test eax, eax + 00023 75 fa jne SHORT $LN4@xed_decode ; 56 : return xed_inst_category(p->_inst); - 0003c 48 8b 85 e0 00 + 00025 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00043 48 8b 88 a8 00 + 0002c 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 0004a e8 00 00 00 00 call xed_inst_category + 00033 e8 00 00 00 00 call xed_inst_category ; 57 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 xed_decoded_inst_get_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_inst _TEXT SEGMENT p$ = 224 @@ -16630,34 +16110,28 @@ xed_decoded_inst_inst PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 47 : return p->_inst; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 48 8b 80 a8 00 + 00026 48 8b 80 a8 00 00 00 mov rax, QWORD PTR [rax+168] ; 48 : } - 00044 48 8d a5 c8 00 + 0002d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 + 00034 5f pop rdi + 00035 5d pop rbp + 00036 c3 ret 0 xed_decoded_inst_inst ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -16679,86 +16153,80 @@ xed_inst1 PROC ; COMDAT 00017 48 81 ec e0 00 00 00 sub rsp, 224 ; 000000e0H 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00023 48 8b fc mov rdi, rsp - 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0003a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h - 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 00046 48 8b 85 e0 00 + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0004d 48 8b 8d e8 00 + 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 00054 48 89 08 mov QWORD PTR [rax], rcx + 0003d 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00057 48 8b 85 e0 00 + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0005e 8b 8d f0 00 00 + 00047 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 00064 89 48 08 mov DWORD PTR [rax+8], ecx + 0004d 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0006e 8b 8d f8 00 00 + 00057 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 00074 89 48 0c mov DWORD PTR [rax+12], ecx + 0005d 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00077 48 8b 85 e0 00 + 00060 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0007e c7 40 10 00 00 + 00067 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 00085 48 8b 85 e0 00 + 0006e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0008c c7 40 14 00 00 + 00075 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H - 00098 48 6b c0 00 imul rax, rax, 0 - 0009c 48 8b 8d e0 00 + 0007c b8 30 00 00 00 mov eax, 48 ; 00000030H + 00081 48 6b c0 00 imul rax, rax, 0 + 00085 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR inst$[rbp] - 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 000a8 48 8b b5 00 01 + 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 00091 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b4 f3 a4 rep movsb + 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009d f3 a4 rep movsb ; 498 : inst->noperands = 1; - 000b6 48 8b 85 e0 00 + 0009f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000bd c7 40 18 01 00 + 000a6 c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000c4 48 8d a5 c0 00 + 000ad 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000cb 5f pop rdi - 000cc 5e pop rsi - 000cd 5d pop rbp - 000ce c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -16779,72 +16247,72 @@ xed_relbr PROC ; COMDAT 00011 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 14 00 00 00 mov ecx, 20 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 08 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00051 c7 45 08 01 00 + 00053 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 00058 8b 85 38 01 00 + 0005a 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax + 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00061 8b 85 40 01 00 + 00063 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 0006e 48 8b bd 30 01 + 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 00070 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 00075 48 8b f0 mov rsi, rax - 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007d f3 a4 rep movsb - 0007f 48 8b 85 30 01 + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 48 8b 85 30 01 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00086 48 8b f8 mov rdi, rax - 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008d 48 8d 15 00 00 + 00088 48 8b f8 mov rdi, rax + 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00094 e8 00 00 00 00 call _RTC_CheckStackVars - 00099 48 8b c7 mov rax, rdi - 0009c 48 8b 8d 08 01 + 00096 e8 00 00 00 00 call _RTC_CheckStackVars + 0009b 48 8b c7 mov rax, rdi + 0009e 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a3 48 33 cd xor rcx, rbp - 000a6 e8 00 00 00 00 call __security_check_cookie - 000ab 48 8d a5 10 01 + 000a5 48 33 cd xor rcx, rbp + 000a8 e8 00 00 00 00 call __security_check_cookie + 000ad 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b2 5f pop rdi - 000b3 5e pop rsi - 000b4 5d pop rbp - 000b5 c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_noperands _TEXT SEGMENT p$ = 224 @@ -16858,33 +16326,27 @@ xed_inst_noperands PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 313 : return p->_noperands; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b6 00 movzx eax, BYTE PTR [rax] + 00026 0f b6 00 movzx eax, BYTE PTR [rax] ; 314 : } - 00040 48 8d a5 c8 00 + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 xed_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_category _TEXT SEGMENT p$ = 224 @@ -16898,35 +16360,29 @@ xed_inst_category PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 298 : return xed_iform_to_category(xed_inst_iform_enum(p)); - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 0003d e8 00 00 00 00 call xed_inst_iform_enum - 00042 8b c8 mov ecx, eax - 00044 e8 00 00 00 00 call xed_iform_to_category + 00026 e8 00 00 00 00 call xed_inst_iform_enum + 0002b 8b c8 mov ecx, eax + 0002d e8 00 00 00 00 call xed_iform_to_category ; 299 : } - 00049 48 8d a5 c8 00 + 00032 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00039 5f pop rdi + 0003a 5d pop rbp + 0003b c3 ret 0 xed_inst_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iclass _TEXT SEGMENT p$ = 224 @@ -16940,35 +16396,29 @@ xed_inst_iclass PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 294 : return xed_iform_to_iclass(xed_inst_iform_enum(p)); - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 0003d e8 00 00 00 00 call xed_inst_iform_enum - 00042 8b c8 mov ecx, eax - 00044 e8 00 00 00 00 call xed_iform_to_iclass + 00026 e8 00 00 00 00 call xed_inst_iform_enum + 0002b 8b c8 mov ecx, eax + 0002d e8 00 00 00 00 call xed_iform_to_iclass ; 295 : } - 00049 48 8d a5 c8 00 + 00032 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00039 5f pop rdi + 0003a 5d pop rbp + 0003b c3 ret 0 xed_inst_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iform_enum _TEXT SEGMENT p$ = 224 @@ -16982,33 +16432,27 @@ xed_inst_iform_enum PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 290 : return (xed_iform_enum_t)p->_iform_enum; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b7 40 06 movzx eax, WORD PTR [rax+6] + 00026 0f b7 40 06 movzx eax, WORD PTR [rax+6] ; 291 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 xed_inst_iform_enum ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_operand_type _TEXT SEGMENT p$ = 224 @@ -17022,33 +16466,27 @@ xed_operand_type PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 97 : return (xed_operand_type_enum_t)p->_type; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b6 40 04 movzx eax, BYTE PTR [rax+4] + 00026 0f b6 40 04 movzx eax, BYTE PTR [rax+4] ; 98 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 xed_operand_type ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h ; COMDAT xed_iform_to_iclass _TEXT SEGMENT ii$ = 8 @@ -17063,52 +16501,46 @@ xed_iform_to_iclass PROC ; COMDAT 00006 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8b fc mov rdi, rsp - 00015 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001f f3 ab rep stosd - 00021 8b 8c 24 28 01 - 00 00 mov ecx, DWORD PTR [rsp+296] - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__642E1CAE_xed-iform-map@h - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00012 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F79B480A_xed-iform-map@h + 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 75 : const xed_iform_info_t* ii = xed_iform_map(iform); - 00034 8b 8d 00 01 00 + 0001e 8b 8d 00 01 00 00 mov ecx, DWORD PTR iform$[rbp] - 0003a e8 00 00 00 00 call xed_iform_map - 0003f 48 89 45 08 mov QWORD PTR ii$[rbp], rax + 00024 e8 00 00 00 00 call xed_iform_map + 00029 48 89 45 08 mov QWORD PTR ii$[rbp], rax ; 76 : if (ii) - 00043 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 - 00048 74 0d je SHORT $LN2@xed_iform_ + 0002d 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 + 00032 74 0d je SHORT $LN2@xed_iform_ ; 77 : return (xed_iclass_enum_t) ii->iclass; - 0004a 48 8b 45 08 mov rax, QWORD PTR ii$[rbp] - 0004e 8b 00 mov eax, DWORD PTR [rax] - 00050 25 ff ff 00 00 and eax, 65535 ; 0000ffffH - 00055 eb 02 jmp SHORT $LN1@xed_iform_ + 00034 48 8b 45 08 mov rax, QWORD PTR ii$[rbp] + 00038 8b 00 mov eax, DWORD PTR [rax] + 0003a 25 ff ff 00 00 and eax, 65535 ; 0000ffffH + 0003f eb 02 jmp SHORT $LN1@xed_iform_ $LN2@xed_iform_: ; 78 : return XED_ICLASS_INVALID; - 00057 33 c0 xor eax, eax + 00041 33 c0 xor eax, eax $LN1@xed_iform_: ; 79 : } - 00059 48 8d a5 e8 00 + 00043 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00060 5f pop rdi - 00061 5d pop rbp - 00062 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 xed_iform_to_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -17119,7 +16551,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17131,147 +16563,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -17282,7 +16708,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17294,147 +16720,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ios +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ios ; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z _TEXT SEGMENT _Iosbase$ = 224 @@ -17449,42 +16869,36 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FD1AE8DD_ios + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); - 00036 41 b8 00 0e 00 + 0001f 41 b8 00 0e 00 00 mov r8d, 3584 ; 00000e00H - 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H - 00041 48 8b 8d e0 00 + 00025 ba 00 08 00 00 mov edx, 2048 ; 00000800H + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00048 ff 15 00 00 00 + 00031 ff 15 00 00 00 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z ; 208 : return _Iosbase; - 0004e 48 8b 85 e0 00 + 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Iosbase$[rbp] ; 209 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -17495,7 +16909,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17506,104 +16920,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00040 48 8b 8d 40 01 + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -17620,79 +17028,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -17711,7 +17113,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17722,260 +17124,260 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ _TEXT SEGMENT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 400 : _NODISCARD static constexpr int_type eof() noexcept { +; 477 : _NODISCARD static constexpr int_type eof() noexcept { $LN3: 00000 40 55 push rbp @@ -17983,29 +17385,25 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 401 : return static_cast(EOF); +; 478 : return static_cast(EOF); - 0002a b8 ff ff ff ff mov eax, -1 + 0001b b8 ff ff ff ff mov eax, -1 -; 402 : } +; 479 : } - 0002f 48 8d a5 c8 00 + 00020 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00036 5f pop rdi - 00037 5d pop rbp - 00038 c3 ret 0 + 00027 5f pop rdi + 00028 5d pop rbp + 00029 c3 ret 0 ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z _TEXT SEGMENT tv65 = 192 @@ -18013,7 +17411,7 @@ _Left$ = 240 _Right$ = 248 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT -; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 469 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18023,55 +17421,49 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 393 : return _Left == _Right; - - 0003b 48 8b 85 f0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 470 : return _Left == _Right; + + 00024 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 00042 48 8b 8d f8 00 + 0002b 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00049 8b 09 mov ecx, DWORD PTR [rcx] - 0004b 39 08 cmp DWORD PTR [rax], ecx - 0004d 75 0c jne SHORT $LN3@eq_int_typ - 0004f c7 85 c0 00 00 + 00032 8b 09 mov ecx, DWORD PTR [rcx] + 00034 39 08 cmp DWORD PTR [rax], ecx + 00036 75 0c jne SHORT $LN3@eq_int_typ + 00038 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 - 00059 eb 0a jmp SHORT $LN4@eq_int_typ + 00042 eb 0a jmp SHORT $LN4@eq_int_typ $LN3@eq_int_typ: - 0005b c7 85 c0 00 00 + 00044 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 $LN4@eq_int_typ: - 00065 0f b6 85 c0 00 + 0004e 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv65[rbp] -; 394 : } +; 471 : } - 0006c 48 8d a5 d8 00 + 00055 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z _TEXT SEGMENT $T1 = 200 -tv78 = 216 +tv80 = 216 _Obj$ = 256 <_Args_0>$ = 264 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z PROC ; std::_Construct_in_place, COMDAT -; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { +; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18081,196 +17473,394 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 8d 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 00042 e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof - 00047 48 8b d0 mov rdx, rax - 0004a b9 10 00 00 00 mov ecx, 16 - 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00054 48 89 85 c8 00 + 0002b e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter + 00038 48 8b d0 mov rdx, rax + 0003b b9 10 00 00 00 mov ecx, 16 + 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00045 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0005b 48 8b 8d 08 01 + 0004c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00062 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 89 85 d8 00 - 00 00 mov QWORD PTR tv78[rbp], rax - 00071 48 8b 95 d8 00 - 00 00 mov rdx, QWORD PTR tv78[rbp] - 00078 48 8b 8d c8 00 + 00053 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward + 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0005b 48 89 85 d8 00 + 00 00 mov QWORD PTR tv80[rbp], rax + 00062 48 8b 95 d8 00 + 00 00 mov rdx, QWORD PTR tv80[rbp] + 00069 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0007f e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy - 00084 90 npad 1 + 00070 e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy + +; 152 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 153 : if (_STD is_constant_evaluated()) { +; 154 : _STD construct_at(_STD addressof(_Obj), _STD forward<_Types>(_Args)...); +; 155 : } else +; 156 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 157 : { +; 158 : ::new (_Voidify_iter(_STD addressof(_Obj))) _Ty(_STD forward<_Types>(_Args)...); +; 159 : } +; 160 : } -; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) -; 230 : _Ty(_STD forward<_Types>(_Args)...); -; 231 : } - - 00085 48 8d a5 e8 00 + 00075 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ENDP ; std::_Construct_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ _TEXT SEGMENT -_Pnext$1 = 8 +_Lock$ = 4 +__$ArrayPad$ = 216 this$ = 256 -?_Orphan_me@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me, COMDAT +?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_locked, COMDAT -; 1184 : void _Orphan_me() noexcept { +; 1212 : void _Orphan_me_locked() noexcept { -$LN15: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 0a 00 00 00 mov ecx, 10 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002c 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1213 : _Lockit _Lock(_LOCK_DEBUG); + + 00049 ba 03 00 00 00 mov edx, 3 + 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00052 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1214 : _Orphan_me_unlocked(); + + 00058 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked + +; 1215 : } + + 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00068 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcFrameData + 00079 e8 00 00 00 00 call _RTC_CheckStackVars + 0007e 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00085 48 33 cd xor rcx, rbp + 00088 e8 00 00 00 00 call __security_check_cookie + 0008d 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_locked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ +_TEXT SEGMENT +_Pnext$ = 8 +_Temp$1 = 40 +this$ = 288 +?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_unlocked, COMDAT + +; 1200 : _CONSTEXPR20_CONTAINER void _Orphan_me_unlocked() noexcept { + +$LN14: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1185 : if (_Myproxy) { // adopted, remove self from list - - 00036 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 0f 84 da 00 00 - 00 je $LN10@Orphan_me + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1186 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; +; 1201 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; - 00047 48 8b 85 00 01 + 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 83 c0 08 add rax, 8 - 00055 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax -$LN2@Orphan_me: + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 83 c0 08 add rax, 8 + 0002d 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax +$LN2@Orphan_me_: + +; 1202 : while (*_Pnext && *_Pnext != this) { + + 00031 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00035 48 83 38 00 cmp QWORD PTR [rax], 0 + 00039 74 29 je SHORT $LN6@Orphan_me_ + 0003b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0003f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00046 48 39 08 cmp QWORD PTR [rax], rcx + 00049 74 19 je SHORT $LN6@Orphan_me_ -; 1187 : while (*_Pnext && *_Pnext != this) { +; 1203 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 - 00059 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 0005d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00061 74 21 je SHORT $LN6@Orphan_me - 00063 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00067 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0006e 48 39 08 cmp QWORD PTR [rax], rcx - 00071 74 11 je SHORT $LN6@Orphan_me + 0004b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0004f 48 8b 00 mov rax, QWORD PTR [rax] + 00052 48 89 45 28 mov QWORD PTR _Temp$1[rbp], rax -; 1188 : _Pnext = &(*_Pnext)->_Mynextiter; +; 1204 : _Pnext = &_Temp->_Mynextiter; - 00073 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00077 48 8b 00 mov rax, QWORD PTR [rax] - 0007a 48 83 c0 08 add rax, 8 - 0007e 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + 00056 48 8b 45 28 mov rax, QWORD PTR _Temp$1[rbp] + 0005a 48 83 c0 08 add rax, 8 + 0005e 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax -; 1189 : } +; 1205 : } - 00082 eb d5 jmp SHORT $LN2@Orphan_me -$LN6@Orphan_me: + 00062 eb cd jmp SHORT $LN2@Orphan_me_ +$LN6@Orphan_me_: -; 1190 : -; 1191 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); +; 1206 : +; 1207 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); - 00084 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00088 48 83 38 00 cmp QWORD PTR [rax], 0 - 0008c 74 02 je SHORT $LN9@Orphan_me - 0008e eb 6b jmp SHORT $LN12@Orphan_me -$LN9@Orphan_me: - 00090 48 8d 05 00 00 + 00064 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00068 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006c 74 02 je SHORT $LN9@Orphan_me_ + 0006e eb 6b jmp SHORT $LN11@Orphan_me_ +$LN9@Orphan_me_: + 00070 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ - 00097 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0009c 48 8d 05 00 00 + 00077 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0007c 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000a8 45 33 c9 xor r9d, r9d - 000ab 41 b8 a7 04 00 - 00 mov r8d, 1191 ; 000004a7H - 000b1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000b8 b9 02 00 00 00 mov ecx, 2 - 000bd ff 15 00 00 00 + 00083 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00088 45 33 c9 xor r9d, r9d + 0008b 41 b8 b7 04 00 + 00 mov r8d, 1207 ; 000004b7H + 00091 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00098 b9 02 00 00 00 mov ecx, 2 + 0009d ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000c3 83 f8 01 cmp eax, 1 - 000c6 75 03 jne SHORT $LN14@Orphan_me - 000c8 cc int 3 - 000c9 33 c0 xor eax, eax -$LN14@Orphan_me: - 000cb 48 c7 44 24 20 + 000a3 83 f8 01 cmp eax, 1 + 000a6 75 03 jne SHORT $LN13@Orphan_me_ + 000a8 cc int 3 + 000a9 33 c0 xor eax, eax +$LN13@Orphan_me_: + 000ab 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000d4 41 b9 a7 04 00 - 00 mov r9d, 1191 ; 000004a7H - 000da 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000e1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ - 000e8 48 8d 0d 00 00 + 000b4 41 b9 b7 04 00 + 00 mov r9d, 1207 ; 000004b7H + 000ba 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000c1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ + 000c8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ - 000ef ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000f5 33 c0 xor eax, eax - 000f7 85 c0 test eax, eax - 000f9 75 95 jne SHORT $LN9@Orphan_me -$LN12@Orphan_me: - 000fb 33 c0 xor eax, eax - 000fd 85 c0 test eax, eax - 000ff 75 83 jne SHORT $LN6@Orphan_me - -; 1192 : *_Pnext = _Mynextiter; - - 00101 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00105 48 8b 8d 00 01 + 000d5 33 c0 xor eax, eax + 000d7 85 c0 test eax, eax + 000d9 75 95 jne SHORT $LN9@Orphan_me_ +$LN11@Orphan_me_: + 000db 33 c0 xor eax, eax + 000dd 85 c0 test eax, eax + 000df 75 83 jne SHORT $LN6@Orphan_me_ + +; 1208 : *_Pnext = _Mynextiter; + + 000e1 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 000e5 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0010c 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00110 48 89 08 mov QWORD PTR [rax], rcx + 000ec 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000f0 48 89 08 mov QWORD PTR [rax], rcx -; 1193 : _Myproxy = nullptr; +; 1209 : _Myproxy = nullptr; - 00113 48 8b 85 00 01 + 000f3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0011a 48 c7 00 00 00 + 000fa 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -$LN10@Orphan_me: -; 1194 : } -; 1195 : } +; 1210 : } + + 00101 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00108 5f pop rdi + 00109 5d pop rbp + 0010a c3 ret 0 +?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_unlocked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +_TEXT SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_Parent_proxy$ = 264 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z PROC ; std::_Iterator_base12::_Adopt_locked, COMDAT + +; 1195 : void _Adopt_locked(_Container_proxy* _Parent_proxy) noexcept { - 00121 48 8d a5 e8 00 +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001d b9 0a 00 00 00 mov ecx, 10 + 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00027 f3 ab rep stosd + 00029 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00031 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00038 48 33 c5 xor rax, rbp + 0003b 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00042 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1196 : _Lockit _Lock(_LOCK_DEBUG); + + 0004e ba 03 00 00 00 mov edx, 3 + 00053 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00057 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1197 : _Adopt_unlocked(_Parent_proxy); + + 0005d 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Parent_proxy$[rbp] + 00064 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006b e8 00 00 00 00 call ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_unlocked + +; 1198 : } + + 00070 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00074 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0007a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0007e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcFrameData + 00085 e8 00 00 00 00 call _RTC_CheckStackVars + 0008a 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00091 48 33 cd xor rcx, rbp + 00094 e8 00 00 00 00 call __security_check_cookie + 00099 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00128 5f pop rdi - 00129 5d pop rbp - 0012a c3 ret 0 -?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me + 000a0 5f pop rdi + 000a1 5d pop rbp + 000a2 c3 ret 0 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ENDP ; std::_Iterator_base12::_Adopt_locked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +_TEXT SEGMENT +this$ = 224 +_Parent_proxy$ = 232 +?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z PROC ; std::_Iterator_base12::_Adopt_unlocked, COMDAT + +; 1186 : _CONSTEXPR20_CONTAINER void _Adopt_unlocked(_Container_proxy* _Parent_proxy) noexcept { + +$LN4: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1187 : if (_Myproxy) { // adopted, remove self from list + + 00024 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0002b 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002f 74 0c je SHORT $LN2@Adopt_unlo + +; 1188 : _Orphan_me_unlocked(); + + 00031 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00038 e8 00 00 00 00 call ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked +$LN2@Adopt_unlo: + +; 1189 : } +; 1190 : _Mynextiter = _Parent_proxy->_Myfirstiter; + + 0003d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00044 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Parent_proxy$[rbp] + 0004b 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004f 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1191 : _Parent_proxy->_Myfirstiter = this; + + 00053 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Parent_proxy$[rbp] + 0005a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00061 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1192 : _Myproxy = _Parent_proxy; + + 00065 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006c 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Parent_proxy$[rbp] + 00073 48 89 08 mov QWORD PTR [rax], rcx + +; 1193 : } + + 00076 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f c3 ret 0 +?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ENDP ; std::_Iterator_base12::_Adopt_unlocked _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ _TEXT SEGMENT tv68 = 192 this$ = 240 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ PROC ; std::_Iterator_base12::_Getcont, COMDAT -; 1179 : const _Container_base12* _Getcont() const noexcept { +; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18279,396 +17869,298 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1180 : return _Myproxy ? _Myproxy->_Mycont : nullptr; - - 00036 48 8b 85 f0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; + + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 74 16 je SHORT $LN3@Getcont - 00043 48 8b 85 f0 00 + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 16 je SHORT $LN3@Getcont + 0002c 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 8b 00 mov rax, QWORD PTR [rax] - 00050 48 89 85 c0 00 + 00033 48 8b 00 mov rax, QWORD PTR [rax] + 00036 48 8b 00 mov rax, QWORD PTR [rax] + 00039 48 89 85 c0 00 00 00 mov QWORD PTR tv68[rbp], rax - 00057 eb 0b jmp SHORT $LN4@Getcont + 00040 eb 0b jmp SHORT $LN4@Getcont $LN3@Getcont: - 00059 48 c7 85 c0 00 + 00042 48 c7 85 c0 00 00 00 00 00 00 00 mov QWORD PTR tv68[rbp], 0 $LN4@Getcont: - 00064 48 8b 85 c0 00 + 0004d 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv68[rbp] -; 1181 : } +; 1177 : } - 0006b 48 8d a5 d8 00 + 00054 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ENDP ; std::_Iterator_base12::_Getcont _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_v2, COMDAT + +; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1153 : if (_Myproxy) { // adopted, remove self from list + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0c je SHORT $LN2@Orphan_me_ + +; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1155 : if (_STD is_constant_evaluated()) { +; 1156 : _Orphan_me_unlocked(); +; 1157 : } else +; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1159 : { +; 1160 : _Orphan_me_locked(); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_locked +$LN2@Orphan_me_: + +; 1161 : } +; 1162 : } +; 1163 : } + + 00038 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 +?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_v2 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z _TEXT SEGMENT -_Parent_proxy$5 = 8 -_Lock$6 = 36 -_Lock$7 = 68 -__$ArrayPad$ = 280 -this$ = 320 -_Parent$ = 328 +_Parent_proxy$1 = 8 +this$ = 256 +_Parent$ = 264 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z PROC ; std::_Iterator_base12::_Adopt, COMDAT -; 1151 : void _Adopt(const _Container_base12* _Parent) noexcept { +; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { $LN6: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002f 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 18 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1152 : if (_Parent) { +; 1135 : if (_Parent) { // have a parent, do adoption - 0004c 48 83 bd 48 01 + 00024 48 83 bd 08 01 00 00 00 cmp QWORD PTR _Parent$[rbp], 0 - 00054 74 75 je SHORT $LN2@Adopt + 0002c 74 30 je SHORT $LN2@Adopt -; 1153 : // have a parent, do adoption -; 1154 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; - 00056 48 8b 85 48 01 + 0002e 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Parent$[rbp] - 0005d 48 8b 00 mov rax, QWORD PTR [rax] - 00060 48 89 45 08 mov QWORD PTR _Parent_proxy$5[rbp], rax - -; 1155 : -; 1156 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1157 : if (_Myproxy != _Parent_proxy) { // change parentage - - 00064 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] - 0006f 48 39 08 cmp QWORD PTR [rax], rcx - 00072 74 55 je SHORT $LN4@Adopt - -; 1158 : _Lockit _Lock(_LOCK_DEBUG); - - 00074 ba 03 00 00 00 mov edx, 3 - 00079 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] - 0007d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1159 : _Orphan_me(); + 00035 48 8b 00 mov rax, QWORD PTR [rax] + 00038 48 89 45 08 mov QWORD PTR _Parent_proxy$1[rbp], rax - 00083 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0008a e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me - -; 1160 : _Mynextiter = _Parent_proxy->_Myfirstiter; +; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage - 0008f 48 8b 85 40 01 + 0003c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00096 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] - 0009a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0009e 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 1161 : _Parent_proxy->_Myfirstiter = this; - - 000a2 48 8b 45 08 mov rax, QWORD PTR _Parent_proxy$5[rbp] - 000a6 48 8b 8d 40 01 + 00043 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$1[rbp] + 00047 48 39 08 cmp QWORD PTR [rax], rcx + 0004a 74 10 je SHORT $LN4@Adopt + +; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1139 : if (_STD is_constant_evaluated()) { +; 1140 : _Adopt_unlocked(_Parent_proxy); +; 1141 : } else +; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1143 : { +; 1144 : _Adopt_locked(_Parent_proxy); + + 0004c 48 8b 55 08 mov rdx, QWORD PTR _Parent_proxy$1[rbp] + 00050 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 1162 : _Myproxy = _Parent_proxy; - - 000b1 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000b8 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] - 000bc 48 89 08 mov QWORD PTR [rax], rcx - -; 1163 : } - - 000bf 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] - 000c3 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00057 e8 00 00 00 00 call ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked $LN4@Adopt: -; 1164 : -; 1165 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1166 : _Myproxy = _Parent_proxy; -; 1167 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1168 : } else { +; 1145 : } +; 1146 : } +; 1147 : } else { // no future parent, just disown current parent - 000c9 eb 25 jmp SHORT $LN3@Adopt + 0005c eb 0c jmp SHORT $LN3@Adopt $LN2@Adopt: -; 1169 : // no future parent, just disown current parent -; 1170 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1171 : _Lockit _Lock(_LOCK_DEBUG); - - 000cb ba 03 00 00 00 mov edx, 3 - 000d0 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] - 000d4 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1172 : _Orphan_me(); +; 1148 : _Orphan_me_v2(); - 000da 48 8b 8d 40 01 + 0005e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000e1 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me - -; 1173 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1174 : _Myproxy = nullptr; -; 1175 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1176 : } - - 000e6 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] - 000ea ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00065 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 $LN3@Adopt: -; 1177 : } +; 1149 : } +; 1150 : } - 000f0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000f4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcFrameData - 000fb e8 00 00 00 00 call _RTC_CheckStackVars - 00100 90 npad 1 - 00101 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00108 48 33 cd xor rcx, rbp - 0010b e8 00 00 00 00 call __security_check_cookie - 00110 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00117 5f pop rdi - 00118 5d pop rbp - 00119 c3 ret 0 + 0006a 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ENDP ; std::_Iterator_base12::_Adopt _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??1_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 +this$ = 224 ??1_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::~_Iterator_base12, COMDAT -; 1144 : ~_Iterator_base12() noexcept { +; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1145 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1146 : _Lockit _Lock(_LOCK_DEBUG); +; 1131 : _Orphan_me_v2(); - 00047 ba 03 00 00 00 mov edx, 3 - 0004c 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00050 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1147 : _Orphan_me(); - - 00056 48 8b 8d 00 01 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0005d e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + 00026 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 -; 1148 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1149 : } +; 1132 : } - 00062 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00066 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00070 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcFrameData - 00077 e8 00 00 00 00 call _RTC_CheckStackVars - 0007c 90 npad 1 - 0007d 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00084 48 33 cd xor rcx, rbp - 00087 e8 00 00 00 00 call __security_check_cookie - 0008c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00093 5f pop rdi - 00094 5d pop rbp - 00095 c3 ret 0 + 0002b 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??1_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::~_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z _TEXT SEGMENT -_Lock$4 = 4 -__$ArrayPad$ = 216 -this$ = 256 -_Right$ = 264 +this$ = 224 +_Right$ = 232 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z PROC ; std::_Iterator_base12::operator=, COMDAT -; 1127 : _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { $LN6: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1128 : if (_Myproxy != _Right._Myproxy) { +; 1115 : if (_Myproxy != _Right._Myproxy) { - 0004c 48 8b 85 00 01 + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 8d 08 01 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 0005a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005d 48 39 08 cmp QWORD PTR [rax], rcx - 00060 74 4d je SHORT $LN2@operator + 00032 48 8b 09 mov rcx, QWORD PTR [rcx] + 00035 48 39 08 cmp QWORD PTR [rax], rcx + 00038 74 34 je SHORT $LN2@operator -; 1129 : if (_Right._Myproxy) { +; 1116 : if (_Right._Myproxy) { - 00062 48 8b 85 08 01 + 0003a 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Right$[rbp] - 00069 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006d 74 1b je SHORT $LN3@operator + 00041 48 83 38 00 cmp QWORD PTR [rax], 0 + 00045 74 1b je SHORT $LN3@operator -; 1130 : _Adopt(_Right._Myproxy->_Mycont); +; 1117 : _Adopt(_Right._Myproxy->_Mycont); - 0006f 48 8b 85 08 01 + 00047 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Right$[rbp] - 00076 48 8b 00 mov rax, QWORD PTR [rax] - 00079 48 8b 10 mov rdx, QWORD PTR [rax] - 0007c 48 8b 8d 00 01 + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 8b 10 mov rdx, QWORD PTR [rax] + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00083 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 0005b e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt -; 1131 : } else { // becoming invalid, disown current parent +; 1118 : } else { // becoming invalid, disown current parent - 00088 eb 25 jmp SHORT $LN2@operator + 00060 eb 0c jmp SHORT $LN2@operator $LN3@operator: -; 1132 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1133 : _Lockit _Lock(_LOCK_DEBUG); - - 0008a ba 03 00 00 00 mov edx, 3 - 0008f 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 00093 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1134 : _Orphan_me(); +; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1120 : _Orphan_me_v2(); - 00099 48 8b 8d 00 01 + 00062 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 000a0 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me - -; 1135 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1136 : _Myproxy = nullptr; -; 1137 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1138 : } - - 000a5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000a9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00069 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 $LN2@operator: -; 1139 : } -; 1140 : -; 1141 : return *this; +; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1122 : _Myproxy = nullptr; +; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1124 : } +; 1125 : } +; 1126 : return *this; - 000af 48 8b 85 00 01 + 0006e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1142 : } +; 1127 : } - 000b6 48 8b f8 mov rdi, rax - 000b9 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000bd 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcFrameData - 000c4 e8 00 00 00 00 call _RTC_CheckStackVars - 000c9 48 8b c7 mov rax, rdi - 000cc 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d3 48 33 cd xor rcx, rbp - 000d6 e8 00 00 00 00 call __security_check_cookie - 000db 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000e2 5f pop rdi - 000e3 5d pop rbp - 000e4 c3 ret 0 + 00075 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ENDP ; std::_Iterator_base12::operator= _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Iterator_base12@std@@QEAA@AEBU01@@Z _TEXT SEGMENT this$ = 224 _Right$ = 232 ??0_Iterator_base12@std@@QEAA@AEBU01@@Z PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT -; 1123 : _Iterator_base12(const _Iterator_base12& _Right) noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) { +; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18678,51 +18170,119 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1113 : +; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1115 : if (_Myproxy != _Right._Myproxy) { +; 1116 : if (_Right._Myproxy) { +; 1117 : _Adopt(_Right._Myproxy->_Mycont); +; 1118 : } else { // becoming invalid, disown current parent +; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1120 : _Orphan_me_v2(); +; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1122 : _Myproxy = nullptr; +; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1124 : } +; 1125 : } +; 1126 : return *this; +; 1127 : } +; 1128 : +; 1129 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { +; 1131 : _Orphan_me_v2(); +; 1132 : } +; 1133 : +; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1135 : if (_Parent) { // have a parent, do adoption +; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage +; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1139 : if (_STD is_constant_evaluated()) { +; 1140 : _Adopt_unlocked(_Parent_proxy); +; 1141 : } else +; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1143 : { +; 1144 : _Adopt_locked(_Parent_proxy); +; 1145 : } +; 1146 : } +; 1147 : } else { // no future parent, just disown current parent +; 1148 : _Orphan_me_v2(); +; 1149 : } +; 1150 : } +; 1151 : +; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { +; 1153 : if (_Myproxy) { // adopted, remove self from list +; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1155 : if (_STD is_constant_evaluated()) { +; 1156 : _Orphan_me_unlocked(); +; 1157 : } else +; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1159 : { +; 1160 : _Orphan_me_locked(); +; 1161 : } +; 1162 : } +; 1163 : } +; 1164 : +; 1165 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ / vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1166 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1167 : if (_Parent) { // have a parent, do adoption +; 1168 : _Myproxy = _Parent->_Myproxy; +; 1169 : } else { // no future parent, just disown current parent +; 1170 : _Myproxy = nullptr; +; 1171 : } +; 1172 : } +; 1173 : #endif // _ITERATOR_DEBUG_LEVEL != 2 +; 1174 : +; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { +; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; +; 1177 : } +; 1178 : +; 1179 : static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0; +; 1180 : +; 1181 : mutable _Container_proxy* _Myproxy = nullptr; + + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 c7 00 00 00 + 0002b 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00049 48 8b 85 e0 00 + +; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; + + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 c7 40 08 00 + 00039 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1124 : *this = _Right; +; 1111 : *this = _Right; - 00058 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 0005f 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00066 e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= + 0004f e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= -; 1125 : } +; 1112 : } - 0006b 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00072 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00079 5f pop rdi - 0007a 5d pop rbp - 0007b c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ENDP ; std::_Iterator_base12::_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT -; 1121 : _Iterator_base12() noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) {} // construct orphaned iterator +; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18731,156 +18291,303 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1109 : +; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { +; 1111 : *this = _Right; +; 1112 : } +; 1113 : +; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1115 : if (_Myproxy != _Right._Myproxy) { +; 1116 : if (_Right._Myproxy) { +; 1117 : _Adopt(_Right._Myproxy->_Mycont); +; 1118 : } else { // becoming invalid, disown current parent +; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1120 : _Orphan_me_v2(); +; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1122 : _Myproxy = nullptr; +; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1124 : } +; 1125 : } +; 1126 : return *this; +; 1127 : } +; 1128 : +; 1129 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { +; 1131 : _Orphan_me_v2(); +; 1132 : } +; 1133 : +; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1135 : if (_Parent) { // have a parent, do adoption +; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage +; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1139 : if (_STD is_constant_evaluated()) { +; 1140 : _Adopt_unlocked(_Parent_proxy); +; 1141 : } else +; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1143 : { +; 1144 : _Adopt_locked(_Parent_proxy); +; 1145 : } +; 1146 : } +; 1147 : } else { // no future parent, just disown current parent +; 1148 : _Orphan_me_v2(); +; 1149 : } +; 1150 : } +; 1151 : +; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { +; 1153 : if (_Myproxy) { // adopted, remove self from list +; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1155 : if (_STD is_constant_evaluated()) { +; 1156 : _Orphan_me_unlocked(); +; 1157 : } else +; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1159 : { +; 1160 : _Orphan_me_locked(); +; 1161 : } +; 1162 : } +; 1163 : } +; 1164 : +; 1165 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ / vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1166 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1167 : if (_Parent) { // have a parent, do adoption +; 1168 : _Myproxy = _Parent->_Myproxy; +; 1169 : } else { // no future parent, just disown current parent +; 1170 : _Myproxy = nullptr; +; 1171 : } +; 1172 : } +; 1173 : #endif // _ITERATOR_DEBUG_LEVEL != 2 +; 1174 : +; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { +; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; +; 1177 : } +; 1178 : +; 1179 : static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0; +; 1180 : +; 1181 : mutable _Container_proxy* _Myproxy = nullptr; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 c7 00 00 00 + 00026 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00044 48 8b 85 e0 00 + +; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; + + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 c7 40 08 00 + 00034 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00053 48 8b 85 e0 00 + +; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator + + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ _TEXT SEGMENT -_Lock$4 = 4 -_Pnext$5 = 40 -__$ArrayPad$ = 248 -this$ = 288 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 1205 : inline void _Container_base12::_Orphan_all() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { -$LN7: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8b 05 00 00 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 0a 00 00 00 mov ecx, 10 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 f8 00 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1207 : if (_Myproxy) { // proxy allocated, drain it +; 1096 : _Lockit _Lock(_LOCK_DEBUG); - 00047 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00052 74 6b je SHORT $LN5@Orphan_all + 00049 ba 03 00 00 00 mov edx, 3 + 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00052 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1208 : _Lockit _Lock(_LOCK_DEBUG); +; 1097 : _Orphan_all_unlocked(); - 00054 ba 03 00 00 00 mov edx, 3 - 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 0005d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00058 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked -; 1209 : -; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { +; 1098 : } - 00063 48 8b 85 20 01 + 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00068 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData + 00079 e8 00 00 00 00 call _RTC_CheckStackVars + 0007e 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00085 48 33 cd xor rcx, rbp + 00088 e8 00 00 00 00 call __security_check_cookie + 0008d 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +_TEXT SEGMENT +_Pnext$1 = 8 +this$ = 256 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + +; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { + +$LN6: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 + + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 83 c0 08 add rax, 8 - 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax - 00075 eb 12 jmp SHORT $LN4@Orphan_all + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 83 c0 08 add rax, 8 + 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + 00031 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0007b 48 8b 00 mov rax, QWORD PTR [rax] - 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] - 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00086 48 89 01 mov QWORD PTR [rcx], rax + 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] + 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00042 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00091 74 10 je SHORT $LN3@Orphan_all + 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00049 48 83 38 00 cmp QWORD PTR [rax], 0 + 0004d 74 10 je SHORT $LN3@Orphan_all -; 1211 : (*_Pnext)->_Myproxy = nullptr; +; 1222 : _Pnext->_Myproxy = nullptr; - 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 c7 00 00 00 + 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1212 : } +; 1223 : } - 000a1 eb d4 jmp SHORT $LN2@Orphan_all + 0005d eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1213 : -; 1214 : _Myproxy->_Myfirstiter = nullptr; +; 1224 : _Myproxy->_Myfirstiter = nullptr; - 000a3 48 8b 85 20 01 + 0005f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 8b 00 mov rax, QWORD PTR [rax] - 000ad 48 c7 40 08 00 + 00066 48 8b 00 mov rax, QWORD PTR [rax] + 00069 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1215 : } +; 1225 : } - 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000b9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ -$LN5@Orphan_all: + 00071 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1217 : } +; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c3 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData - 000ca e8 00 00 00 00 call _RTC_CheckStackVars - 000cf 90 npad 1 - 000d0 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d7 48 33 cd xor rcx, rbp - 000da e8 00 00 00 00 call __security_check_cookie - 000df 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e6 5f pop rdi - 000e7 5d pop rbp - 000e8 c3 ret 0 +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1229 : if (_Myproxy) { // proxy allocated, drain it + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0c je SHORT $LN2@Orphan_all + +; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1231 : if (_STD is_constant_evaluated()) { +; 1232 : _Orphan_all_unlocked(); +; 1233 : } else +; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1235 : { +; 1236 : _Orphan_all_locked(); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked +$LN2@Orphan_all: + +; 1237 : } +; 1238 : } +; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1240 : } + + 00038 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Container_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT -; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} +; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18889,37 +18596,61 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1065 : +; 1066 : _Container_base12(const _Container_base12&) = delete; +; 1067 : _Container_base12& operator=(const _Container_base12&) = delete; +; 1068 : +; 1069 : _CONSTEXPR20_CONTAINER void _Orphan_all() noexcept; +; 1070 : _CONSTEXPR20_CONTAINER void _Swap_proxy_and_iterators(_Container_base12&) noexcept; +; 1071 : +; 1072 : template +; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { +; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); +; 1075 : _Construct_in_place(*_New_proxy, this); +; 1076 : _Myproxy = _New_proxy; +; 1077 : _New_proxy->_Mycont = this; +; 1078 : } +; 1079 : +; 1080 : template +; 1081 : _CONSTEXPR20_CONTAINER void _Reload_proxy(_Alloc&& _Old_alloc, _Alloc&& _New_alloc) { +; 1082 : // pre: no iterators refer to the existing proxy +; 1083 : _Container_proxy* const _New_proxy = _Unfancy(_New_alloc.allocate(1)); +; 1084 : _Construct_in_place(*_New_proxy, this); +; 1085 : _New_proxy->_Mycont = this; +; 1086 : _Delete_plain_internal(_Old_alloc, _STD exchange(_Myproxy, _New_proxy)); +; 1087 : } +; 1088 : +; 1089 : _Container_proxy* _Myproxy = nullptr; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 c7 00 00 00 + 00026 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00044 48 8b 85 e0 00 + +; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; + + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d a5 c8 00 + 00034 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ??0_Container_base12@std@@QEAA@XZ ENDP ; std::_Container_base12::_Container_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 _Mycont_$ = 232 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z PROC ; std::_Container_proxy::_Container_proxy, COMDAT -; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} +; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18929,35 +18660,37 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d e8 00 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx - 0004c 48 8b 85 e0 00 + 00032 48 89 08 mov QWORD PTR [rax], rcx + +; 1057 : +; 1058 : const _Container_base12* _Mycont = nullptr; +; 1059 : mutable _Iterator_base12* _Myfirstiter = nullptr; + + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 c7 40 08 00 + 0003c 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0005b 48 8b 85 e0 00 + +; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} + + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ENDP ; std::_Container_proxy::_Container_proxy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -18968,7 +18701,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18978,202 +18711,196 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 134 : _Bytes += _Non_user_size; +; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 155 : _Bytes += _Non_user_size; - 0003b 48 8b 85 68 01 + 00024 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 83 c0 2f add rax, 47 ; 0000002fH - 00049 48 8b 8d 68 01 + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 83 c0 2f add rax, 47 ; 0000002fH + 00032 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00050 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 89 01 mov QWORD PTR [rcx], rax -; 135 : -; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 156 : +; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00053 48 8b 85 60 01 + 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0005a 48 8b 00 mov rax, QWORD PTR [rax] - 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00061 b8 08 00 00 00 mov eax, 8 - 00066 48 6b c0 ff imul rax, rax, -1 - 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 0004a b8 08 00 00 00 mov eax, 8 + 0004f 48 6b c0 ff imul rax, rax, -1 + 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 138 : -; 139 : // If the following asserts, it likely means that we are performing -; 140 : // an aligned delete on memory coming from an unaligned allocation. -; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); +; 159 : +; 160 : // If the following asserts, it likely means that we are performing +; 161 : // an aligned delete on memory coming from an unaligned allocation. +; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - 00076 b8 08 00 00 00 mov eax, 8 - 0007b 48 6b c0 fe imul rax, rax, -2 - 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00083 48 ba fa fa fa + 0005f b8 08 00 00 00 mov eax, 8 + 00064 48 6b c0 fe imul rax, rax, -2 + 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006c 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 00091 75 02 jne SHORT $LN14@Adjust_man - 00093 eb 77 jmp SHORT $LN15@Adjust_man + 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 0007a 75 02 jne SHORT $LN14@Adjust_man + 0007c eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 00095 8b 05 00 00 00 + 0007e 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0009b 83 c0 09 add eax, 9 - 0009e 48 8d 0d 00 00 + 00084 83 c0 09 add eax, 9 + 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 000aa 48 8d 0d 00 00 + 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00093 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 000b6 45 33 c9 xor r9d, r9d - 000b9 44 8b c0 mov r8d, eax - 000bc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000c3 b9 02 00 00 00 mov ecx, 2 - 000c8 ff 15 00 00 00 + 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0009f 45 33 c9 xor r9d, r9d + 000a2 44 8b c0 mov r8d, eax + 000a5 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000ac b9 02 00 00 00 mov ecx, 2 + 000b1 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000ce 83 f8 01 cmp eax, 1 - 000d1 75 03 jne SHORT $LN19@Adjust_man - 000d3 cc int 3 - 000d4 33 c0 xor eax, eax + 000b7 83 f8 01 cmp eax, 1 + 000ba 75 03 jne SHORT $LN19@Adjust_man + 000bc cc int 3 + 000bd 33 c0 xor eax, eax $LN19@Adjust_man: - 000d6 8b 05 00 00 00 + 000bf 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000dc 83 c0 09 add eax, 9 - 000df 48 c7 44 24 20 + 000c5 83 c0 09 add eax, 9 + 000c8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000e8 44 8b c8 mov r9d, eax - 000eb 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000f2 48 8d 15 00 00 + 000d1 44 8b c8 mov r9d, eax + 000d4 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000db 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000f9 48 8d 0d 00 00 + 000e2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00100 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00106 33 c0 xor eax, eax - 00108 85 c0 test eax, eax - 0010a 75 89 jne SHORT $LN7@Adjust_man + 000ef 33 c0 xor eax, eax + 000f1 85 c0 test eax, eax + 000f3 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 0010c 33 c0 xor eax, eax - 0010e 85 c0 test eax, eax - 00110 0f 85 60 ff ff + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 142 : -; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 144 : // in range [_Min_back_shift, _Non_user_size] -; 145 : #ifdef _DEBUG -; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 163 : +; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 165 : // in range [_Min_back_shift, _Non_user_size] +; 166 : #ifdef _DEBUG +; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 00116 48 c7 45 48 10 + 000ff 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 149 : #endif // _DEBUG -; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 170 : #endif // _DEBUG +; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 0011e 48 8b 85 60 01 + 00107 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00129 48 8b 00 mov rax, QWORD PTR [rax] - 0012c 48 2b c1 sub rax, rcx - 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00112 48 8b 00 mov rax, QWORD PTR [rax] + 00115 48 2b c1 sub rax, rcx + 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00138 72 09 jb SHORT $LN16@Adjust_man - 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 0013f 77 02 ja SHORT $LN16@Adjust_man - 00141 eb 77 jmp SHORT $LN17@Adjust_man + 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00121 72 09 jb SHORT $LN16@Adjust_man + 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 00128 77 02 ja SHORT $LN16@Adjust_man + 0012a eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 00143 8b 05 00 00 00 + 0012c 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00149 83 c0 13 add eax, 19 - 0014c 48 8d 0d 00 00 + 00132 83 c0 13 add eax, 19 + 00135 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00158 48 8d 0d 00 00 + 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00141 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00164 45 33 c9 xor r9d, r9d - 00167 44 8b c0 mov r8d, eax - 0016a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00171 b9 02 00 00 00 mov ecx, 2 - 00176 ff 15 00 00 00 + 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0014d 45 33 c9 xor r9d, r9d + 00150 44 8b c0 mov r8d, eax + 00153 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0015a b9 02 00 00 00 mov ecx, 2 + 0015f ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0017c 83 f8 01 cmp eax, 1 - 0017f 75 03 jne SHORT $LN20@Adjust_man - 00181 cc int 3 - 00182 33 c0 xor eax, eax + 00165 83 f8 01 cmp eax, 1 + 00168 75 03 jne SHORT $LN20@Adjust_man + 0016a cc int 3 + 0016b 33 c0 xor eax, eax $LN20@Adjust_man: - 00184 8b 05 00 00 00 + 0016d 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0018a 83 c0 13 add eax, 19 - 0018d 48 c7 44 24 20 + 00173 83 c0 13 add eax, 19 + 00176 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00196 44 8b c8 mov r9d, eax - 00199 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 001a0 48 8d 15 00 00 + 0017f 44 8b c8 mov r9d, eax + 00182 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00189 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 001a7 48 8d 0d 00 00 + 00190 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 001ae ff 15 00 00 00 + 00197 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 001b4 33 c0 xor eax, eax - 001b6 85 c0 test eax, eax - 001b8 75 89 jne SHORT $LN13@Adjust_man + 0019d 33 c0 xor eax, eax + 0019f 85 c0 test eax, eax + 001a1 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001ba 33 c0 xor eax, eax - 001bc 85 c0 test eax, eax - 001be 0f 85 6f ff ff + 001a3 33 c0 xor eax, eax + 001a5 85 c0 test eax, eax + 001a7 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 152 : _Ptr = reinterpret_cast(_Ptr_container); +; 173 : _Ptr = reinterpret_cast(_Ptr_container); - 001c4 48 8b 85 60 01 + 001ad 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001cf 48 89 08 mov QWORD PTR [rax], rcx + 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001b8 48 89 08 mov QWORD PTR [rax], rcx -; 153 : } +; 174 : } - 001d2 48 8d a5 48 01 + 001bb 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001d9 5f pop rdi - 001da 5d pop rbp - 001db c3 ret 0 + 001c2 5f pop rdi + 001c3 5d pop rbp + 001c4 c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z _TEXT SEGMENT _Bytes$ = 224 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z PROC ; std::_Default_allocate_traits::_Allocate, COMDAT -; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { +; 84 : void* _Allocate(const size_t _Bytes) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -19182,33 +18909,27 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 77 : return ::operator new(_Bytes); - - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 85 : return ::operator new(_Bytes); + + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00026 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new -; 78 : } +; 86 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ENDP ; std::_Default_allocate_traits::_Allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\exception ; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -19222,33 +18943,29 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E4152856_exception - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__89F7010A_exception + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 321 : _THROW(bad_array_new_length{}); - 0002a 48 8d 8d c8 00 + 0001b 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00031 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length - 00036 48 8d 15 00 00 + 00022 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length + 00027 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ - 0003d 48 8d 8d c8 00 + 0002e 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00044 e8 00 00 00 00 call _CxxThrowException + 00035 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 322 : } - 00049 48 8d a5 f8 00 + 0003a 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00041 5f pop rdi + 00042 5d pop rbp + 00043 c3 ret 0 ?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19265,32 +18982,26 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19307,29 +19018,23 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19344,24 +19049,18 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_array_new_length@std@@UEAA@XZ ENDP ; std::bad_array_new_length::~bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0bad_array_new_length@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19376,41 +19075,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 140 : : bad_alloc("bad array new length") - 00036 48 8d 15 00 00 + 0001f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ - 0003d 48 8b 8d e0 00 + 00026 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + 0002d e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc ; 141 : { - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 8d 0d 00 00 + 00039 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00057 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 89 08 mov QWORD PTR [rax], rcx ; 142 : } - 0005a 48 8b 85 e0 00 + 00043 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00061 48 8d a5 c8 00 + 0004a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 ??0bad_array_new_length@std@@QEAA@XZ ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19427,32 +19120,26 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19469,29 +19156,23 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19506,24 +19187,18 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_alloc@std@@UEAA@XZ ENDP ; std::bad_alloc::~bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z _TEXT SEGMENT this$ = 224 @@ -19540,43 +19215,37 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 129 : : exception(_Message, 1) - 0003b 41 b8 01 00 00 + 00024 41 b8 01 00 00 00 mov r8d, 1 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Message$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + 00038 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception ; 130 : { - 00054 48 8b 85 e0 00 + 0003d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005b 48 8d 0d 00 00 + 00044 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00062 48 89 08 mov QWORD PTR [rax], rcx + 0004b 48 89 08 mov QWORD PTR [rax], rcx ; 131 : } - 00065 48 8b 85 e0 00 + 0004e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006c 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19593,36 +19262,30 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gexception@std@@UEAAPEAXI@Z ENDP ; std::exception::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ?what@exception@std@@UEBAPEBDXZ _TEXT SEGMENT tv69 = 192 @@ -19638,48 +19301,42 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 95 : return _Data._What ? _Data._What : "Unknown exception"; - 00036 48 8b 85 f0 00 + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00042 74 14 je SHORT $LN3@what - 00044 48 8b 85 f0 00 + 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0002b 74 14 je SHORT $LN3@what + 0002d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004f 48 89 85 c0 00 + 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00038 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 00056 eb 0e jmp SHORT $LN4@what + 0003f eb 0e jmp SHORT $LN4@what $LN3@what: - 00058 48 8d 05 00 00 + 00041 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ - 0005f 48 89 85 c0 00 + 00048 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax $LN4@what: - 00066 48 8b 85 c0 00 + 0004f 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv69[rbp] ; 96 : } - 0006d 48 8d a5 d8 00 + 00056 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 ?what@exception@std@@UEBAPEBDXZ ENDP ; std::exception::what _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19694,41 +19351,34 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d 0d 00 00 + 00026 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00044 48 89 08 mov QWORD PTR [rax], rcx + 0002d 48 89 08 mov QWORD PTR [rax], rcx ; 90 : __std_exception_destroy(&_Data); - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 c0 08 add rax, 8 - 00052 48 8b c8 mov rcx, rax - 00055 e8 00 00 00 00 call __std_exception_destroy - 0005a 90 npad 1 + 00037 48 83 c0 08 add rax, 8 + 0003b 48 8b c8 mov rcx, rax + 0003e e8 00 00 00 00 call __std_exception_destroy ; 91 : } - 0005b 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 @@ -19745,55 +19395,49 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d 0d 00 00 + 0002b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00032 48 89 08 mov QWORD PTR [rax], rcx ; 71 : : _Data() - 0004c 48 8b 85 e0 00 + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 83 c0 08 add rax, 8 - 00057 48 8b f8 mov rdi, rax - 0005a 33 c0 xor eax, eax - 0005c b9 10 00 00 00 mov ecx, 16 - 00061 f3 aa rep stosb + 0003c 48 83 c0 08 add rax, 8 + 00040 48 8b f8 mov rdi, rax + 00043 33 c0 xor eax, eax + 00045 b9 10 00 00 00 mov ecx, 16 + 0004a f3 aa rep stosb ; 73 : __std_exception_copy(&_Other._Data, &_Data); - 00063 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 83 c0 08 add rax, 8 - 0006e 48 8b 8d e8 00 + 00053 48 83 c0 08 add rax, 8 + 00057 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Other$[rbp] - 00075 48 83 c1 08 add rcx, 8 - 00079 48 8b d0 mov rdx, rax - 0007c e8 00 00 00 00 call __std_exception_copy + 0005e 48 83 c1 08 add rcx, 8 + 00062 48 8b d0 mov rdx, rax + 00065 e8 00 00 00 00 call __std_exception_copy ; 74 : } - 00081 48 8b 85 e0 00 + 0006a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00088 48 8d a5 c8 00 + 00071 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0008f 5f pop rdi - 00090 5d pop rbp - 00091 c3 ret 0 + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 ??0exception@std@@QEAA@AEBV01@@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@QEBDH@Z _TEXT SEGMENT this$ = 224 @@ -19812,57 +19456,51 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 85 e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 8d 0d 00 00 + 00030 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00037 48 89 08 mov QWORD PTR [rax], rcx ; 65 : : _Data() - 00051 48 8b 85 e0 00 + 0003a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 83 c0 08 add rax, 8 - 0005c 48 8b f8 mov rdi, rax - 0005f 33 c0 xor eax, eax - 00061 b9 10 00 00 00 mov ecx, 16 - 00066 f3 aa rep stosb + 00041 48 83 c0 08 add rax, 8 + 00045 48 8b f8 mov rdi, rax + 00048 33 c0 xor eax, eax + 0004a b9 10 00 00 00 mov ecx, 16 + 0004f f3 aa rep stosb ; 67 : _Data._What = _Message; - 00068 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006f 48 8b 8d e8 00 + 00058 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Message$[rbp] - 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 68 : } - 0007a 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00081 48 8d a5 c8 00 + 0006a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\limits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\limits ; COMDAT ?max@?$numeric_limits@_J@std@@SA_JXZ _TEXT SEGMENT ?max@?$numeric_limits@_J@std@@SA_JXZ PROC ; std::numeric_limits<__int64>::max, COMDAT -; 645 : _NODISCARD static constexpr long long(max)() noexcept { +; 647 : _NODISCARD static constexpr long long(max)() noexcept { $LN3: 00000 40 55 push rbp @@ -19870,26 +19508,22 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F2870A2C_limits - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__44860E64_limits + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 646 : return LLONG_MAX; +; 648 : return LLONG_MAX; - 0002a 48 b8 ff ff ff + 0001b 48 b8 ff ff ff ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 647 : } +; 649 : } - 00034 48 8d a5 c8 00 + 00025 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 0002c 5f pop rdi + 0002d 5d pop rbp + 0002e c3 ret 0 ?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19912,36 +19546,30 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19968,75 +19596,75 @@ $LN3: 00016 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 78 + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 1e 00 00 00 mov ecx, 30 + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 78 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 28 01 + 00042 48 33 c5 xor rax, rbp + 00045 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004a 48 8d 0d 00 00 + 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00056 48 8d 85 58 01 + 00058 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00065 48 89 85 18 01 + 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00067 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006c b9 01 00 00 00 mov ecx, 1 - 00071 ff 15 00 00 00 + 0006e b9 01 00 00 00 mov ecx, 1 + 00073 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00077 48 89 85 20 01 + 00079 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 0007e 4c 8b 8d 18 01 + 00080 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00085 45 33 c0 xor r8d, r8d - 00088 48 8b 95 50 01 + 00087 45 33 c0 xor r8d, r8d + 0008a 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 0008f 48 8b 8d 20 01 + 00091 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00096 e8 00 00 00 00 call _vfprintf_l - 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00098 e8 00 00 00 00 call _vfprintf_l + 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 0009e 48 c7 45 28 00 + 000a0 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000a9 8b f8 mov edi, eax - 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000af 48 8d 15 00 00 + 000ab 8b f8 mov edi, eax + 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b6 e8 00 00 00 00 call _RTC_CheckStackVars - 000bb 8b c7 mov eax, edi - 000bd 48 8b 8d 28 01 + 000b8 e8 00 00 00 00 call _RTC_CheckStackVars + 000bd 8b c7 mov eax, edi + 000bf 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c4 48 33 cd xor rcx, rbp - 000c7 e8 00 00 00 00 call __security_check_cookie - 000cc 48 8d a5 38 01 + 000c6 48 33 cd xor rcx, rbp + 000c9 e8 00 00 00 00 call __security_check_cookie + 000ce 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d3 5f pop rdi - 000d4 5d pop rbp - 000d5 c3 ret 0 + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20061,39 +19689,33 @@ $LN3: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 + 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 00045 e8 00 00 00 00 call __local_stdio_printf_options - 0004a 48 8b 8d f8 00 + 0002e e8 00 00 00 00 call __local_stdio_printf_options + 00033 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00056 4c 8b 8d f0 00 + 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0003f 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 0005d 4c 8b 85 e8 00 + 00046 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 00064 48 8b 95 e0 00 + 0004d 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 00074 48 8d a5 c8 00 + 0005d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007b 5f pop rdi - 0007c 5d pop rbp - 0007d c3 ret 0 + 00064 5f pop rdi + 00065 5d pop rbp + 00066 c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20110,31 +19732,27 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 + 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0002a 48 8d 05 00 00 + 0001b 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } - 00031 48 8d a5 c8 00 + 00022 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_new.h ; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT _Size$ = 224 @@ -20151,33 +19769,27 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__02E23235_vcruntime_new@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 168 : (void)_Size; ; 169 : return _Where; - 0003b 48 8b 85 e8 00 + 00024 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Where$[rbp] ; 170 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -20194,25 +19806,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -20227,25 +19832,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -20260,25 +19858,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -20291,21 +19882,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Nop.cod b/CodeVirtualizer/x64/Debug/Nop.cod index d2f4e40..62c8f23 100644 --- a/CodeVirtualizer/x64/Debug/Nop.cod +++ b/CodeVirtualizer/x64/Debug/Nop.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__52D0D2F0_Nop@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -96,9 +97,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop PUBLIC ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcEmitNopGroup PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -120,7 +121,6 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -128,67 +128,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD imagerel $LN6 - DD imagerel $LN6+221 + DD imagerel $LN6+223 DD imagerel $unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ pdata ENDS ; COMDAT pdata @@ -200,7 +200,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+130 + DD imagerel $LN6+108 DD imagerel $unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -221,29 +221,39 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052d01H +$unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 02aH + DB 0c6H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA DD 031001H @@ -255,7 +265,7 @@ xdata SEGMENT $ip2state$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 06H DB 00H DB 00H - DB 0a0H + DB 0a4H DB 02H DB 09eH DB 00H @@ -274,7 +284,7 @@ $cppxdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035052f19H +$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035053119H DD 010a330fH DD 070030031H DD 05002H @@ -303,35 +313,40 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -376,90 +391,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -469,7 +432,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT Count$ = 224 @@ -486,73 +449,67 @@ $LN6: 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 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : if (Count < 1) - 00039 83 bd e0 00 00 + 00023 83 bd e0 00 00 00 01 cmp DWORD PTR Count$[rbp], 1 - 00040 73 04 jae SHORT $LN4@NcEmitNopG + 0002a 73 04 jae SHORT $LN4@NcEmitNopG ; 14 : return FALSE; - 00042 33 c0 xor eax, eax - 00044 eb 32 jmp SHORT $LN1@NcEmitNopG + 0002c 33 c0 xor eax, eax + 0002e eb 32 jmp SHORT $LN1@NcEmitNopG $LN4@NcEmitNopG: $LN2@NcEmitNopG: ; 15 : while (Count) - 00046 83 bd e0 00 00 + 00030 83 bd e0 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0004d 74 24 je SHORT $LN3@NcEmitNopG + 00037 74 24 je SHORT $LN3@NcEmitNopG ; 16 : { ; 17 : NcAppendToBlock(Block, NcEmitNop()); - 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 + 00039 e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop + 0003e 48 8b d0 mov rdx, rax + 00041 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 + 00048 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 18 : Count--; - 00063 8b 85 e0 00 00 + 0004d 8b 85 e0 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00069 ff c8 dec eax - 0006b 89 85 e0 00 00 + 00053 ff c8 dec eax + 00055 89 85 e0 00 00 00 mov DWORD PTR Count$[rbp], eax ; 19 : } - 00071 eb d3 jmp SHORT $LN2@NcEmitNopG + 0005b eb d3 jmp SHORT $LN2@NcEmitNopG $LN3@NcEmitNopG: ; 20 : return TRUE; - 00073 b8 01 00 00 00 mov eax, 1 + 0005d b8 01 00 00 00 mov eax, 1 $LN1@NcEmitNopG: ; 21 : } - 00078 48 8d a5 c8 00 + 00062 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 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcEmitNopGroup _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ _TEXT SEGMENT RawData$ = 4 @@ -571,79 +528,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 8b fc mov rdi, rsp - 00012 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8b 05 00 00 + 0000f 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00014 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001e f3 ab rep stosd + 00020 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00025 48 33 c5 xor rax, rbp - 00028 48 89 85 40 01 + 00027 48 33 c5 xor rax, rbp + 0002a 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00031 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x90 }; - 0003b c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H + 0003d c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H ; 6 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1, TRUE); - 0003f b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00044 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00049 48 89 85 28 01 + 00041 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00046 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0004b 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 00050 48 83 bd 28 01 + 00052 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00058 74 2c je SHORT $LN3@NcEmitNop - 0005a c7 44 24 20 01 + 0005a 74 2c je SHORT $LN3@NcEmitNop + 0005c c7 44 24 20 01 00 00 00 mov DWORD PTR [rsp+32], 1 - 00062 41 b9 01 00 00 + 00064 41 b9 01 00 00 00 mov r9d, 1 - 00068 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0006c ba 04 00 00 00 mov edx, 4 - 00071 48 8b 8d 28 01 + 0006a 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0006e ba 04 00 00 00 mov edx, 4 + 00073 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00078 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0007d 48 89 85 38 01 + 0007a e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0007f 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00084 eb 0b jmp SHORT $LN4@NcEmitNop + 00086 eb 0b jmp SHORT $LN4@NcEmitNop $LN3@NcEmitNop: - 00086 48 c7 85 38 01 + 00088 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@NcEmitNop: - 00091 48 8b 85 38 01 + 00093 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 00098 48 89 85 08 01 + 0009a 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 0009f 48 8b 85 08 01 + 000a1 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000a6 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000a8 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 7 : //XedDecode(&Link->XedInstruction, Link->RawData, 1); ; 8 : return Link; - 000aa 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000ac 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] ; 9 : } - 000ae 48 8b f8 mov rdi, rax - 000b1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000b5 48 8d 15 00 00 + 000b0 48 8b f8 mov rdi, rax + 000b3 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000b7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcFrameData - 000bc e8 00 00 00 00 call _RTC_CheckStackVars - 000c1 48 8b c7 mov rax, rdi - 000c4 48 8b 8d 40 01 + 000be e8 00 00 00 00 call _RTC_CheckStackVars + 000c3 48 8b c7 mov rax, rdi + 000c6 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000cb 48 33 cd xor rcx, rbp - 000ce e8 00 00 00 00 call __security_check_cookie - 000d3 48 8d a5 58 01 + 000cd 48 33 cd xor rcx, rbp + 000d0 e8 00 00 00 00 call __security_check_cookie + 000d5 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 000da 5f pop rdi - 000db 5d pop rbp - 000dc c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ENDP ; NcEmitNop _TEXT ENDS ; COMDAT text$x @@ -698,7 +655,7 @@ __$ArrayPad$ = 320 ?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA ENDP ; `NcEmitNop'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -709,7 +666,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -721,147 +678,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -872,7 +823,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -884,147 +835,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1035,7 +980,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1046,104 +991,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1160,79 +1099,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1251,7 +1184,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1262,251 +1195,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1529,40 +1462,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1579,25 +1506,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1612,25 +1532,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1645,25 +1558,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1676,21 +1582,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Obfuscator.cod b/CodeVirtualizer/x64/Debug/Obfuscator.cod index 12455f6..f39d5aa 100644 --- a/CodeVirtualizer/x64/Debug/Obfuscator.cod +++ b/CodeVirtualizer/x64/Debug/Obfuscator.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,64 +33,71 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__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 +__A4C33DB6_Obfuscator@cpp DB 01H +__092B7E84_vector DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC __local_stdio_printf_options +PUBLIC _vfprintf_l +PUBLIC printf 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 @@ -103,6 +110,7 @@ PUBLIC ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; 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 ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' PUBLIC ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 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 @@ -112,16 +120,18 @@ PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> PUBLIC ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > PUBLIC ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate PUBLIC __JustMyCode_Default +PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete @@ -134,6 +144,8 @@ 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 __imp___acrt_iob_func:PROC +EXTRN __imp___stdio_common_vfprintf:PROC EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc EXTRN _Mbrtowc:PROC EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC @@ -142,7 +154,7 @@ 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 ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcCountInstructions EXTRN ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcGenUnusedLabelId EXTRN ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcInsertBlockAfter EXTRN ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcInsertBlockBefore @@ -161,124 +173,164 @@ EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC 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 pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$__local_stdio_printf_options DD imagerel $LN3 + DD imagerel $LN3+44 + 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 $unwind$_vfprintf_l +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$printf DD imagerel $LN3 + DD imagerel $LN3+216 + DD imagerel $unwind$printf +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+476 + DD imagerel $LN21+453 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 - DD imagerel $LN7+233 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+66 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 + DD imagerel $LN6+123 + DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+151 + DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+202 + DD imagerel $LN3+203 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+280 + DD imagerel $LN4+257 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+56 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN34 - DD imagerel $LN34+1631 +$pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+82 + DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN33 + DD imagerel $LN33+1478 DD imagerel $unwind$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z pdata ENDS ; COMDAT pdata @@ -301,56 +353,44 @@ $pdata$?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DD imagerel ?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 - DD imagerel $unwind$?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DD imagerel ?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 - DD imagerel $unwind$?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@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 $LN3+53 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+84 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+65 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+121 + DD imagerel $LN4+98 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+97 + DD imagerel $LN3+74 DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -371,21 +411,26 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ DB 'Depth: %u,' + DB ' InstCount: %u', 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.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ CONST SEGMENT @@ -404,9 +449,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -419,16 +464,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H + DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -440,11 +485,11 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H @@ -462,7 +507,7 @@ $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@Y xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -482,7 +527,7 @@ $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -491,96 +536,52 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H - DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H - DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H - DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H - DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H - DD 0700c4210H - 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 040H + DW 05adH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H @@ -601,10 +602,10 @@ $unwind$?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 016H +$ip2state$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 0eH DB 00H DB 00H - DB 01H, 0eH + DB 0d5H, 0fH DB 02H DB 01aH DB 04H @@ -616,28 +617,16 @@ $ip2state$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 016 DB 06H DB 0c8H DB 00H - DB 0b0H - DB 08H - DB 01aH - DB 0aH - DB '5', 03H - DB 08H - DB 01aH - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 0aH +$stateUnwindMap$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 06H DB 0eH DD imagerel ?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DB 02eH DD imagerel ?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DB 05eH DD imagerel ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DB 086H - DD imagerel ?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DB 02eH - DD imagerel ?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -647,13 +636,13 @@ $cppxdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 028 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD 025054519H +$unwind$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD 025054719H DD 0118231dH - DD 07011008dH + DD 070110081H DD 05010H DD imagerel __GSHandlerCheck_EH4 DD imagerel $cppxdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z - DD 0452H + DD 03f2H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -684,31 +673,8 @@ CONST SEGMENT DB 063H DB 06bH DB 00H - ORG $+6 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$3 DB 04eH ; ObfObfuscate1 - DB 06fH - DB 074H - DB 054H - DB 061H - DB 06bH - DB 065H - DB 06eH - DB 00H - ORG $+3 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$4 DB 054H ; ObfObfuscate1 - DB 061H - DB 06bH - DB 065H - DB 06eH - DB 00H - ORG $+6 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc DD 0288H ; ObfObfuscate1 - DD 030H - DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$4 - DD 0238H - DD 030H - DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$3 - DD 01e8H + ORG $+14 +?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc DD 01e8H ; ObfObfuscate1 DD 030H DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$2 DD 0198H @@ -717,57 +683,38 @@ CONST SEGMENT DD 0148H DD 030H DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$0 - ORG $+240 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData DD 05H ; ObfObfuscate1 + ORG $+144 +?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData DD 03H ; ObfObfuscate1 DD 00H DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H - DD 010e2313H - DD 07007001dH - DD 05006H +$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025051701H + DD 01122317H + DD 0700b001dH + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_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 +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -782,7 +729,7 @@ $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H DD 010e2313H DD 07007002fH DD 05006H @@ -791,31 +738,24 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 0b2H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ - DD 013bH + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -834,42 +774,47 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -912,137 +857,140 @@ CONST SEGMENT DD 00H DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H +$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H DD 010e2313H - DD 070070025H + DD 070070021H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ - DD 011bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked DD 04H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked DD 00H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H + DD 010e2313H + DD 070070021H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 045H + DB 0bfH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H +$unwind$printf DD 025054c19H + DD 011d2322H + DD 07016002bH + DD 05015H + DD imagerel __GSHandlerCheck + DD 0148H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +printf$rtcName$0 DB 05fH + DB 041H + DB 072H + DB 067H + DB 04cH + DB 069H + DB 073H + DB 074H DB 00H + ORG $+7 +printf$rtcVarDesc DD 048H + DD 08H + DQ FLAT:printf$rtcName$0 + ORG $+48 +printf$rtcFrameData DD 01H + DD 00H + DQ FLAT:printf$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$_vfprintf_l DD 035052201H + DD 011d3322H + DD 07016001fH + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +$unwind$__local_stdio_printf_options DD 025050f01H + DD 010a230fH + DD 07003001dH + DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -1052,15 +1000,15 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z _TEXT SEGMENT -__formal$ = 224 +_Al$ = 224 _Ptr$ = 232 _Count$ = 240 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT -; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { +; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1071,44 +1019,46 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 688 : // no overflow check on the following multiply; we assume _Allocate did that check -; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00040 48 6b 85 f0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 694 : // no overflow check on the following multiply; we assume _Allocate did that check +; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 696 : if (_STD is_constant_evaluated()) { +; 697 : _Al.deallocate(_Ptr, _Count); +; 698 : } else +; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 700 : { +; 701 : (void) _Al; +; 702 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00029 48 6b 85 f0 00 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00048 48 8b d0 mov rdx, rax - 0004b 48 8b 8d e8 00 + 00031 48 8b d0 mov rdx, rax + 00034 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 690 : } +; 703 : } +; 704 : } - 00057 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT -; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1118,52 +1068,46 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // deallocate a plain pointer using an allocator -; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; -; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 0003b 41 b8 01 00 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 986 : // deallocate a plain pointer using an allocator +; 987 : using _Alloc_traits = allocator_traits<_Alloc>; +; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 00024 41 b8 01 00 00 00 mov r8d, 1 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate - 00054 90 npad 1 + 00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 0003d 90 npad 1 -; 1003 : } else { -; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 1006 : } -; 1007 : } +; 990 : } else { +; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 993 : } +; 994 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z _TEXT SEGMENT _Ptr$ = 224 _Bytes$ = 232 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1173,57 +1117,57 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 215 : #if defined(_M_IX86) || defined(_M_X64) -; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0003b 48 81 bd e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 254 : if (_STD is_constant_evaluated()) { +; 255 : ::operator delete(_Ptr); +; 256 : } else +; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 258 : { +; 259 : #if defined(_M_IX86) || defined(_M_X64) +; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00024 48 81 bd e8 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00046 72 13 jb SHORT $LN2@Deallocate + 0002f 72 13 jb SHORT $LN2@Deallocate -; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00048 48 8d 95 e8 00 + 00031 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 0004f 48 8d 8d e0 00 + 00038 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 218 : } -; 219 : #endif // defined(_M_IX86) || defined(_M_X64) -; 220 : -; 221 : ::operator delete(_Ptr, _Bytes); +; 262 : } +; 263 : #endif // defined(_M_IX86) || defined(_M_X64) +; 264 : ::operator delete(_Ptr, _Bytes); - 0005b 48 8b 95 e8 00 + 00044 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 00062 48 8b 8d e0 00 + 0004b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 0006e 90 npad 1 + 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00057 90 npad 1 -; 222 : } +; 265 : } +; 266 : } - 0006f 48 8d a5 c8 00 + 00058 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _First$ = 224 @@ -1231,7 +1175,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1242,42 +1186,35 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - -; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 957 : using _Ty = typename _Alloc::value_type; -; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 959 : for (; _First != _Last; ++_First) { -; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 961 : } -; 962 : } -; 963 : } - - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 947 : using _Ty = typename _Alloc::value_type; +; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 949 : for (; _First != _Last; ++_First) { +; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 951 : } +; 952 : } +; 953 : } + + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT -; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1287,39 +1224,32 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1028 : using _Ty = typename _Alloc::value_type; -; 1029 : _Ptr->~_Ty(); -; 1030 : _Deallocate_plain(_Al, _Ptr); - - 0003b 48 8b 95 e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1000 : using _Ty = typename _Alloc::value_type; +; 1001 : _Ptr->~_Ty(); +; 1002 : _Deallocate_plain(_Al, _Ptr); + + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > - 0004e 90 npad 1 + 00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > -; 1031 : } +; 1003 : } - 0004f 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility ; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT _Old_val$ = 8 @@ -1327,7 +1257,7 @@ _Val$ = 256 _New_val$ = 264 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1337,55 +1267,49 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 598 : // assign _New_val to _Val, return previous _Val -; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 615 : // assign _New_val to _Val, return previous _Val +; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 0003b 48 8b 85 00 01 + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 600 : _Val = static_cast<_Other&&>(_New_val); +; 617 : _Val = static_cast<_Other&&>(_New_val); - 00049 48 8b 85 00 01 + 00032 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00050 48 8b 8d 08 01 + 00039 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00057 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005a 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 8b 09 mov rcx, QWORD PTR [rcx] + 00043 48 89 08 mov QWORD PTR [rax], rcx -; 601 : return _Old_val; +; 618 : return _Old_val; - 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 602 : } +; 619 : } - 00061 48 8d a5 e8 00 + 0004a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1395,818 +1319,785 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z _TEXT SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z PROC ; ObfObfuscate1, COMDAT ; 7 : { -$LN34: +$LN33: 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 68 04 - 00 00 sub rsp, 1128 ; 00000468H + 00011 48 81 ec 08 04 + 00 00 sub rsp, 1032 ; 00000408H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 1a 01 00 00 mov ecx, 282 ; 0000011aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 88 - 04 00 00 mov rcx, QWORD PTR [rsp+1160] - 00034 48 8b 05 00 00 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 9a 00 00 00 mov ecx, 154 ; 0000009aH + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 28 + 04 00 00 mov rcx, QWORD PTR [rsp+1064] + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 30 04 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 d0 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 8 : ULONG InstructionCount = NcCountInstructions(Block); +; 8 : if (Depth > Obf->MaxDepth) - 00051 48 8b 8d 68 04 + 00053 48 8b 85 00 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 0005a 8b 40 18 mov eax, DWORD PTR [rax+24] + 0005d 39 85 10 04 00 + 00 cmp DWORD PTR Depth$[rbp], eax + 00063 76 05 jbe SHORT $LN8@ObfObfusca + +; 9 : return; + + 00065 e9 33 05 00 00 jmp $LN1@ObfObfusca +$LN8@ObfObfusca: + +; 10 : +; 11 : ULONG InstructionCount = NcCountInstructions(Block, FALSE); + + 0006a 33 d2 xor edx, edx + 0006c 48 8b 8d 08 04 00 00 mov rcx, QWORD PTR Block$[rbp] - 00058 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCountInstructions - 0005d 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax + 00073 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ; NcCountInstructions + 00078 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax + +; 12 : printf("Depth: %u, InstCount: %u\n", Depth, InstructionCount); -; 9 : if (InstructionCount <= Obf->MinSizeForOpaqueBranch) + 0007b 44 8b 45 04 mov r8d, DWORD PTR InstructionCount$[rbp] + 0007f 8b 95 10 04 00 + 00 mov edx, DWORD PTR Depth$[rbp] + 00085 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ + 0008c e8 00 00 00 00 call printf - 00060 48 8b 85 60 04 +; 13 : if (InstructionCount <= Obf->MinSizeForOpaqueBranch) + + 00091 48 8b 85 00 04 00 00 mov rax, QWORD PTR Obf$[rbp] - 00067 8b 40 04 mov eax, DWORD PTR [rax+4] - 0006a 39 45 04 cmp DWORD PTR InstructionCount$[rbp], eax - 0006d 0f 87 45 01 00 - 00 ja $LN8@ObfObfusca + 00098 8b 40 04 mov eax, DWORD PTR [rax+4] + 0009b 39 45 04 cmp DWORD PTR InstructionCount$[rbp], eax + 0009e 0f 87 e8 01 00 + 00 ja $LN9@ObfObfusca -; 10 : { -; 11 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 14 : { +; 15 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) - 00073 48 8b 85 68 04 + 000a4 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 89 45 28 mov QWORD PTR T$8[rbp], rax + 000ab 48 8b 00 mov rax, QWORD PTR [rax] + 000ae 48 89 45 28 mov QWORD PTR T$6[rbp], rax $LN2@ObfObfusca: - 00081 48 83 7d 28 00 cmp QWORD PTR T$8[rbp], 0 - 00086 0f 84 27 01 00 + 000b2 48 83 7d 28 00 cmp QWORD PTR T$6[rbp], 0 + 000b7 0f 84 ca 01 00 00 je $LN3@ObfObfusca - 0008c 48 8b 85 68 04 + 000bd 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 00093 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 39 45 28 cmp QWORD PTR T$8[rbp], rax - 0009e 0f 84 0f 01 00 + 000c4 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000c8 48 8b 00 mov rax, QWORD PTR [rax] + 000cb 48 39 45 28 cmp QWORD PTR T$6[rbp], rax + 000cf 0f 84 b2 01 00 00 je $LN3@ObfObfusca -; 12 : { -; 13 : if ((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) || (T->Flags & CODE_FLAG_IS_REL_JMP)) - - 000a4 48 8b 45 28 mov rax, QWORD PTR T$8[rbp] - 000a8 8b 40 18 mov eax, DWORD PTR [rax+24] - 000ab 83 e0 01 and eax, 1 - 000ae 85 c0 test eax, eax - 000b0 75 1c jne SHORT $LN11@ObfObfusca - 000b2 48 8b 45 28 mov rax, QWORD PTR T$8[rbp] - 000b6 8b 40 18 mov eax, DWORD PTR [rax+24] - 000b9 83 e0 08 and eax, 8 - 000bc 85 c0 test eax, eax - 000be 75 0e jne SHORT $LN11@ObfObfusca - 000c0 48 8b 45 28 mov rax, QWORD PTR T$8[rbp] - 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] - 000c7 83 e0 02 and eax, 2 - 000ca 85 c0 test eax, eax - 000cc 74 0d je SHORT $LN10@ObfObfusca -$LN11@ObfObfusca: +; 16 : { +; 17 : if ((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) || (T->Flags & CODE_FLAG_IS_REL_JMP)) + + 000d5 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 000d9 8b 40 18 mov eax, DWORD PTR [rax+24] + 000dc 83 e0 01 and eax, 1 + 000df 85 c0 test eax, eax + 000e1 75 1c jne SHORT $LN12@ObfObfusca + 000e3 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 000e7 8b 40 18 mov eax, DWORD PTR [rax+24] + 000ea 83 e0 08 and eax, 8 + 000ed 85 c0 test eax, eax + 000ef 75 0e jne SHORT $LN12@ObfObfusca + 000f1 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 000f5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000f8 83 e0 02 and eax, 2 + 000fb 85 c0 test eax, eax + 000fd 74 0d je SHORT $LN11@ObfObfusca +$LN12@ObfObfusca: -; 14 : { -; 15 : T = T->Next; +; 18 : { +; 19 : T = T->Next; - 000ce 48 8b 45 28 mov rax, QWORD PTR T$8[rbp] - 000d2 48 8b 00 mov rax, QWORD PTR [rax] - 000d5 48 89 45 28 mov QWORD PTR T$8[rbp], rax + 000ff 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 00103 48 8b 00 mov rax, QWORD PTR [rax] + 00106 48 89 45 28 mov QWORD PTR T$6[rbp], rax -; 16 : continue; +; 20 : continue; - 000d9 eb a6 jmp SHORT $LN2@ObfObfusca -$LN10@ObfObfusca: + 0010a eb a6 jmp SHORT $LN2@ObfObfusca +$LN11@ObfObfusca: -; 17 : } -; 18 : -; 19 : PNATIVE_CODE_LINK RealNext = T->Next; +; 21 : } +; 22 : +; 23 : PNATIVE_CODE_LINK RealNext = T->Next; - 000db 48 8b 45 28 mov rax, QWORD PTR T$8[rbp] - 000df 48 8b 00 mov rax, QWORD PTR [rax] - 000e2 48 89 45 48 mov QWORD PTR RealNext$9[rbp], rax + 0010c 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 00110 48 8b 00 mov rax, QWORD PTR [rax] + 00113 48 89 45 48 mov QWORD PTR RealNext$7[rbp], rax -; 20 : -; 21 : if ((rand() % 100) <= Obf->InstructionMutateChance) +; 24 : +; 25 : if ((rand() % 100) <= Obf->InstructionMutateChance) - 000e6 ff 15 00 00 00 + 00117 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 000ec 99 cdq - 000ed b9 64 00 00 00 mov ecx, 100 ; 00000064H - 000f2 f7 f9 idiv ecx - 000f4 8b c2 mov eax, edx - 000f6 48 8b 8d 60 04 + 0011d 99 cdq + 0011e b9 64 00 00 00 mov ecx, 100 ; 00000064H + 00123 f7 f9 idiv ecx + 00125 8b c2 mov eax, edx + 00127 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR Obf$[rbp] - 000fd 0f b6 49 09 movzx ecx, BYTE PTR [rcx+9] - 00101 3b c1 cmp eax, ecx - 00103 0f 8f 9d 00 00 - 00 jg $LN12@ObfObfusca + 0012e 0f b6 49 09 movzx ecx, BYTE PTR [rcx+9] + 00132 3b c1 cmp eax, ecx + 00134 0f 8f 40 01 00 + 00 jg $LN13@ObfObfusca -; 22 : { -; 23 : PNATIVE_CODE_BLOCK PreOp = JitEmitPreRipMov(T); +; 26 : { +; 27 : PNATIVE_CODE_BLOCK PreOp = JitEmitPreRipMov(T); - 00109 33 d2 xor edx, edx - 0010b 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 0010f e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov - 00114 48 89 45 68 mov QWORD PTR PreOp$10[rbp], rax + 0013a 33 d2 xor edx, edx + 0013c 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 00140 e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov + 00145 48 89 45 68 mov QWORD PTR PreOp$8[rbp], rax -; 24 : PNATIVE_CODE_BLOCK PostOp = JitEmitPostRipMov(T); +; 28 : PNATIVE_CODE_BLOCK PostOp = JitEmitPostRipMov(T); - 00118 33 d2 xor edx, edx - 0011a 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 0011e e8 00 00 00 00 call ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov - 00123 48 89 85 88 00 - 00 00 mov QWORD PTR PostOp$11[rbp], rax + 00149 33 d2 xor edx, edx + 0014b 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 0014f e8 00 00 00 00 call ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov + 00154 48 89 85 88 00 + 00 00 mov QWORD PTR PostOp$9[rbp], rax -; 25 : -; 26 : NcInsertBlockBefore(T, PreOp, FALSE); +; 29 : +; 30 : if (T->Prev) - 0012a 45 33 c0 xor r8d, r8d - 0012d 48 8b 55 68 mov rdx, QWORD PTR PreOp$10[rbp] - 00131 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 00135 e8 00 00 00 00 call ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockBefore + 0015b 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 0015f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00164 74 12 je SHORT $LN14@ObfObfusca -; 27 : NcInsertBlockAfter(T, PostOp, FALSE); +; 31 : T->Prev->Next = PreOp->Start; + + 00166 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 0016a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0016e 48 8b 4d 68 mov rcx, QWORD PTR PreOp$8[rbp] + 00172 48 8b 09 mov rcx, QWORD PTR [rcx] + 00175 48 89 08 mov QWORD PTR [rax], rcx +$LN14@ObfObfusca: - 0013a 45 33 c0 xor r8d, r8d - 0013d 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR PostOp$11[rbp] - 00144 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 00148 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter +; 32 : PreOp->End->Next = T; + + 00178 48 8b 45 68 mov rax, QWORD PTR PreOp$8[rbp] + 0017c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00180 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 00184 48 89 08 mov QWORD PTR [rax], rcx + +; 33 : +; 34 : +; 35 : +; 36 : +; 37 : NcInsertBlockBefore(T, PreOp, FALSE); -; 28 : -; 29 : if (Block->Start == T) + 00187 45 33 c0 xor r8d, r8d + 0018a 48 8b 55 68 mov rdx, QWORD PTR PreOp$8[rbp] + 0018e 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 00192 e8 00 00 00 00 call ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockBefore - 0014d 48 8b 85 68 04 +; 38 : NcInsertBlockAfter(T, PostOp, FALSE); + + 00197 45 33 c0 xor r8d, r8d + 0019a 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR PostOp$9[rbp] + 001a1 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 001a5 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + +; 39 : +; 40 : if (Block->Start == T) + + 001aa 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 00154 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 00158 48 39 08 cmp QWORD PTR [rax], rcx - 0015b 75 11 jne SHORT $LN13@ObfObfusca + 001b1 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 001b5 48 39 08 cmp QWORD PTR [rax], rcx + 001b8 75 11 jne SHORT $LN15@ObfObfusca -; 30 : Block->Start = PreOp->Start; +; 41 : Block->Start = PreOp->Start; - 0015d 48 8b 85 68 04 + 001ba 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 00164 48 8b 4d 68 mov rcx, QWORD PTR PreOp$10[rbp] - 00168 48 8b 09 mov rcx, QWORD PTR [rcx] - 0016b 48 89 08 mov QWORD PTR [rax], rcx -$LN13@ObfObfusca: + 001c1 48 8b 4d 68 mov rcx, QWORD PTR PreOp$8[rbp] + 001c5 48 8b 09 mov rcx, QWORD PTR [rcx] + 001c8 48 89 08 mov QWORD PTR [rax], rcx +$LN15@ObfObfusca: -; 31 : if (Block->End == T) +; 42 : if (Block->End == T) - 0016e 48 8b 85 68 04 + 001cb 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 00175 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 00179 48 39 48 08 cmp QWORD PTR [rax+8], rcx - 0017d 75 16 jne SHORT $LN14@ObfObfusca + 001d2 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 001d6 48 39 48 08 cmp QWORD PTR [rax+8], rcx + 001da 75 16 jne SHORT $LN16@ObfObfusca -; 32 : Block->End = PostOp->End; +; 43 : Block->End = PostOp->End; - 0017f 48 8b 85 68 04 + 001dc 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 00186 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR PostOp$11[rbp] - 0018d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00191 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN14@ObfObfusca: + 001e3 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR PostOp$9[rbp] + 001ea 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 001ee 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN16@ObfObfusca: -; 33 : -; 34 : //for (ULONG i = 0; i < T->RawDataSize; i++) -; 35 : // T->RawData[i] = (UCHAR)(rand() % 255); -; 36 : -; 37 : T->Flags |= CODE_FLAG_DO_NOT_DIVIDE; +; 44 : +; 45 : delete PreOp; + + 001f2 48 8b 45 68 mov rax, QWORD PTR PreOp$8[rbp] + 001f6 48 89 85 98 03 + 00 00 mov QWORD PTR $T17[rbp], rax + 001fd 48 83 bd 98 03 + 00 00 00 cmp QWORD PTR $T17[rbp], 0 + 00205 74 1a je SHORT $LN24@ObfObfusca + 00207 ba 01 00 00 00 mov edx, 1 + 0020c 48 8b 8d 98 03 + 00 00 mov rcx, QWORD PTR $T17[rbp] + 00213 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00218 48 89 85 c8 03 + 00 00 mov QWORD PTR tv158[rbp], rax + 0021f eb 0b jmp SHORT $LN25@ObfObfusca +$LN24@ObfObfusca: + 00221 48 c7 85 c8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv158[rbp], 0 +$LN25@ObfObfusca: - 00195 48 8b 45 28 mov rax, QWORD PTR T$8[rbp] - 00199 8b 40 18 mov eax, DWORD PTR [rax+24] - 0019c 83 c8 08 or eax, 8 - 0019f 48 8b 4d 28 mov rcx, QWORD PTR T$8[rbp] - 001a3 89 41 18 mov DWORD PTR [rcx+24], eax -$LN12@ObfObfusca: +; 46 : delete PostOp; + + 0022c 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR PostOp$9[rbp] + 00233 48 89 85 b8 03 + 00 00 mov QWORD PTR $T18[rbp], rax + 0023a 48 83 bd b8 03 + 00 00 00 cmp QWORD PTR $T18[rbp], 0 + 00242 74 1a je SHORT $LN26@ObfObfusca + 00244 ba 01 00 00 00 mov edx, 1 + 00249 48 8b 8d b8 03 + 00 00 mov rcx, QWORD PTR $T18[rbp] + 00250 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00255 48 89 85 c8 03 + 00 00 mov QWORD PTR tv163[rbp], rax + 0025c eb 0b jmp SHORT $LN27@ObfObfusca +$LN26@ObfObfusca: + 0025e 48 c7 85 c8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv163[rbp], 0 +$LN27@ObfObfusca: + +; 47 : +; 48 : //for (ULONG i = 0; i < T->RawDataSize; i++) +; 49 : // T->RawData[i] = (UCHAR)(rand() % 255); +; 50 : +; 51 : T->Flags |= CODE_FLAG_DO_NOT_DIVIDE; + + 00269 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] + 0026d 8b 40 18 mov eax, DWORD PTR [rax+24] + 00270 83 c8 08 or eax, 8 + 00273 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] + 00277 89 41 18 mov DWORD PTR [rcx+24], eax +$LN13@ObfObfusca: -; 38 : -; 39 : } -; 40 : -; 41 : T = RealNext; +; 52 : +; 53 : } +; 54 : +; 55 : T = RealNext; - 001a6 48 8b 45 48 mov rax, QWORD PTR RealNext$9[rbp] - 001aa 48 89 45 28 mov QWORD PTR T$8[rbp], rax + 0027a 48 8b 45 48 mov rax, QWORD PTR RealNext$7[rbp] + 0027e 48 89 45 28 mov QWORD PTR T$6[rbp], rax -; 42 : } +; 56 : } - 001ae e9 ce fe ff ff jmp $LN2@ObfObfusca + 00282 e9 2b fe ff ff jmp $LN2@ObfObfusca $LN3@ObfObfusca: -; 43 : } +; 57 : } - 001b3 e9 7e 04 00 00 jmp $LN9@ObfObfusca -$LN8@ObfObfusca: + 00287 e9 11 03 00 00 jmp $LN1@ObfObfusca +$LN9@ObfObfusca: -; 44 : else -; 45 : { -; 46 : ULONG TargetCount = max(Obf->MinSizeForOpaqueBranch, InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); +; 58 : else +; 59 : { +; 60 : //ULONG TargetCount = max(Obf->MinSizeForOpaqueBranch, InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); +; 61 : ULONG TargetCount = (InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); - 001b8 48 8b 85 60 04 + 0028c 48 8b 85 00 04 00 00 mov rax, QWORD PTR Obf$[rbp] - 001bf 8b 40 0c mov eax, DWORD PTR [rax+12] - 001c2 83 e0 04 and eax, 4 - 001c5 85 c0 test eax, eax - 001c7 74 1e je SHORT $LN23@ObfObfusca - 001c9 ff 15 00 00 00 + 00293 8b 40 0c mov eax, DWORD PTR [rax+12] + 00296 83 e0 04 and eax, 4 + 00299 85 c0 test eax, eax + 0029b 74 1e je SHORT $LN28@ObfObfusca + 0029d ff 15 00 00 00 00 call QWORD PTR __imp_rand - 001cf 48 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 001d6 0f b6 49 0a movzx ecx, BYTE PTR [rcx+10] - 001da 99 cdq - 001db f7 f9 idiv ecx - 001dd 8b c2 mov eax, edx - 001df 89 85 24 04 00 - 00 mov DWORD PTR tv154[rbp], eax - 001e5 eb 11 jmp SHORT $LN24@ObfObfusca -$LN23@ObfObfusca: - 001e7 48 8b 85 60 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 001ee 0f b6 40 0a movzx eax, BYTE PTR [rax+10] - 001f2 89 85 24 04 00 - 00 mov DWORD PTR tv154[rbp], eax -$LN24@ObfObfusca: - 001f8 33 d2 xor edx, edx - 001fa 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] - 001fd f7 b5 24 04 00 - 00 div DWORD PTR tv154[rbp] - 00203 48 8b 8d 60 04 + 002a3 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR Obf$[rbp] - 0020a 39 41 04 cmp DWORD PTR [rcx+4], eax - 0020d 76 12 jbe SHORT $LN27@ObfObfusca - 0020f 48 8b 85 60 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 00216 8b 40 04 mov eax, DWORD PTR [rax+4] - 00219 89 85 28 04 00 - 00 mov DWORD PTR tv169[rbp], eax - 0021f eb 51 jmp SHORT $LN28@ObfObfusca -$LN27@ObfObfusca: - 00221 48 8b 85 60 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 00228 8b 40 0c mov eax, DWORD PTR [rax+12] - 0022b 83 e0 04 and eax, 4 - 0022e 85 c0 test eax, eax - 00230 74 1e je SHORT $LN25@ObfObfusca - 00232 ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 00238 48 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 0023f 0f b6 49 0a movzx ecx, BYTE PTR [rcx+10] - 00243 99 cdq - 00244 f7 f9 idiv ecx - 00246 8b c2 mov eax, edx - 00248 89 85 2c 04 00 - 00 mov DWORD PTR tv167[rbp], eax - 0024e eb 11 jmp SHORT $LN26@ObfObfusca -$LN25@ObfObfusca: - 00250 48 8b 85 60 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 00257 0f b6 40 0a movzx eax, BYTE PTR [rax+10] - 0025b 89 85 2c 04 00 - 00 mov DWORD PTR tv167[rbp], eax -$LN26@ObfObfusca: - 00261 33 d2 xor edx, edx - 00263 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] - 00266 f7 b5 2c 04 00 - 00 div DWORD PTR tv167[rbp] - 0026c 89 85 28 04 00 - 00 mov DWORD PTR tv169[rbp], eax + 002aa 0f b6 49 0a movzx ecx, BYTE PTR [rcx+10] + 002ae 99 cdq + 002af f7 f9 idiv ecx + 002b1 8b c2 mov eax, edx + 002b3 89 85 c4 03 00 + 00 mov DWORD PTR tv176[rbp], eax + 002b9 eb 11 jmp SHORT $LN29@ObfObfusca $LN28@ObfObfusca: - 00272 8b 85 28 04 00 - 00 mov eax, DWORD PTR tv169[rbp] - 00278 89 85 a4 00 00 - 00 mov DWORD PTR TargetCount$12[rbp], eax + 002bb 48 8b 85 00 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 002c2 0f b6 40 0a movzx eax, BYTE PTR [rax+10] + 002c6 89 85 c4 03 00 + 00 mov DWORD PTR tv176[rbp], eax +$LN29@ObfObfusca: + 002cc 33 d2 xor edx, edx + 002ce 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 002d1 f7 b5 c4 03 00 + 00 div DWORD PTR tv176[rbp] + 002d7 89 85 a4 00 00 + 00 mov DWORD PTR TargetCount$10[rbp], eax -; 47 : ULONG CurrentCount = 0; +; 62 : ULONG CurrentCount = 0; - 0027e c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR CurrentCount$13[rbp], 0 + 002dd c7 85 c4 00 00 + 00 00 00 00 00 mov DWORD PTR CurrentCount$11[rbp], 0 -; 48 : PNATIVE_CODE_LINK NewBlockStart = Block->Start; +; 63 : PNATIVE_CODE_LINK NewBlockStart = Block->Start; - 00288 48 8b 85 68 04 + 002e7 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 0028f 48 8b 00 mov rax, QWORD PTR [rax] - 00292 48 89 85 e8 00 - 00 00 mov QWORD PTR NewBlockStart$14[rbp], rax + 002ee 48 8b 00 mov rax, QWORD PTR [rax] + 002f1 48 89 85 e8 00 + 00 00 mov QWORD PTR NewBlockStart$12[rbp], rax -; 49 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 64 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) - 00299 48 8b 85 68 04 + 002f8 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 002a0 48 8b 00 mov rax, QWORD PTR [rax] - 002a3 48 89 85 08 01 - 00 00 mov QWORD PTR T$15[rbp], rax + 002ff 48 8b 00 mov rax, QWORD PTR [rax] + 00302 48 89 85 08 01 + 00 00 mov QWORD PTR T$13[rbp], rax $LN5@ObfObfusca: - 002aa 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR T$15[rbp], 0 - 002b2 0f 84 70 02 00 - 00 je $LN6@ObfObfusca - 002b8 48 8b 85 68 04 + 00309 48 83 bd 08 01 + 00 00 00 cmp QWORD PTR T$13[rbp], 0 + 00311 0f 84 86 02 00 + 00 je $LN1@ObfObfusca + 00317 48 8b 85 08 04 00 00 mov rax, QWORD PTR Block$[rbp] - 002bf 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 002c3 48 8b 00 mov rax, QWORD PTR [rax] - 002c6 48 39 85 08 01 - 00 00 cmp QWORD PTR T$15[rbp], rax - 002cd 0f 84 55 02 00 - 00 je $LN6@ObfObfusca - -; 50 : { -; 51 : if (T->Flags & CODE_FLAG_IS_LABEL) - - 002d3 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$15[rbp] - 002da 8b 40 18 mov eax, DWORD PTR [rax+24] - 002dd 83 e0 01 and eax, 1 - 002e0 85 c0 test eax, eax - 002e2 74 13 je SHORT $LN15@ObfObfusca - -; 52 : { -; 53 : T = T->Next; - - 002e4 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$15[rbp] - 002eb 48 8b 00 mov rax, QWORD PTR [rax] - 002ee 48 89 85 08 01 - 00 00 mov QWORD PTR T$15[rbp], rax - -; 54 : continue; - - 002f5 eb b3 jmp SHORT $LN5@ObfObfusca -$LN15@ObfObfusca: + 0031e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00322 48 8b 00 mov rax, QWORD PTR [rax] + 00325 48 39 85 08 01 + 00 00 cmp QWORD PTR T$13[rbp], rax + 0032c 0f 84 6b 02 00 + 00 je $LN1@ObfObfusca + +; 65 : { +; 66 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 00332 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR T$13[rbp] + 00339 8b 40 18 mov eax, DWORD PTR [rax+24] + 0033c 83 e0 01 and eax, 1 + 0033f 85 c0 test eax, eax + 00341 74 13 je SHORT $LN17@ObfObfusca + +; 67 : { +; 68 : T = T->Next; + + 00343 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR T$13[rbp] + 0034a 48 8b 00 mov rax, QWORD PTR [rax] + 0034d 48 89 85 08 01 + 00 00 mov QWORD PTR T$13[rbp], rax + +; 69 : continue; + + 00354 eb b3 jmp SHORT $LN5@ObfObfusca +$LN17@ObfObfusca: -; 55 : } -; 56 : -; 57 : ++CurrentCount; +; 70 : } +; 71 : +; 72 : ++CurrentCount; - 002f7 8b 85 c4 00 00 - 00 mov eax, DWORD PTR CurrentCount$13[rbp] - 002fd ff c0 inc eax - 002ff 89 85 c4 00 00 - 00 mov DWORD PTR CurrentCount$13[rbp], eax + 00356 8b 85 c4 00 00 + 00 mov eax, DWORD PTR CurrentCount$11[rbp] + 0035c ff c0 inc eax + 0035e 89 85 c4 00 00 + 00 mov DWORD PTR CurrentCount$11[rbp], eax -; 58 : -; 59 : if (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) +; 73 : +; 74 : if (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) - 00305 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$15[rbp] - 0030c 8b 40 18 mov eax, DWORD PTR [rax+24] - 0030f 83 e0 08 and eax, 8 - 00312 85 c0 test eax, eax - 00314 74 13 je SHORT $LN16@ObfObfusca + 00364 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR T$13[rbp] + 0036b 8b 40 18 mov eax, DWORD PTR [rax+24] + 0036e 83 e0 08 and eax, 8 + 00371 85 c0 test eax, eax + 00373 74 13 je SHORT $LN18@ObfObfusca -; 60 : { -; 61 : T = T->Next; +; 75 : { +; 76 : T = T->Next; - 00316 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$15[rbp] - 0031d 48 8b 00 mov rax, QWORD PTR [rax] - 00320 48 89 85 08 01 - 00 00 mov QWORD PTR T$15[rbp], rax + 00375 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR T$13[rbp] + 0037c 48 8b 00 mov rax, QWORD PTR [rax] + 0037f 48 89 85 08 01 + 00 00 mov QWORD PTR T$13[rbp], rax -; 62 : continue; +; 77 : continue; - 00327 eb 81 jmp SHORT $LN5@ObfObfusca -$LN16@ObfObfusca: + 00386 eb 81 jmp SHORT $LN5@ObfObfusca +$LN18@ObfObfusca: -; 63 : } -; 64 : -; 65 : if (CurrentCount == TargetCount) +; 78 : } +; 79 : +; 80 : if (CurrentCount >= TargetCount) - 00329 8b 85 a4 00 00 - 00 mov eax, DWORD PTR TargetCount$12[rbp] - 0032f 39 85 c4 00 00 - 00 cmp DWORD PTR CurrentCount$13[rbp], eax - 00335 0f 85 d7 01 00 - 00 jne $LN17@ObfObfusca + 00388 8b 85 a4 00 00 + 00 mov eax, DWORD PTR TargetCount$10[rbp] + 0038e 39 85 c4 00 00 + 00 cmp DWORD PTR CurrentCount$11[rbp], eax + 00394 0f 82 ed 01 00 + 00 jb $LN19@ObfObfusca -; 66 : { -; 67 : if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance) +; 81 : { +; 82 : if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) - 0033b 48 8b 85 60 04 + 0039a 48 8b 85 00 04 00 00 mov rax, QWORD PTR Obf$[rbp] - 00342 8b 00 mov eax, DWORD PTR [rax] - 00344 39 85 70 04 00 + 003a1 8b 00 mov eax, DWORD PTR [rax] + 003a3 39 85 10 04 00 00 cmp DWORD PTR Depth$[rbp], eax - 0034a 0f 82 2a 01 00 - 00 jb $LN18@ObfObfusca - 00350 ff 15 00 00 00 + 003a9 0f 82 40 01 00 + 00 jb $LN20@ObfObfusca + 003af ff 15 00 00 00 00 call QWORD PTR __imp_rand - 00356 99 cdq - 00357 b9 64 00 00 00 mov ecx, 100 ; 00000064H - 0035c f7 f9 idiv ecx - 0035e 8b c2 mov eax, edx - 00360 48 8b 8d 60 04 + 003b5 99 cdq + 003b6 b9 64 00 00 00 mov ecx, 100 ; 00000064H + 003bb f7 f9 idiv ecx + 003bd 8b c2 mov eax, edx + 003bf 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR Obf$[rbp] - 00367 0f b6 49 08 movzx ecx, BYTE PTR [rcx+8] - 0036b 3b c1 cmp eax, ecx - 0036d 0f 8f 07 01 00 - 00 jg $LN18@ObfObfusca - -; 68 : { -; 69 : NATIVE_CODE_BLOCK NotTaken, Taken; - - 00373 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] - 0037a e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 0037f 90 npad 1 - 00380 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$17[rbp] - 00387 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 0038c 90 npad 1 - -; 70 : ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); - - 0038d 4c 8d 8d 78 01 - 00 00 lea r9, QWORD PTR Taken$17[rbp] - 00394 4c 8d 85 28 01 - 00 00 lea r8, QWORD PTR NotTaken$16[rbp] - 0039b 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$15[rbp] - 003a2 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$14[rbp] - 003a9 e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches - -; 71 : ObfObfuscate1(Obf, &NotTaken, Depth + 1); - - 003ae 8b 85 70 04 00 + 003c6 0f b6 49 08 movzx ecx, BYTE PTR [rcx+8] + 003ca 3b c1 cmp eax, ecx + 003cc 0f 8f 1d 01 00 + 00 jg $LN20@ObfObfusca + 003d2 48 8b 85 00 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 003d9 8b 40 04 mov eax, DWORD PTR [rax+4] + 003dc 39 85 c4 00 00 + 00 cmp DWORD PTR CurrentCount$11[rbp], eax + 003e2 0f 87 07 01 00 + 00 ja $LN20@ObfObfusca + +; 83 : { +; 84 : NATIVE_CODE_BLOCK NotTaken, Taken; + + 003e8 48 8d 8d 28 01 + 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] + 003ef e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 003f4 90 npad 1 + 003f5 48 8d 8d 78 01 + 00 00 lea rcx, QWORD PTR Taken$15[rbp] + 003fc e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00401 90 npad 1 + +; 85 : ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); + + 00402 4c 8d 8d 78 01 + 00 00 lea r9, QWORD PTR Taken$15[rbp] + 00409 4c 8d 85 28 01 + 00 00 lea r8, QWORD PTR NotTaken$14[rbp] + 00410 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR T$13[rbp] + 00417 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] + 0041e e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches + +; 86 : ObfObfuscate1(Obf, &NotTaken, Depth + 1); + + 00423 8b 85 10 04 00 00 mov eax, DWORD PTR Depth$[rbp] - 003b4 ff c0 inc eax - 003b6 44 8b c0 mov r8d, eax - 003b9 48 8d 95 28 01 - 00 00 lea rdx, QWORD PTR NotTaken$16[rbp] - 003c0 48 8b 8d 60 04 + 00429 ff c0 inc eax + 0042b 44 8b c0 mov r8d, eax + 0042e 48 8d 95 28 01 + 00 00 lea rdx, QWORD PTR NotTaken$14[rbp] + 00435 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR Obf$[rbp] - 003c7 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 + 0043c e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 -; 72 : ObfObfuscate1(Obf, &Taken, Depth + 1); +; 87 : ObfObfuscate1(Obf, &Taken, Depth + 1); - 003cc 8b 85 70 04 00 + 00441 8b 85 10 04 00 00 mov eax, DWORD PTR Depth$[rbp] - 003d2 ff c0 inc eax - 003d4 44 8b c0 mov r8d, eax - 003d7 48 8d 95 78 01 - 00 00 lea rdx, QWORD PTR Taken$17[rbp] - 003de 48 8b 8d 60 04 + 00447 ff c0 inc eax + 00449 44 8b c0 mov r8d, eax + 0044c 48 8d 95 78 01 + 00 00 lea rdx, QWORD PTR Taken$15[rbp] + 00453 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR Obf$[rbp] - 003e5 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 + 0045a e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 -; 73 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); +; 88 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); - 003ea 48 8b 85 60 04 + 0045f 48 8b 85 00 04 00 00 mov rax, QWORD PTR Obf$[rbp] - 003f1 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 003f5 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 003fa 89 85 24 04 00 - 00 mov DWORD PTR tv225[rbp], eax - 00400 48 8b 85 60 04 + 00466 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 0046a e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 0046f 89 85 c4 03 00 + 00 mov DWORD PTR tv235[rbp], eax + 00475 48 8b 85 00 04 00 00 mov rax, QWORD PTR Obf$[rbp] - 00407 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 0040b e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 00410 89 85 28 04 00 - 00 mov DWORD PTR tv223[rbp], eax - 00416 44 8b 8d 24 04 - 00 00 mov r9d, DWORD PTR tv225[rbp] - 0041d 44 8b 85 28 04 - 00 00 mov r8d, DWORD PTR tv223[rbp] - 00424 48 8d 95 78 01 - 00 00 lea rdx, QWORD PTR Taken$17[rbp] - 0042b 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] - 00432 e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches - -; 74 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); - - 00437 4c 8d 85 28 01 - 00 00 lea r8, QWORD PTR NotTaken$16[rbp] - 0043e 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$15[rbp] - 00445 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$14[rbp] - 0044c e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock - -; 75 : T = NotTaken.End; - - 00451 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR NotTaken$16[rbp+8] - 00458 48 89 85 08 01 - 00 00 mov QWORD PTR T$15[rbp], rax - -; 76 : } - - 0045f 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$17[rbp] - 00466 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 0046b 90 npad 1 - 0046c 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] - 00473 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00478 eb 7d jmp SHORT $LN19@ObfObfusca -$LN18@ObfObfusca: + 0047c 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 00480 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00485 89 85 c8 03 00 + 00 mov DWORD PTR tv233[rbp], eax + 0048b 44 8b 8d c4 03 + 00 00 mov r9d, DWORD PTR tv235[rbp] + 00492 44 8b 85 c8 03 + 00 00 mov r8d, DWORD PTR tv233[rbp] + 00499 48 8d 95 78 01 + 00 00 lea rdx, QWORD PTR Taken$15[rbp] + 004a0 48 8d 8d 28 01 + 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] + 004a7 e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches + +; 89 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); + + 004ac 4c 8d 85 28 01 + 00 00 lea r8, QWORD PTR NotTaken$14[rbp] + 004b3 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR T$13[rbp] + 004ba 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] + 004c1 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + +; 90 : T = NotTaken.End; + + 004c6 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR NotTaken$14[rbp+8] + 004cd 48 89 85 08 01 + 00 00 mov QWORD PTR T$13[rbp], rax + +; 91 : } + + 004d4 48 8d 8d 78 01 + 00 00 lea rcx, QWORD PTR Taken$15[rbp] + 004db e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 004e0 90 npad 1 + 004e1 48 8d 8d 28 01 + 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] + 004e8 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 004ed eb 7d jmp SHORT $LN21@ObfObfusca +$LN20@ObfObfusca: -; 77 : else -; 78 : { -; 79 : NATIVE_CODE_BLOCK TempBlock; +; 92 : else +; 93 : { +; 94 : NATIVE_CODE_BLOCK TempBlock; - 0047a 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] - 00481 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 00486 90 npad 1 + 004ef 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR TempBlock$16[rbp] + 004f6 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 004fb 90 npad 1 -; 80 : if (NcDeepCopyPartialBlock(NewBlockStart, T, &TempBlock)) +; 95 : if (NcDeepCopyPartialBlock(NewBlockStart, T, &TempBlock)) - 00487 4c 8d 85 c8 01 - 00 00 lea r8, QWORD PTR TempBlock$18[rbp] - 0048e 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$15[rbp] - 00495 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$14[rbp] - 0049c e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 004a1 85 c0 test eax, eax - 004a3 74 38 je SHORT $LN20@ObfObfusca + 004fc 4c 8d 85 c8 01 + 00 00 lea r8, QWORD PTR TempBlock$16[rbp] + 00503 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR T$13[rbp] + 0050a 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] + 00511 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 00516 85 c0 test eax, eax + 00518 74 38 je SHORT $LN22@ObfObfusca -; 81 : { -; 82 : ObfObfuscate1(Obf, &TempBlock, Depth + 1); +; 96 : { +; 97 : ObfObfuscate1(Obf, &TempBlock, Depth + 1); - 004a5 8b 85 70 04 00 + 0051a 8b 85 10 04 00 00 mov eax, DWORD PTR Depth$[rbp] - 004ab ff c0 inc eax - 004ad 44 8b c0 mov r8d, eax - 004b0 48 8d 95 c8 01 - 00 00 lea rdx, QWORD PTR TempBlock$18[rbp] - 004b7 48 8b 8d 60 04 + 00520 ff c0 inc eax + 00522 44 8b c0 mov r8d, eax + 00525 48 8d 95 c8 01 + 00 00 lea rdx, QWORD PTR TempBlock$16[rbp] + 0052c 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR Obf$[rbp] - 004be e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - -; 83 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &TempBlock); + 00533 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - 004c3 4c 8d 85 c8 01 - 00 00 lea r8, QWORD PTR TempBlock$18[rbp] - 004ca 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$15[rbp] - 004d1 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$14[rbp] - 004d8 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock -$LN20@ObfObfusca: +; 98 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &TempBlock); -; 84 : } -; 85 : T = TempBlock.End; + 00538 4c 8d 85 c8 01 + 00 00 lea r8, QWORD PTR TempBlock$16[rbp] + 0053f 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR T$13[rbp] + 00546 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] + 0054d e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock +$LN22@ObfObfusca: - 004dd 48 8b 85 d0 01 - 00 00 mov rax, QWORD PTR TempBlock$18[rbp+8] - 004e4 48 89 85 08 01 - 00 00 mov QWORD PTR T$15[rbp], rax +; 99 : } +; 100 : T = TempBlock.End; -; 86 : } + 00552 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR TempBlock$16[rbp+8] + 00559 48 89 85 08 01 + 00 00 mov QWORD PTR T$13[rbp], rax - 004eb 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] - 004f2 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ -$LN19@ObfObfusca: +; 101 : } -; 87 : NewBlockStart = T->Next; + 00560 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR TempBlock$16[rbp] + 00567 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +$LN21@ObfObfusca: - 004f7 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$15[rbp] - 004fe 48 8b 00 mov rax, QWORD PTR [rax] - 00501 48 89 85 e8 00 - 00 00 mov QWORD PTR NewBlockStart$14[rbp], rax - -; 88 : CurrentCount = 0; - - 00508 c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR CurrentCount$13[rbp], 0 -$LN17@ObfObfusca: +; 102 : NewBlockStart = T->Next; -; 89 : } -; 90 : T = T->Next; + 0056c 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR T$13[rbp] + 00573 48 8b 00 mov rax, QWORD PTR [rax] + 00576 48 89 85 e8 00 + 00 00 mov QWORD PTR NewBlockStart$12[rbp], rax - 00512 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$15[rbp] - 00519 48 8b 00 mov rax, QWORD PTR [rax] - 0051c 48 89 85 08 01 - 00 00 mov QWORD PTR T$15[rbp], rax +; 103 : CurrentCount = 0; -; 91 : } - - 00523 e9 82 fd ff ff jmp $LN5@ObfObfusca -$LN6@ObfObfusca: - -; 92 : if (NewBlockStart) - - 00528 48 83 bd e8 00 - 00 00 00 cmp QWORD PTR NewBlockStart$14[rbp], 0 - 00530 0f 84 00 01 00 - 00 je $LN9@ObfObfusca - -; 93 : { -; 94 : NATIVE_CODE_BLOCK NotTaken, Taken; - - 00536 48 8d 8d 18 02 - 00 00 lea rcx, QWORD PTR NotTaken$19[rbp] - 0053d e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 00542 90 npad 1 - 00543 48 8d 8d 68 02 - 00 00 lea rcx, QWORD PTR Taken$20[rbp] - 0054a e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 0054f 90 npad 1 - -; 95 : ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); - - 00550 4c 8d 8d 68 02 - 00 00 lea r9, QWORD PTR Taken$20[rbp] - 00557 4c 8d 85 18 02 - 00 00 lea r8, QWORD PTR NotTaken$19[rbp] - 0055e 48 8b 85 68 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00565 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 00569 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$14[rbp] - 00570 e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches - -; 96 : ObfObfuscate1(Obf, &NotTaken, Depth + 1); - - 00575 8b 85 70 04 00 - 00 mov eax, DWORD PTR Depth$[rbp] - 0057b ff c0 inc eax - 0057d 44 8b c0 mov r8d, eax - 00580 48 8d 95 18 02 - 00 00 lea rdx, QWORD PTR NotTaken$19[rbp] - 00587 48 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 0058e e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - -; 97 : ObfObfuscate1(Obf, &Taken, Depth + 1); - - 00593 8b 85 70 04 00 - 00 mov eax, DWORD PTR Depth$[rbp] - 00599 ff c0 inc eax - 0059b 44 8b c0 mov r8d, eax - 0059e 48 8d 95 68 02 - 00 00 lea rdx, QWORD PTR Taken$20[rbp] - 005a5 48 8b 8d 60 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 005ac e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - -; 98 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); - - 005b1 48 8b 85 60 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 005b8 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 005bc e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 005c1 89 85 24 04 00 - 00 mov DWORD PTR tv279[rbp], eax - 005c7 48 8b 85 60 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 005ce 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 005d2 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 005d7 89 85 28 04 00 - 00 mov DWORD PTR tv277[rbp], eax - 005dd 44 8b 8d 24 04 - 00 00 mov r9d, DWORD PTR tv279[rbp] - 005e4 44 8b 85 28 04 - 00 00 mov r8d, DWORD PTR tv277[rbp] - 005eb 48 8d 95 68 02 - 00 00 lea rdx, QWORD PTR Taken$20[rbp] - 005f2 48 8d 8d 18 02 - 00 00 lea rcx, QWORD PTR NotTaken$19[rbp] - 005f9 e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches - -; 99 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); - - 005fe 4c 8d 85 18 02 - 00 00 lea r8, QWORD PTR NotTaken$19[rbp] - 00605 48 8b 85 68 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0060c 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 00610 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$14[rbp] - 00617 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock - 0061c 90 npad 1 - -; 100 : } - - 0061d 48 8d 8d 68 02 - 00 00 lea rcx, QWORD PTR Taken$20[rbp] - 00624 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00629 90 npad 1 - 0062a 48 8d 8d 18 02 - 00 00 lea rcx, QWORD PTR NotTaken$19[rbp] - 00631 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ -$LN9@ObfObfusca: - -; 101 : } -; 102 : -; 103 : -; 104 : -; 105 : -; 106 : -; 107 : } + 0057d c7 85 c4 00 00 + 00 00 00 00 00 mov DWORD PTR CurrentCount$11[rbp], 0 +$LN19@ObfObfusca: - 00636 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0063a 48 8d 15 00 00 +; 104 : } +; 105 : T = T->Next; + + 00587 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR T$13[rbp] + 0058e 48 8b 00 mov rax, QWORD PTR [rax] + 00591 48 89 85 08 01 + 00 00 mov QWORD PTR T$13[rbp], rax + +; 106 : } + + 00598 e9 6c fd ff ff jmp $LN5@ObfObfusca +$LN1@ObfObfusca: + +; 107 : /*if (NewBlockStart && CurrentCount >= Obf->MinSizeForOpaqueBranch) +; 108 : { +; 109 : if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) +; 110 : { +; 111 : NATIVE_CODE_BLOCK NotTaken, Taken; +; 112 : ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); +; 113 : ObfObfuscate1(Obf, &NotTaken, Depth + 1); +; 114 : ObfObfuscate1(Obf, &Taken, Depth + 1); +; 115 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); +; 116 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); +; 117 : } +; 118 : else +; 119 : { +; 120 : NATIVE_CODE_BLOCK TempBlock; +; 121 : if (NcDeepCopyPartialBlock(NewBlockStart, Block->End, &TempBlock)) +; 122 : { +; 123 : ObfObfuscate1(Obf, &TempBlock, Depth + 1); +; 124 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &TempBlock); +; 125 : } +; 126 : } +; 127 : }*/ +; 128 : } +; 129 : +; 130 : +; 131 : +; 132 : +; 133 : +; 134 : } + + 0059d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 005a1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData - 00641 e8 00 00 00 00 call _RTC_CheckStackVars - 00646 48 8b 8d 30 04 + 005a8 e8 00 00 00 00 call _RTC_CheckStackVars + 005ad 48 8b 8d d0 03 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0064d 48 33 cd xor rcx, rbp - 00650 e8 00 00 00 00 call __security_check_cookie - 00655 48 8d a5 48 04 - 00 00 lea rsp, QWORD PTR [rbp+1096] - 0065c 5f pop rdi - 0065d 5d pop rbp - 0065e c3 ret 0 + 005b4 48 33 cd xor rcx, rbp + 005b7 e8 00 00 00 00 call __security_check_cookie + 005bc 48 8d a5 e8 03 + 00 00 lea rsp, QWORD PTR [rbp+1000] + 005c3 5f pop rdi + 005c4 5d pop rbp + 005c5 c3 ret 0 ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ENDP ; ObfObfuscate1 _TEXT ENDS ; COMDAT text$x text$x SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 @@ -2215,7 +2106,7 @@ Depth$ = 1136 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] 00014 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 00 00 lea rcx, QWORD PTR NotTaken$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 @@ -2226,30 +2117,28 @@ text$x ENDS ; COMDAT text$x text$x SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 @@ -2258,7 +2147,7 @@ Depth$ = 1136 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] 00014 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$17[rbp] + 00 00 lea rcx, QWORD PTR Taken$15[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 @@ -2269,30 +2158,28 @@ text$x ENDS ; COMDAT text$x text$x SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 @@ -2301,7 +2188,7 @@ Depth$ = 1136 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] 00014 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] + 00 00 lea rcx, QWORD PTR TempBlock$16[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 @@ -2309,120 +2196,32 @@ Depth$ = 1136 00026 c3 ret 0 ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$2 text$x ENDS -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 -?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 18 02 - 00 00 lea rcx, QWORD PTR NotTaken$19[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??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$3 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 -?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$4 - 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 68 02 - 00 00 lea rcx, QWORD PTR Taken$20[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$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$4 -text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 @@ -2431,7 +2230,7 @@ Depth$ = 1136 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] 00014 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 00 00 lea rcx, QWORD PTR NotTaken$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 @@ -2443,30 +2242,28 @@ text$x ENDS ; COMDAT text$x text$x SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 @@ -2475,7 +2272,7 @@ Depth$ = 1136 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] 00014 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$17[rbp] + 00 00 lea rcx, QWORD PTR Taken$15[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 @@ -2487,30 +2284,28 @@ text$x ENDS ; COMDAT text$x text$x SEGMENT InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 +T$6 = 40 +RealNext$7 = 72 +PreOp$8 = 104 +PostOp$9 = 136 +TargetCount$10 = 164 +CurrentCount$11 = 196 +NewBlockStart$12 = 232 +T$13 = 264 +NotTaken$14 = 296 +Taken$15 = 376 +TempBlock$16 = 456 +$T17 = 920 +$T18 = 952 +tv235 = 964 +tv176 = 964 +tv233 = 968 +tv163 = 968 +tv158 = 968 +__$ArrayPad$ = 976 +Obf$ = 1024 +Block$ = 1032 +Depth$ = 1040 ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 @@ -2519,7 +2314,7 @@ Depth$ = 1136 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] 00014 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] + 00 00 lea rcx, QWORD PTR TempBlock$16[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 @@ -2528,93 +2323,41 @@ Depth$ = 1136 ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$2 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 -?dtor$3@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`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 18 02 - 00 00 lea rcx, QWORD PTR NotTaken$19[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??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$3 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$8 = 40 -RealNext$9 = 72 -PreOp$10 = 104 -PostOp$11 = 136 -TargetCount$12 = 164 -CurrentCount$13 = 196 -NewBlockStart$14 = 232 -T$15 = 264 -NotTaken$16 = 296 -Taken$17 = 376 -TempBlock$18 = 456 -NotTaken$19 = 536 -Taken$20 = 616 -tv279 = 1060 -tv225 = 1060 -tv154 = 1060 -tv277 = 1064 -tv223 = 1064 -tv169 = 1064 -tv167 = 1068 -__$ArrayPad$ = 1072 -Obf$ = 1120 -Block$ = 1128 -Depth$ = 1136 -?dtor$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$4 - 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 68 02 - 00 00 lea rcx, QWORD PTR Taken$20[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$4@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$4 -text$x ENDS +; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00023 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00035 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00041 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00048 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ _TEXT SEGMENT @@ -2627,32 +2370,26 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 83 c0 10 add rax, 16 - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > - 0003d 48 8d a5 c8 00 + 0001a 48 83 c0 10 add rax, 16 + 0001e 48 8b c8 mov rcx, rax + 00021 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1343 : constexpr _Ty1& _Get_first() noexcept { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -2661,38 +2398,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; - - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1731 : _Alty& _Getal() noexcept { +; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -2701,35 +2432,28 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1732 : return _Mypair._Get_first(); - - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1818 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 00026 48 8b c8 mov rcx, rax + 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first -; 1733 : } +; 1819 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -2742,7 +2466,7 @@ tv86 = 328 this$ = 368 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 1685 : void _Tidy() noexcept { // free all storage +; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -2751,123 +2475,117 @@ $LN4: 00007 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1686 : auto& _My_data = _Mypair._Myval2; - - 00036 48 8b 85 70 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1756 : auto& _My_data = _Mypair._Myval2; + + 0001f 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1687 : pointer& _Myfirst = _My_data._Myfirst; +; 1757 : pointer& _Myfirst = _My_data._Myfirst; - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 83 c0 08 add rax, 8 - 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 83 c0 08 add rax, 8 + 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1688 : pointer& _Mylast = _My_data._Mylast; +; 1758 : pointer& _Mylast = _My_data._Mylast; - 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00051 48 83 c0 10 add rax, 16 - 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003a 48 83 c0 10 add rax, 16 + 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1689 : pointer& _Myend = _My_data._Myend; +; 1759 : pointer& _Myend = _My_data._Myend; - 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005d 48 83 c0 18 add rax, 24 - 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00046 48 83 c0 18 add rax, 24 + 0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1690 : -; 1691 : _My_data._Orphan_all(); +; 1760 : +; 1761 : _My_data._Orphan_all(); - 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1692 : -; 1693 : if (_Myfirst) { // destroy and deallocate old array +; 1762 : +; 1763 : if (_Myfirst) { // destroy and deallocate old array - 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00072 48 83 38 00 cmp QWORD PTR [rax], 0 - 00076 0f 84 92 00 00 + 00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0005b 48 83 38 00 cmp QWORD PTR [rax], 0 + 0005f 0f 84 92 00 00 00 je $LN2@Tidy -; 1694 : _Destroy(_Myfirst, _Mylast); +; 1764 : _Destroy(_Myfirst, _Mylast); - 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00080 4c 8b 00 mov r8, QWORD PTR [rax] - 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00087 48 8b 10 mov rdx, QWORD PTR [rax] - 0008a 48 8b 8d 70 01 + 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00069 4c 8b 00 mov r8, QWORD PTR [rax] + 0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00070 48 8b 10 mov rdx, QWORD PTR [rax] + 00073 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 00096 48 8b 8d 70 01 + 0007f 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 000a2 48 89 85 38 01 + 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0008b 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] - 000b4 48 8b 00 mov rax, QWORD PTR [rax] - 000b7 48 2b c1 sub rax, rcx - 000ba 48 c1 f8 02 sar rax, 2 - 000be 48 89 85 40 01 + 00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0009d 48 8b 00 mov rax, QWORD PTR [rax] + 000a0 48 2b c1 sub rax, rcx + 000a3 48 c1 f8 02 sar rax, 2 + 000a7 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000c9 48 8b 00 mov rax, QWORD PTR [rax] - 000cc 48 89 85 48 01 + 000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000b2 48 8b 00 mov rax, QWORD PTR [rax] + 000b5 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000d3 4c 8b 85 40 01 + 000bc 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000da 48 8b 95 48 01 + 000c3 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000e1 48 8b 8d 38 01 + 000ca 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1696 : -; 1697 : _Myfirst = pointer(); +; 1766 : +; 1767 : _Myfirst = nullptr; - 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000f1 48 c7 00 00 00 + 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000da 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1698 : _Mylast = pointer(); +; 1768 : _Mylast = nullptr; - 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000fc 48 c7 00 00 00 + 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000e5 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1699 : _Myend = pointer(); +; 1769 : _Myend = nullptr; - 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00107 48 c7 00 00 00 + 000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000f0 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN2@Tidy: -; 1700 : } -; 1701 : } +; 1770 : } +; 1771 : } - 0010e 48 8d a5 58 01 + 000f7 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 000fe 5f pop rdi + 000ff 5d pop rbp + 00100 c3 ret 0 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -2875,7 +2593,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator +; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2886,39 +2604,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1612 : _Destroy_range(_First, _Last, _Getal()); - - 00040 48 8b 8d e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1679 : // destroy [_First, _Last) using allocator +; 1680 : _Destroy_range(_First, _Last, _Getal()); + + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 4c 8b c0 mov r8, rax - 0004f 48 8b 95 f0 00 + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 4c 8b c0 mov r8, rax + 00038 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d e8 00 + 0003f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1613 : } +; 1681 : } - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -2928,7 +2641,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 672 : ~vector() noexcept { +; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -2937,75 +2650,74 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 1a 00 00 00 mov ecx, 26 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 18 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 673 : _Tidy(); +; 712 : _Tidy(); - 00047 48 8b 8d 40 01 + 00049 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00053 48 8b 8d 40 01 + 00055 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0005f 48 8b d0 mov rdx, rax - 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] - 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] - 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00061 48 8b d0 mov rdx, rax + 00064 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00068 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00073 48 c7 85 04 01 + 00075 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 0007e 48 8b 85 40 01 + 00080 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00085 48 8d 95 04 01 + 00087 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00094 48 8b d0 mov rdx, rax - 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 0008e 48 8b c8 mov rcx, rax + 00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00096 48 8b d0 mov rdx, rax + 00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 678 : } +; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 717 : } - 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a4 48 8d 15 00 00 + 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData - 000ab e8 00 00 00 00 call _RTC_CheckStackVars - 000b0 90 npad 1 - 000b1 48 8b 8d 18 01 + 000ad e8 00 00 00 00 call _RTC_CheckStackVars + 000b2 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b8 48 33 cd xor rcx, rbp - 000bb e8 00 00 00 00 call __security_check_cookie - 000c0 48 8d a5 28 01 + 000b9 48 33 cd xor rcx, rbp + 000bc e8 00 00 00 00 call __security_check_cookie + 000c1 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c7 5f pop rdi - 000c8 5d pop rbp - 000c9 c3 ret 0 + 000c8 5f pop rdi + 000c9 5d pop rbp + 000ca c3 ret 0 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -3013,7 +2725,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3024,38 +2736,32 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 802 : // no overflow check on the following multiply; we assume _Allocate did that check -; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00040 48 8b 85 f0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 834 : // no overflow check on the following multiply; we assume _Allocate did that check +; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Count$[rbp] - 00047 48 c1 e0 02 shl rax, 2 - 0004b 48 8b d0 mov rdx, rax - 0004e 48 8b 8d e8 00 + 00030 48 c1 e0 02 shl rax, 2 + 00034 48 8b d0 mov rdx, rax + 00037 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -3066,7 +2772,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3078,147 +2784,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -3229,7 +2929,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3241,147 +2941,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3392,7 +3086,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3403,104 +3097,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00040 48 8b 8d 40 01 + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -3517,79 +3205,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3608,7 +3290,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3619,371 +3301,443 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ _TEXT SEGMENT -_Lock$4 = 4 -_Pnext$5 = 40 -__$ArrayPad$ = 248 -this$ = 288 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 1205 : inline void _Container_base12::_Orphan_all() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { -$LN7: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8b 05 00 00 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 0a 00 00 00 mov ecx, 10 + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 f8 00 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1207 : if (_Myproxy) { // proxy allocated, drain it +; 1096 : _Lockit _Lock(_LOCK_DEBUG); - 00047 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00052 74 6b je SHORT $LN5@Orphan_all + 00049 ba 03 00 00 00 mov edx, 3 + 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00052 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1208 : _Lockit _Lock(_LOCK_DEBUG); +; 1097 : _Orphan_all_unlocked(); - 00054 ba 03 00 00 00 mov edx, 3 - 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 0005d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00058 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked -; 1209 : -; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { +; 1098 : } - 00063 48 8b 85 20 01 + 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00068 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData + 00079 e8 00 00 00 00 call _RTC_CheckStackVars + 0007e 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00085 48 33 cd xor rcx, rbp + 00088 e8 00 00 00 00 call __security_check_cookie + 0008d 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +_TEXT SEGMENT +_Pnext$1 = 8 +this$ = 256 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + +; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { + +$LN6: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 + + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 83 c0 08 add rax, 8 - 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax - 00075 eb 12 jmp SHORT $LN4@Orphan_all + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 83 c0 08 add rax, 8 + 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + 00031 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0007b 48 8b 00 mov rax, QWORD PTR [rax] - 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] - 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00086 48 89 01 mov QWORD PTR [rcx], rax + 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] + 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00042 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00091 74 10 je SHORT $LN3@Orphan_all + 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00049 48 83 38 00 cmp QWORD PTR [rax], 0 + 0004d 74 10 je SHORT $LN3@Orphan_all -; 1211 : (*_Pnext)->_Myproxy = nullptr; +; 1222 : _Pnext->_Myproxy = nullptr; - 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 c7 00 00 00 + 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1212 : } +; 1223 : } - 000a1 eb d4 jmp SHORT $LN2@Orphan_all + 0005d eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1213 : -; 1214 : _Myproxy->_Myfirstiter = nullptr; +; 1224 : _Myproxy->_Myfirstiter = nullptr; - 000a3 48 8b 85 20 01 + 0005f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 8b 00 mov rax, QWORD PTR [rax] - 000ad 48 c7 40 08 00 + 00066 48 8b 00 mov rax, QWORD PTR [rax] + 00069 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1215 : } +; 1225 : } - 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000b9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ -$LN5@Orphan_all: + 00071 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 +?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1217 : } +; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c3 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData - 000ca e8 00 00 00 00 call _RTC_CheckStackVars - 000cf 90 npad 1 - 000d0 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d7 48 33 cd xor rcx, rbp - 000da e8 00 00 00 00 call __security_check_cookie - 000df 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e6 5f pop rdi - 000e7 5d pop rbp - 000e8 c3 ret 0 +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1229 : if (_Myproxy) { // proxy allocated, drain it + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0c je SHORT $LN2@Orphan_all + +; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1231 : if (_STD is_constant_evaluated()) { +; 1232 : _Orphan_all_unlocked(); +; 1233 : } else +; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1235 : { +; 1236 : _Orphan_all_locked(); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked +$LN2@Orphan_all: + +; 1237 : } +; 1238 : } +; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1240 : } + + 00038 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -3994,7 +3748,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -4004,192 +3758,186 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 134 : _Bytes += _Non_user_size; - - 0003b 48 8b 85 68 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 155 : _Bytes += _Non_user_size; + + 00024 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 83 c0 2f add rax, 47 ; 0000002fH - 00049 48 8b 8d 68 01 + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 83 c0 2f add rax, 47 ; 0000002fH + 00032 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00050 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 89 01 mov QWORD PTR [rcx], rax -; 135 : -; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 156 : +; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00053 48 8b 85 60 01 + 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0005a 48 8b 00 mov rax, QWORD PTR [rax] - 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00061 b8 08 00 00 00 mov eax, 8 - 00066 48 6b c0 ff imul rax, rax, -1 - 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 0004a b8 08 00 00 00 mov eax, 8 + 0004f 48 6b c0 ff imul rax, rax, -1 + 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 138 : -; 139 : // If the following asserts, it likely means that we are performing -; 140 : // an aligned delete on memory coming from an unaligned allocation. -; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); +; 159 : +; 160 : // If the following asserts, it likely means that we are performing +; 161 : // an aligned delete on memory coming from an unaligned allocation. +; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - 00076 b8 08 00 00 00 mov eax, 8 - 0007b 48 6b c0 fe imul rax, rax, -2 - 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00083 48 ba fa fa fa + 0005f b8 08 00 00 00 mov eax, 8 + 00064 48 6b c0 fe imul rax, rax, -2 + 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006c 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 00091 75 02 jne SHORT $LN14@Adjust_man - 00093 eb 77 jmp SHORT $LN15@Adjust_man + 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 0007a 75 02 jne SHORT $LN14@Adjust_man + 0007c eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 00095 8b 05 00 00 00 + 0007e 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0009b 83 c0 09 add eax, 9 - 0009e 48 8d 0d 00 00 + 00084 83 c0 09 add eax, 9 + 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 000aa 48 8d 0d 00 00 + 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00093 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 000b6 45 33 c9 xor r9d, r9d - 000b9 44 8b c0 mov r8d, eax - 000bc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000c3 b9 02 00 00 00 mov ecx, 2 - 000c8 ff 15 00 00 00 + 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0009f 45 33 c9 xor r9d, r9d + 000a2 44 8b c0 mov r8d, eax + 000a5 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000ac b9 02 00 00 00 mov ecx, 2 + 000b1 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000ce 83 f8 01 cmp eax, 1 - 000d1 75 03 jne SHORT $LN19@Adjust_man - 000d3 cc int 3 - 000d4 33 c0 xor eax, eax + 000b7 83 f8 01 cmp eax, 1 + 000ba 75 03 jne SHORT $LN19@Adjust_man + 000bc cc int 3 + 000bd 33 c0 xor eax, eax $LN19@Adjust_man: - 000d6 8b 05 00 00 00 + 000bf 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000dc 83 c0 09 add eax, 9 - 000df 48 c7 44 24 20 + 000c5 83 c0 09 add eax, 9 + 000c8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000e8 44 8b c8 mov r9d, eax - 000eb 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000f2 48 8d 15 00 00 + 000d1 44 8b c8 mov r9d, eax + 000d4 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000db 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000f9 48 8d 0d 00 00 + 000e2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00100 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00106 33 c0 xor eax, eax - 00108 85 c0 test eax, eax - 0010a 75 89 jne SHORT $LN7@Adjust_man + 000ef 33 c0 xor eax, eax + 000f1 85 c0 test eax, eax + 000f3 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 0010c 33 c0 xor eax, eax - 0010e 85 c0 test eax, eax - 00110 0f 85 60 ff ff + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 142 : -; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 144 : // in range [_Min_back_shift, _Non_user_size] -; 145 : #ifdef _DEBUG -; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 163 : +; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 165 : // in range [_Min_back_shift, _Non_user_size] +; 166 : #ifdef _DEBUG +; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 00116 48 c7 45 48 10 + 000ff 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 149 : #endif // _DEBUG -; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 170 : #endif // _DEBUG +; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 0011e 48 8b 85 60 01 + 00107 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00129 48 8b 00 mov rax, QWORD PTR [rax] - 0012c 48 2b c1 sub rax, rcx - 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00112 48 8b 00 mov rax, QWORD PTR [rax] + 00115 48 2b c1 sub rax, rcx + 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00138 72 09 jb SHORT $LN16@Adjust_man - 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 0013f 77 02 ja SHORT $LN16@Adjust_man - 00141 eb 77 jmp SHORT $LN17@Adjust_man + 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00121 72 09 jb SHORT $LN16@Adjust_man + 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 00128 77 02 ja SHORT $LN16@Adjust_man + 0012a eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 00143 8b 05 00 00 00 + 0012c 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00149 83 c0 13 add eax, 19 - 0014c 48 8d 0d 00 00 + 00132 83 c0 13 add eax, 19 + 00135 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00158 48 8d 0d 00 00 + 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00141 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00164 45 33 c9 xor r9d, r9d - 00167 44 8b c0 mov r8d, eax - 0016a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00171 b9 02 00 00 00 mov ecx, 2 - 00176 ff 15 00 00 00 + 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0014d 45 33 c9 xor r9d, r9d + 00150 44 8b c0 mov r8d, eax + 00153 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0015a b9 02 00 00 00 mov ecx, 2 + 0015f ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0017c 83 f8 01 cmp eax, 1 - 0017f 75 03 jne SHORT $LN20@Adjust_man - 00181 cc int 3 - 00182 33 c0 xor eax, eax + 00165 83 f8 01 cmp eax, 1 + 00168 75 03 jne SHORT $LN20@Adjust_man + 0016a cc int 3 + 0016b 33 c0 xor eax, eax $LN20@Adjust_man: - 00184 8b 05 00 00 00 + 0016d 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0018a 83 c0 13 add eax, 19 - 0018d 48 c7 44 24 20 + 00173 83 c0 13 add eax, 19 + 00176 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00196 44 8b c8 mov r9d, eax - 00199 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 001a0 48 8d 15 00 00 + 0017f 44 8b c8 mov r9d, eax + 00182 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00189 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 001a7 48 8d 0d 00 00 + 00190 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 001ae ff 15 00 00 00 + 00197 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 001b4 33 c0 xor eax, eax - 001b6 85 c0 test eax, eax - 001b8 75 89 jne SHORT $LN13@Adjust_man + 0019d 33 c0 xor eax, eax + 0019f 85 c0 test eax, eax + 001a1 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001ba 33 c0 xor eax, eax - 001bc 85 c0 test eax, eax - 001be 0f 85 6f ff ff + 001a3 33 c0 xor eax, eax + 001a5 85 c0 test eax, eax + 001a7 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 152 : _Ptr = reinterpret_cast(_Ptr_container); +; 173 : _Ptr = reinterpret_cast(_Ptr_container); - 001c4 48 8b 85 60 01 + 001ad 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001cf 48 89 08 mov QWORD PTR [rax], rcx + 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001b8 48 89 08 mov QWORD PTR [rax], rcx -; 153 : } +; 174 : } - 001d2 48 8d a5 48 01 + 001bb 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001d9 5f pop rdi - 001da 5d pop rbp - 001db c3 ret 0 + 001c2 5f pop rdi + 001c3 5d pop rbp + 001c4 c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -4212,40 +3960,213 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h +; COMDAT printf +_TEXT SEGMENT +_Result$ = 4 +_ArgList$ = 40 +tv77 = 280 +tv75 = 288 +__$ArrayPad$ = 296 +_Format$ = 336 +printf PROC ; COMDAT + +; 956 : { + +$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 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000f 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00014 55 push rbp + 00015 57 push rdi + 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 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 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 28 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h + 00053 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 + 00 00 lea rax, QWORD PTR _Format$[rbp+8] + 0005f 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 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006e b9 01 00 00 00 mov ecx, 1 + 00073 ff 15 00 00 00 + 00 call QWORD PTR __imp___acrt_iob_func + 00079 48 89 85 20 01 + 00 00 mov QWORD PTR tv75[rbp], rax + 00080 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 + 00 00 mov rdx, QWORD PTR _Format$[rbp] + 00091 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 + +; 961 : __crt_va_end(_ArgList); + + 000a0 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] + +; 963 : } + + 000ab 8b f8 mov edi, eax + 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData + 000b8 e8 00 00 00 00 call _RTC_CheckStackVars + 000bd 8b c7 mov eax, edi + 000bf 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000c6 48 33 cd xor rcx, rbp + 000c9 e8 00 00 00 00 call __security_check_cookie + 000ce 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 +printf ENDP +_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 _vfprintf_l +_TEXT SEGMENT +_Stream$ = 224 +_Format$ = 232 +_Locale$ = 240 +_ArgList$ = 248 +_vfprintf_l PROC ; COMDAT + +; 644 : { + +$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 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 + 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h + 00029 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 + 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 + 00 00 mov r9, QWORD PTR _Locale$[rbp] + 00046 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Format$[rbp] + 0004d 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 + 00 call QWORD PTR __imp___stdio_common_vfprintf + +; 646 : } + + 0005d 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 +_vfprintf_l ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h +; COMDAT __local_stdio_printf_options +_TEXT SEGMENT +__local_stdio_printf_options PROC ; COMDAT + +; 90 : { + +$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 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : static unsigned __int64 _OptionsStorage; +; 92 : return &_OptionsStorage; + + 0001b 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage + +; 93 : } + + 00022 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 +__local_stdio_printf_options ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -4262,25 +4183,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -4295,25 +4209,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -4328,25 +4235,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -4359,21 +4259,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod index 1c120ca..7ee68fc 100644 --- a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod +++ b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__A8BC9087_OpaqueBranching@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -101,9 +102,9 @@ PUBLIC ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLO PUBLIC ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches PUBLIC ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -144,91 +145,91 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+182 + DD imagerel xed_relbr+184 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+207 + DD imagerel xed_inst1+184 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD imagerel $LN20 - DD imagerel $LN20+272 + DD imagerel $LN20+260 DD imagerel $unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+615 + DD imagerel $LN11+617 DD imagerel $unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -240,7 +241,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+589 + DD imagerel $LN11+591 DD imagerel $unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -252,13 +253,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD imagerel $LN5 - DD imagerel $LN5+167 + DD imagerel $LN5+144 DD imagerel $unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD imagerel $LN13 - DD imagerel $LN13+500 + DD imagerel $LN13+477 DD imagerel $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z pdata ENDS ; COMDAT pdata @@ -276,7 +277,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN15 - DD imagerel $LN15+497 + DD imagerel $LN15+474 DD imagerel $unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -297,29 +298,39 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025053401H +$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025051d01H DD 0118231dH DD 070110031H DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4HA DD 031001H @@ -337,7 +348,7 @@ xdata SEGMENT $ip2state$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 0aH DB 00H DB 00H - DB 0d1H, 03H + DB 'u', 03H DB 02H DB 08aH DB 00H @@ -362,7 +373,7 @@ $cppxdata$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025053911H +$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025052211H DD 011d2322H DD 070160039H DD 05015H @@ -371,11 +382,21 @@ $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025053911 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025053901H +$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025052201H DD 011d2322H DD 07016001fH DD 05015H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 039H + DW 0235H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H @@ -387,7 +408,7 @@ xdata SEGMENT $ip2state$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 0a5H, 04H + DB 0adH, 04H DB 02H DB 0a6H DB 00H @@ -406,7 +427,7 @@ $cppxdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H +$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035064019H DD 01123317H DD 0700b00e0H DD 05009600aH @@ -514,6 +535,16 @@ CONST SEGMENT DD 00H DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 039H + DW 024fH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H @@ -525,7 +556,7 @@ xdata SEGMENT $ip2state$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 0dH, 05H + DB 015H, 05H DB 02H DB 0a6H DB 00H @@ -544,7 +575,7 @@ $cppxdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H +$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035064019H DD 01123317H DD 0700b00e4H DD 05009600aH @@ -654,28 +685,33 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025051e01H +$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025050f01H DD 010a230fH DD 07003001fH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025063a01H +$unwind$xed_inst1 DD 025062301H DD 011e2323H DD 07017001cH DD 050156016H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 040H + DB 09eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_relbr DD 025064519H +$unwind$xed_relbr DD 025064719H DD 0118231dH DD 070110026H DD 0500f6010H @@ -697,35 +733,40 @@ xed_relbr$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -770,90 +811,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -863,7 +852,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -888,223 +877,217 @@ $LN15: 00011 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 a8 - 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 117 : OpaqueBranchBlock->Start->Prev = Start->Prev; - 00040 48 8b 85 90 01 + 00029 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00047 48 8b 00 mov rax, QWORD PTR [rax] - 0004a 48 8b 8d 80 01 + 00030 48 8b 00 mov rax, QWORD PTR [rax] + 00033 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 00051 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00055 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0003a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0003e 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 118 : OpaqueBranchBlock->End->Next = End->Next; - 00059 48 8b 85 90 01 + 00042 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00060 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00064 48 8b 8d 88 01 + 00049 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004d 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR End$[rbp] - 0006b 48 8b 09 mov rcx, QWORD PTR [rcx] - 0006e 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 8b 09 mov rcx, QWORD PTR [rcx] + 00057 48 89 08 mov QWORD PTR [rax], rcx ; 119 : ; 120 : if (Start->Prev) - 00071 48 8b 85 80 01 + 0005a 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00078 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0007d 74 18 je SHORT $LN8@ObfInsertO + 00061 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00066 74 18 je SHORT $LN8@ObfInsertO ; 121 : Start->Prev->Next = OpaqueBranchBlock->Start; - 0007f 48 8b 85 80 01 + 00068 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00086 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0008a 48 8b 8d 90 01 + 0006f 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00073 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 00091 48 8b 09 mov rcx, QWORD PTR [rcx] - 00094 48 89 08 mov QWORD PTR [rax], rcx + 0007a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0007d 48 89 08 mov QWORD PTR [rax], rcx $LN8@ObfInsertO: ; 122 : if (End->Next) - 00097 48 8b 85 88 01 + 00080 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 0009e 48 83 38 00 cmp QWORD PTR [rax], 0 - 000a2 74 19 je SHORT $LN9@ObfInsertO + 00087 48 83 38 00 cmp QWORD PTR [rax], 0 + 0008b 74 19 je SHORT $LN9@ObfInsertO ; 123 : End->Next->Prev = OpaqueBranchBlock->End; - 000a4 48 8b 85 88 01 + 0008d 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 000ab 48 8b 00 mov rax, QWORD PTR [rax] - 000ae 48 8b 8d 90 01 + 00094 48 8b 00 mov rax, QWORD PTR [rax] + 00097 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 000b5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0009e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000a2 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN9@ObfInsertO: ; 124 : ; 125 : if (Start->Block->Start == Start) - 000bd 48 8b 85 80 01 + 000a6 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 + 000ad 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000b1 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 + 000b8 48 39 08 cmp QWORD PTR [rax], rcx + 000bb 75 18 jne SHORT $LN10@ObfInsertO ; 126 : Start->Block->Start = OpaqueBranchBlock->Start; - 000d4 48 8b 85 80 01 + 000bd 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 + 000c4 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000c8 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 + 000cf 48 8b 09 mov rcx, QWORD PTR [rcx] + 000d2 48 89 08 mov QWORD PTR [rax], rcx $LN10@ObfInsertO: ; 127 : ; 128 : if (Start->Block->End == End) - 000ec 48 8b 85 80 01 + 000d5 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 + 000dc 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000e0 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 + 000e7 48 39 48 08 cmp QWORD PTR [rax+8], rcx + 000eb 75 1a jne SHORT $LN11@ObfInsertO ; 129 : Start->Block->End = OpaqueBranchBlock->End; - 00104 48 8b 85 80 01 + 000ed 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 + 000f4 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000f8 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 + 000ff 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00103 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN11@ObfInsertO: ; 130 : ; 131 : //Update group for the current isntructions ; 132 : for (PNATIVE_CODE_LINK T = OpaqueBranchBlock->Start; T && T != OpaqueBranchBlock->End->Next; T = T->Next) - 0011e 48 8b 85 90 01 + 00107 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 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 + 0010e 48 8b 00 mov rax, QWORD PTR [rax] + 00111 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00115 eb 0b jmp SHORT $LN4@ObfInsertO $LN2@ObfInsertO: - 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 + 00117 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0011b 48 8b 00 mov rax, QWORD PTR [rax] + 0011e 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ObfInsertO: - 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 + 00122 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00127 74 29 je SHORT $LN3@ObfInsertO + 00129 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 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 + 00130 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00134 48 8b 00 mov rax, QWORD PTR [rax] + 00137 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0013b 74 15 je SHORT $LN3@ObfInsertO ; 133 : T->Block = Start->Block; - 00154 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00158 48 8b 8d 80 01 + 0013d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00141 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 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 + 00148 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 0014c 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00150 eb c5 jmp SHORT $LN2@ObfInsertO $LN3@ObfInsertO: ; 134 : ; 135 : PNATIVE_CODE_LINK EndBlock = End->Next; - 00169 48 8b 85 88 01 + 00152 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 00170 48 8b 00 mov rax, QWORD PTR [rax] - 00173 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax + 00159 48 8b 00 mov rax, QWORD PTR [rax] + 0015c 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax ; 136 : for (PNATIVE_CODE_LINK T = Start; T && T != EndBlock;) - 00177 48 8b 85 80 01 + 00160 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0017e 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 00167 48 89 45 48 mov QWORD PTR T$2[rbp], rax $LN5@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 + 0016b 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 00170 74 59 je SHORT $LN6@ObfInsertO + 00172 48 8b 45 28 mov rax, QWORD PTR EndBlock$[rbp] + 00176 48 39 45 48 cmp QWORD PTR T$2[rbp], rax + 0017a 74 4f je SHORT $LN6@ObfInsertO ; 137 : { ; 138 : PNATIVE_CODE_LINK RealNext = T->Next; - 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 + 0017c 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 00180 48 8b 00 mov rax, QWORD PTR [rax] + 00183 48 89 45 68 mov QWORD PTR RealNext$3[rbp], rax ; 139 : delete T; - 0019e 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 001a2 48 89 85 48 01 + 00187 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 0018b 48 89 85 48 01 00 00 mov QWORD PTR $T4[rbp], rax - 001a9 48 83 bd 48 01 + 00192 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 001b1 74 1a je SHORT $LN13@ObfInsertO - 001b3 ba 01 00 00 00 mov edx, 1 - 001b8 48 8b 8d 48 01 + 0019a 74 1a je SHORT $LN13@ObfInsertO + 0019c ba 01 00 00 00 mov edx, 1 + 001a1 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 001bf e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001c4 48 89 85 58 01 + 001a8 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001ad 48 89 85 58 01 00 00 mov QWORD PTR tv140[rbp], rax - 001cb eb 0b jmp SHORT $LN14@ObfInsertO + 001b4 eb 0b jmp SHORT $LN14@ObfInsertO $LN13@ObfInsertO: - 001cd 48 c7 85 58 01 + 001b6 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv140[rbp], 0 $LN14@ObfInsertO: ; 140 : T = RealNext; - 001d8 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] - 001dc 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 001c1 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] + 001c5 48 89 45 48 mov QWORD PTR T$2[rbp], rax ; 141 : } - 001e0 eb a0 jmp SHORT $LN5@ObfInsertO + 001c9 eb a0 jmp SHORT $LN5@ObfInsertO $LN6@ObfInsertO: ; 142 : return TRUE; - 001e2 b8 01 00 00 00 mov eax, 1 + 001cb b8 01 00 00 00 mov eax, 1 ; 143 : } - 001e7 48 8d a5 68 01 + 001d0 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 001ee 5f pop rdi - 001ef 5d pop rbp - 001f0 c3 ret 0 + 001d7 5f pop rdi + 001d8 5d pop rbp + 001d9 c3 ret 0 ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ObfInsertOpaqueBranchBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z _TEXT SEGMENT Jcc$ = 8 @@ -1135,193 +1118,187 @@ $LN13: 00016 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 72 00 00 00 mov ecx, 114 ; 00000072H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 e8 - 01 00 00 mov rcx, QWORD PTR [rsp+488] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 94 : PNATIVE_CODE_LINK Jcc = ObfGenRandomJcc(JccLabel); - 00045 ba 20 00 00 00 mov edx, 32 ; 00000020H - 0004a 8b 8d d0 01 00 + 0002e ba 20 00 00 00 mov edx, 32 ; 00000020H + 00033 8b 8d d0 01 00 00 mov ecx, DWORD PTR JccLabel$[rbp] - 00050 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc - 00055 48 89 45 08 mov QWORD PTR Jcc$[rbp], rax + 00039 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc + 0003e 48 89 45 08 mov QWORD PTR Jcc$[rbp], rax ; 95 : if (!Jcc) - 00059 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 - 0005e 75 07 jne SHORT $LN2@ObfCombine + 00042 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 + 00047 75 07 jne SHORT $LN2@ObfCombine ; 96 : return FALSE; - 00060 33 c0 xor eax, eax - 00062 e9 83 01 00 00 jmp $LN1@ObfCombine + 00049 33 c0 xor eax, eax + 0004b e9 83 01 00 00 jmp $LN1@ObfCombine $LN2@ObfCombine: ; 97 : PNATIVE_CODE_LINK Jmp = ObfGenJmpToLabel(JmpLabel); - 00067 ba 20 00 00 00 mov edx, 32 ; 00000020H - 0006c 8b 8d d8 01 00 + 00050 ba 20 00 00 00 mov edx, 32 ; 00000020H + 00055 8b 8d d8 01 00 00 mov ecx, DWORD PTR JmpLabel$[rbp] - 00072 e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel - 00077 48 89 45 28 mov QWORD PTR Jmp$[rbp], rax + 0005b e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel + 00060 48 89 45 28 mov QWORD PTR Jmp$[rbp], rax ; 98 : if (!Jmp) - 0007b 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 - 00080 75 41 jne SHORT $LN3@ObfCombine + 00064 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 + 00069 75 41 jne SHORT $LN3@ObfCombine ; 99 : { ; 100 : delete Jcc; - 00082 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] - 00086 48 89 85 08 01 + 0006b 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] + 0006f 48 89 85 08 01 00 00 mov QWORD PTR $T1[rbp], rax - 0008d 48 83 bd 08 01 + 00076 48 83 bd 08 01 00 00 00 cmp QWORD PTR $T1[rbp], 0 - 00095 74 1a je SHORT $LN5@ObfCombine - 00097 ba 01 00 00 00 mov edx, 1 - 0009c 48 8b 8d 08 01 + 0007e 74 1a je SHORT $LN5@ObfCombine + 00080 ba 01 00 00 00 mov edx, 1 + 00085 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR $T1[rbp] - 000a3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 000a8 48 89 85 98 01 + 0008c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00091 48 89 85 98 01 00 00 mov QWORD PTR tv76[rbp], rax - 000af eb 0b jmp SHORT $LN6@ObfCombine + 00098 eb 0b jmp SHORT $LN6@ObfCombine $LN5@ObfCombine: - 000b1 48 c7 85 98 01 + 0009a 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN6@ObfCombine: ; 101 : return FALSE; - 000bc 33 c0 xor eax, eax - 000be e9 27 01 00 00 jmp $LN1@ObfCombine + 000a5 33 c0 xor eax, eax + 000a7 e9 27 01 00 00 jmp $LN1@ObfCombine $LN3@ObfCombine: ; 102 : } ; 103 : ; 104 : NcPrependToBlock(NotTaken, Jcc); - 000c3 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] - 000c7 48 8b 8d c0 01 + 000ac 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] + 000b0 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000ce e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 000b7 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 105 : NcAppendToBlock(NotTaken, Jmp); - 000d3 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] - 000d7 48 8b 8d c0 01 + 000bc 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] + 000c0 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000de e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000c7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 106 : ; 107 : NcPrependToBlock(Taken, new NATIVE_CODE_LINK(JccLabel, Taken)); - 000e3 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000e8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ed 48 89 85 48 01 + 000cc b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000d1 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000d6 48 89 85 48 01 00 00 mov QWORD PTR $T3[rbp], rax - 000f4 48 83 bd 48 01 + 000dd 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 000fc 74 22 je SHORT $LN7@ObfCombine - 000fe 4c 8b 85 c8 01 + 000e5 74 22 je SHORT $LN7@ObfCombine + 000e7 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 00105 8b 95 d0 01 00 + 000ee 8b 95 d0 01 00 00 mov edx, DWORD PTR JccLabel$[rbp] - 0010b 48 8b 8d 48 01 + 000f4 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 00112 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00117 48 89 85 98 01 + 000fb e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00100 48 89 85 98 01 00 00 mov QWORD PTR tv94[rbp], rax - 0011e eb 0b jmp SHORT $LN8@ObfCombine + 00107 eb 0b jmp SHORT $LN8@ObfCombine $LN7@ObfCombine: - 00120 48 c7 85 98 01 + 00109 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv94[rbp], 0 $LN8@ObfCombine: - 0012b 48 8b 85 98 01 + 00114 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv94[rbp] - 00132 48 89 85 28 01 + 0011b 48 89 85 28 01 00 00 mov QWORD PTR $T2[rbp], rax - 00139 48 8b 95 28 01 + 00122 48 8b 95 28 01 00 00 mov rdx, QWORD PTR $T2[rbp] - 00140 48 8b 8d c8 01 + 00129 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 00147 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 00130 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 108 : NcAppendToBlock(Taken, new NATIVE_CODE_LINK(JmpLabel, Taken)); - 0014c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00151 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00156 48 89 85 88 01 + 00135 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0013a e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0013f 48 89 85 88 01 00 00 mov QWORD PTR $T5[rbp], rax - 0015d 48 83 bd 88 01 + 00146 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00165 74 22 je SHORT $LN9@ObfCombine - 00167 4c 8b 85 c8 01 + 0014e 74 22 je SHORT $LN9@ObfCombine + 00150 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 0016e 8b 95 d8 01 00 + 00157 8b 95 d8 01 00 00 mov edx, DWORD PTR JmpLabel$[rbp] - 00174 48 8b 8d 88 01 + 0015d 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 0017b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00180 48 89 85 98 01 + 00164 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00169 48 89 85 98 01 00 00 mov QWORD PTR tv141[rbp], rax - 00187 eb 0b jmp SHORT $LN10@ObfCombine + 00170 eb 0b jmp SHORT $LN10@ObfCombine $LN9@ObfCombine: - 00189 48 c7 85 98 01 + 00172 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv141[rbp], 0 $LN10@ObfCombine: - 00194 48 8b 85 98 01 + 0017d 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv141[rbp] - 0019b 48 89 85 68 01 + 00184 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 001a2 48 8b 95 68 01 + 0018b 48 8b 95 68 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 001a9 48 8b 8d c8 01 + 00192 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 001b0 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00199 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 109 : ; 110 : NcInsertBlockAfter(NotTaken->End, Taken, FALSE); - 001b5 45 33 c0 xor r8d, r8d - 001b8 48 8b 95 c8 01 + 0019e 45 33 c0 xor r8d, r8d + 001a1 48 8b 95 c8 01 00 00 mov rdx, QWORD PTR Taken$[rbp] - 001bf 48 8b 85 c0 01 + 001a8 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001c6 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 001ca e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + 001af 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 001b3 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter ; 111 : NotTaken->End = Taken->End; - 001cf 48 8b 85 c0 01 + 001b8 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001d6 48 8b 8d c8 01 + 001bf 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 001dd 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 001e1 48 89 48 08 mov QWORD PTR [rax+8], rcx + 001c6 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 001ca 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 112 : return TRUE; - 001e5 b8 01 00 00 00 mov eax, 1 + 001ce b8 01 00 00 00 mov eax, 1 $LN1@ObfCombine: ; 113 : } - 001ea 48 8d a5 a8 01 + 001d3 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001f1 5f pop rdi - 001f2 5d pop rbp - 001f3 c3 ret 0 + 001da 5f pop rdi + 001db 5d pop rbp + 001dc c3 ret 0 ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ENDP ; ObfCombineOpaqueBranches _TEXT ENDS ; COMDAT text$x @@ -1459,7 +1436,7 @@ JmpLabel$ = 472 ?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4HA ENDP ; `ObfCombineOpaqueBranches'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z _TEXT SEGMENT tv74 = 192 @@ -1481,57 +1458,51 @@ $LN5: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 89 : return (NcDeepCopyPartialBlock(Start, End, Taken) && !NcDeepCopyPartialBlock(Start, End, NotTaken)); - 00045 4c 8b 85 08 01 + 0002e 4c 8b 85 08 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 0004c 48 8b 95 f8 00 + 00035 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 00053 48 8b 8d f0 00 + 0003c 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 0005a e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 0005f 85 c0 test eax, eax - 00061 74 2a je SHORT $LN3@ObfCreateO - 00063 4c 8b 85 00 01 + 00043 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 00048 85 c0 test eax, eax + 0004a 74 2a je SHORT $LN3@ObfCreateO + 0004c 4c 8b 85 00 01 00 00 mov r8, QWORD PTR NotTaken$[rbp] - 0006a 48 8b 95 f8 00 + 00053 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 00071 48 8b 8d f0 00 + 0005a 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 00078 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 0007d 85 c0 test eax, eax - 0007f 75 0c jne SHORT $LN3@ObfCreateO - 00081 c7 85 c0 00 00 + 00061 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 00066 85 c0 test eax, eax + 00068 75 0c jne SHORT $LN3@ObfCreateO + 0006a c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv74[rbp], 1 - 0008b eb 0a jmp SHORT $LN4@ObfCreateO + 00074 eb 0a jmp SHORT $LN4@ObfCreateO $LN3@ObfCreateO: - 0008d c7 85 c0 00 00 + 00076 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv74[rbp], 0 $LN4@ObfCreateO: - 00097 8b 85 c0 00 00 + 00080 8b 85 c0 00 00 00 mov eax, DWORD PTR tv74[rbp] ; 90 : } - 0009d 48 8d a5 d8 00 + 00086 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000a4 5f pop rdi - 000a5 5d pop rbp - 000a6 c3 ret 0 + 0008d 5f pop rdi + 0008e 5d pop rbp + 0008f c3 ret 0 ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ENDP ; ObfCreateOpaqueBranches _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1564,30 +1535,30 @@ $LN11: 0000b 48 81 ec 00 07 00 00 sub rsp, 1792 ; 00000700H 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00017 48 8b fc mov rdi, rsp - 0001a b9 c0 01 00 00 mov ecx, 448 ; 000001c0H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 8b 8c 24 28 07 + 00017 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 0001c b9 24 01 00 00 mov ecx, 292 ; 00000124H + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 8b 8c 24 28 07 00 00 mov ecx, DWORD PTR [rsp+1832] - 0002d 48 8b 05 00 00 + 0002f 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00034 48 33 c5 xor rax, rbp - 00037 48 89 85 c0 06 + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 c0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 58 : XED_STATE MachineState; ; 59 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004a c7 45 08 01 00 + 0004c c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 60 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00051 c7 45 0c 08 00 + 00053 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 61 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1597,204 +1568,204 @@ $LN11: ; 65 : ; 66 : XedInst1(&EncoderInstruction, MachineState, XED_ICLASS_JMP, DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 00058 44 8b 85 f8 06 + 0005a 44 8b 85 f8 06 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 0005f 33 d2 xor edx, edx - 00061 48 8d 8d c8 05 + 00061 33 d2 xor edx, edx + 00063 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 00068 e8 00 00 00 00 call xed_relbr - 0006d 48 8d 8d 78 05 + 0006a e8 00 00 00 00 call xed_relbr + 0006f 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00074 48 8b f9 mov rdi, rcx - 00077 48 8b f0 mov rsi, rax - 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007f f3 a4 rep movsb - 00081 48 8d 85 80 06 + 00076 48 8b f9 mov rdi, rcx + 00079 48 8b f0 mov rsi, rax + 0007c b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00081 f3 a4 rep movsb + 00083 48 8d 85 80 06 00 00 lea rax, QWORD PTR $T13[rbp] - 00088 48 8d 8d 78 05 + 0008a 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 0008f 48 8b f8 mov rdi, rax - 00092 48 8b f1 mov rsi, rcx - 00095 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009a f3 a4 rep movsb - 0009c 48 8d 85 80 06 + 00091 48 8b f8 mov rdi, rax + 00094 48 8b f1 mov rsi, rcx + 00097 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009c f3 a4 rep movsb + 0009e 48 8d 85 80 06 00 00 lea rax, QWORD PTR $T13[rbp] - 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000a8 44 8b 8d f8 06 + 000a5 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000aa 44 8b 8d f8 06 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000af 41 b8 3c 01 00 + 000b1 41 b8 3c 01 00 00 mov r8d, 316 ; 0000013cH - 000b5 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] - 000b9 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000bd e8 00 00 00 00 call xed_inst1 + 000b7 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] + 000bb 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000bf e8 00 00 00 00 call xed_inst1 ; 67 : ; 68 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000c2 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000c6 48 8d 8d f0 01 + 000c4 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000c8 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000cd e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000cf e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 69 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000d2 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000d6 48 8d 8d f0 01 + 000d4 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000d8 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000dd e8 00 00 00 00 call xed_convert_to_encoder_request - 000e2 85 c0 test eax, eax - 000e4 75 07 jne SHORT $LN2@ObfGenJmpT + 000df e8 00 00 00 00 call xed_convert_to_encoder_request + 000e4 85 c0 test eax, eax + 000e6 75 07 jne SHORT $LN2@ObfGenJmpT ; 70 : return NULL; - 000e6 33 c0 xor eax, eax - 000e8 e9 30 01 00 00 jmp $LN1@ObfGenJmpT + 000e8 33 c0 xor eax, eax + 000ea e9 30 01 00 00 jmp $LN1@ObfGenJmpT $LN2@ObfGenJmpT: ; 71 : ; 72 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 000ed 4c 8d 8d f4 02 + 000ef 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 000f4 41 b8 0f 00 00 + 000f6 41 b8 0f 00 00 00 mov r8d, 15 - 000fa 48 8d 95 c8 02 + 000fc 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 00101 48 8d 8d f0 01 + 00103 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 00108 e8 00 00 00 00 call xed_encode - 0010d 85 c0 test eax, eax - 0010f 74 07 je SHORT $LN3@ObfGenJmpT + 0010a e8 00 00 00 00 call xed_encode + 0010f 85 c0 test eax, eax + 00111 74 07 je SHORT $LN3@ObfGenJmpT ; 73 : return NULL; - 00111 33 c0 xor eax, eax - 00113 e9 05 01 00 00 jmp $LN1@ObfGenJmpT + 00113 33 c0 xor eax, eax + 00115 e9 05 01 00 00 jmp $LN1@ObfGenJmpT $LN3@ObfGenJmpT: ; 74 : ; 75 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); - 00118 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0011d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00122 48 89 85 38 06 + 0011a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0011f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00124 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 00129 48 83 bd 38 06 + 0012b 48 83 bd 38 06 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00131 74 30 je SHORT $LN6@ObfGenJmpT - 00133 c7 44 24 20 00 + 00133 74 30 je SHORT $LN6@ObfGenJmpT + 00135 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0013b 44 8b 8d f4 02 + 0013d 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 00142 4c 8d 85 c8 02 + 00144 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 00149 ba 04 00 00 00 mov edx, 4 - 0014e 48 8b 8d 38 06 + 0014b ba 04 00 00 00 mov edx, 4 + 00150 48 8b 8d 38 06 00 00 mov rcx, QWORD PTR $T11[rbp] - 00155 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0015a 48 89 85 b8 06 + 00157 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0015c 48 89 85 b8 06 00 00 mov QWORD PTR tv133[rbp], rax - 00161 eb 0b jmp SHORT $LN7@ObfGenJmpT + 00163 eb 0b jmp SHORT $LN7@ObfGenJmpT $LN6@ObfGenJmpT: - 00163 48 c7 85 b8 06 + 00165 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv133[rbp], 0 $LN7@ObfGenJmpT: - 0016e 48 8b 85 b8 06 + 00170 48 8b 85 b8 06 00 00 mov rax, QWORD PTR tv133[rbp] - 00175 48 89 85 18 06 + 00177 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 0017c 48 8b 85 18 06 + 0017e 48 8b 85 18 06 00 00 mov rax, QWORD PTR $T10[rbp] - 00183 48 89 85 18 03 + 00185 48 89 85 18 03 00 00 mov QWORD PTR Link$[rbp], rax ; 76 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) - 0018a 48 8b 85 18 03 + 0018c 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00191 48 83 c0 30 add rax, 48 ; 00000030H - 00195 48 8b 8d 18 03 + 00193 48 83 c0 30 add rax, 48 ; 00000030H + 00197 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0019c 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001a0 48 8b 8d 18 03 + 0019e 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001a2 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001a7 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 001ab 48 8b c8 mov rcx, rax - 001ae e8 00 00 00 00 call xed_decode - 001b3 85 c0 test eax, eax - 001b5 74 41 je SHORT $LN4@ObfGenJmpT + 001a9 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001ad 48 8b c8 mov rcx, rax + 001b0 e8 00 00 00 00 call xed_decode + 001b5 85 c0 test eax, eax + 001b7 74 41 je SHORT $LN4@ObfGenJmpT ; 77 : { ; 78 : delete Link; - 001b7 48 8b 85 18 03 + 001b9 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001be 48 89 85 58 06 + 001c0 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 001c5 48 83 bd 58 06 + 001c7 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 001cd 74 1a je SHORT $LN8@ObfGenJmpT - 001cf ba 01 00 00 00 mov edx, 1 - 001d4 48 8b 8d 58 06 + 001cf 74 1a je SHORT $LN8@ObfGenJmpT + 001d1 ba 01 00 00 00 mov edx, 1 + 001d6 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 001db e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001e0 48 89 85 b8 06 + 001dd e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001e2 48 89 85 b8 06 00 00 mov QWORD PTR tv145[rbp], rax - 001e7 eb 0b jmp SHORT $LN9@ObfGenJmpT + 001e9 eb 0b jmp SHORT $LN9@ObfGenJmpT $LN8@ObfGenJmpT: - 001e9 48 c7 85 b8 06 + 001eb 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv145[rbp], 0 $LN9@ObfGenJmpT: ; 79 : return NULL; - 001f4 33 c0 xor eax, eax - 001f6 eb 25 jmp SHORT $LN1@ObfGenJmpT + 001f6 33 c0 xor eax, eax + 001f8 eb 25 jmp SHORT $LN1@ObfGenJmpT $LN4@ObfGenJmpT: ; 80 : } ; 81 : Link->Label = LabelId; - 001f8 48 8b 85 18 03 + 001fa 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001ff 8b 8d f0 06 00 + 00201 8b 8d f0 06 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00205 89 48 1c mov DWORD PTR [rax+28], ecx + 00207 89 48 1c mov DWORD PTR [rax+28], ecx ; 82 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 00208 48 8b 85 18 03 + 0020a 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0020f c7 40 18 06 00 + 00211 c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 83 : ; 84 : return Link; - 00216 48 8b 85 18 03 + 00218 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenJmpT: ; 85 : } - 0021d 48 8b f8 mov rdi, rax - 00220 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00224 48 8d 15 00 00 + 0021f 48 8b f8 mov rdi, rax + 00222 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00226 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 0022b e8 00 00 00 00 call _RTC_CheckStackVars - 00230 48 8b c7 mov rax, rdi - 00233 48 8b 8d c0 06 + 0022d e8 00 00 00 00 call _RTC_CheckStackVars + 00232 48 8b c7 mov rax, rdi + 00235 48 8b 8d c0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0023a 48 33 cd xor rcx, rbp - 0023d e8 00 00 00 00 call __security_check_cookie - 00242 48 8d a5 d0 06 + 0023c 48 33 cd xor rcx, rbp + 0023f e8 00 00 00 00 call __security_check_cookie + 00244 48 8d a5 d0 06 00 00 lea rsp, QWORD PTR [rbp+1744] - 00249 5f pop rdi - 0024a 5e pop rsi - 0024b 5d pop rbp - 0024c c3 ret 0 + 0024b 5f pop rdi + 0024c 5e pop rsi + 0024d 5d pop rbp + 0024e c3 ret 0 ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenJmpToLabel _TEXT ENDS ; COMDAT text$x @@ -1871,7 +1842,7 @@ DisplacementWidth$ = 1784 ?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenJmpToLabel'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1906,30 +1877,30 @@ $LN11: 0000b 48 81 ec 20 07 00 00 sub rsp, 1824 ; 00000720H 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00017 48 8b fc mov rdi, rsp - 0001a b9 c8 01 00 00 mov ecx, 456 ; 000001c8H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 8b 8c 24 48 07 + 00017 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 0001c b9 2c 01 00 00 mov ecx, 300 ; 0000012cH + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 8b 8c 24 48 07 00 00 mov ecx, DWORD PTR [rsp+1864] - 0002d 48 8b 05 00 00 + 0002f 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00034 48 33 c5 xor rax, rbp - 00037 48 89 85 e0 06 + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 e0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 27 : XED_STATE MachineState; ; 28 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004a c7 45 08 01 00 + 0004c c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 29 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00051 c7 45 0c 08 00 + 00053 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 30 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1939,211 +1910,211 @@ $LN11: ; 34 : ; 35 : XedInst1(&EncoderInstruction, MachineState, ObfGetRandomJccClass(), DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 00058 44 8b 85 18 07 + 0005a 44 8b 85 18 07 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 0005f 33 d2 xor edx, edx - 00061 48 8d 8d c8 05 + 00061 33 d2 xor edx, edx + 00063 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 00068 e8 00 00 00 00 call xed_relbr - 0006d 48 8d 8d 78 05 + 0006a e8 00 00 00 00 call xed_relbr + 0006f 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00074 48 8b f9 mov rdi, rcx - 00077 48 8b f0 mov rsi, rax - 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007f f3 a4 rep movsb - 00081 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass - 00086 89 85 d4 06 00 + 00076 48 8b f9 mov rdi, rcx + 00079 48 8b f0 mov rsi, rax + 0007c b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00081 f3 a4 rep movsb + 00083 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass + 00088 89 85 d4 06 00 00 mov DWORD PTR tv77[rbp], eax - 0008c 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] - 00090 48 89 85 18 06 + 0008e 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] + 00092 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 00097 48 8d 85 a0 06 + 00099 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 0009e 48 8d 8d 78 05 + 000a0 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 000a5 48 8b f8 mov rdi, rax - 000a8 48 8b f1 mov rsi, rcx - 000ab b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b0 f3 a4 rep movsb - 000b2 48 8d 85 a0 06 + 000a7 48 8b f8 mov rdi, rax + 000aa 48 8b f1 mov rsi, rcx + 000ad b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b2 f3 a4 rep movsb + 000b4 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 000b9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000be 44 8b 8d 18 07 + 000bb 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000c0 44 8b 8d 18 07 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000c5 44 8b 85 d4 06 + 000c7 44 8b 85 d4 06 00 00 mov r8d, DWORD PTR tv77[rbp] - 000cc 48 8b 95 18 06 + 000ce 48 8b 95 18 06 00 00 mov rdx, QWORD PTR $T10[rbp] - 000d3 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000d7 e8 00 00 00 00 call xed_inst1 + 000d5 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000d9 e8 00 00 00 00 call xed_inst1 ; 36 : ; 37 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000dc 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000e0 48 8d 8d f0 01 + 000de 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000e2 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000e7 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000e9 e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 38 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000ec 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000f0 48 8d 8d f0 01 + 000ee 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000f2 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000f7 e8 00 00 00 00 call xed_convert_to_encoder_request - 000fc 85 c0 test eax, eax - 000fe 75 07 jne SHORT $LN2@ObfGenRand + 000f9 e8 00 00 00 00 call xed_convert_to_encoder_request + 000fe 85 c0 test eax, eax + 00100 75 07 jne SHORT $LN2@ObfGenRand ; 39 : return NULL; - 00100 33 c0 xor eax, eax - 00102 e9 30 01 00 00 jmp $LN1@ObfGenRand + 00102 33 c0 xor eax, eax + 00104 e9 30 01 00 00 jmp $LN1@ObfGenRand $LN2@ObfGenRand: ; 40 : ; 41 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 00107 4c 8d 8d f4 02 + 00109 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 0010e 41 b8 0f 00 00 + 00110 41 b8 0f 00 00 00 mov r8d, 15 - 00114 48 8d 95 c8 02 + 00116 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 0011b 48 8d 8d f0 01 + 0011d 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 00122 e8 00 00 00 00 call xed_encode - 00127 85 c0 test eax, eax - 00129 74 07 je SHORT $LN3@ObfGenRand + 00124 e8 00 00 00 00 call xed_encode + 00129 85 c0 test eax, eax + 0012b 74 07 je SHORT $LN3@ObfGenRand ; 42 : return NULL; - 0012b 33 c0 xor eax, eax - 0012d e9 05 01 00 00 jmp $LN1@ObfGenRand + 0012d 33 c0 xor eax, eax + 0012f e9 05 01 00 00 jmp $LN1@ObfGenRand $LN3@ObfGenRand: ; 43 : ; 44 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); - 00132 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00137 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0013c 48 89 85 58 06 + 00134 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00139 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0013e 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 00143 48 83 bd 58 06 + 00145 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 0014b 74 30 je SHORT $LN6@ObfGenRand - 0014d c7 44 24 20 00 + 0014d 74 30 je SHORT $LN6@ObfGenRand + 0014f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00155 44 8b 8d f4 02 + 00157 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 0015c 4c 8d 85 c8 02 + 0015e 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 00163 ba 04 00 00 00 mov edx, 4 - 00168 48 8b 8d 58 06 + 00165 ba 04 00 00 00 mov edx, 4 + 0016a 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 0016f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00174 48 89 85 d8 06 + 00171 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00176 48 89 85 d8 06 00 00 mov QWORD PTR tv137[rbp], rax - 0017b eb 0b jmp SHORT $LN7@ObfGenRand + 0017d eb 0b jmp SHORT $LN7@ObfGenRand $LN6@ObfGenRand: - 0017d 48 c7 85 d8 06 + 0017f 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv137[rbp], 0 $LN7@ObfGenRand: - 00188 48 8b 85 d8 06 + 0018a 48 8b 85 d8 06 00 00 mov rax, QWORD PTR tv137[rbp] - 0018f 48 89 85 38 06 + 00191 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 00196 48 8b 85 38 06 + 00198 48 8b 85 38 06 00 00 mov rax, QWORD PTR $T11[rbp] - 0019d 48 89 85 18 03 + 0019f 48 89 85 18 03 00 00 mov QWORD PTR Link$[rbp], rax ; 45 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) - 001a4 48 8b 85 18 03 + 001a6 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001ab 48 83 c0 30 add rax, 48 ; 00000030H - 001af 48 8b 8d 18 03 + 001ad 48 83 c0 30 add rax, 48 ; 00000030H + 001b1 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001b6 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001ba 48 8b 8d 18 03 + 001b8 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001bc 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001c1 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 001c5 48 8b c8 mov rcx, rax - 001c8 e8 00 00 00 00 call xed_decode - 001cd 85 c0 test eax, eax - 001cf 74 41 je SHORT $LN4@ObfGenRand + 001c3 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001c7 48 8b c8 mov rcx, rax + 001ca e8 00 00 00 00 call xed_decode + 001cf 85 c0 test eax, eax + 001d1 74 41 je SHORT $LN4@ObfGenRand ; 46 : { ; 47 : delete Link; - 001d1 48 8b 85 18 03 + 001d3 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001d8 48 89 85 78 06 + 001da 48 89 85 78 06 00 00 mov QWORD PTR $T13[rbp], rax - 001df 48 83 bd 78 06 + 001e1 48 83 bd 78 06 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e7 74 1a je SHORT $LN8@ObfGenRand - 001e9 ba 01 00 00 00 mov edx, 1 - 001ee 48 8b 8d 78 06 + 001e9 74 1a je SHORT $LN8@ObfGenRand + 001eb ba 01 00 00 00 mov edx, 1 + 001f0 48 8b 8d 78 06 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f5 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001fa 48 89 85 d8 06 + 001f7 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001fc 48 89 85 d8 06 00 00 mov QWORD PTR tv149[rbp], rax - 00201 eb 0b jmp SHORT $LN9@ObfGenRand + 00203 eb 0b jmp SHORT $LN9@ObfGenRand $LN8@ObfGenRand: - 00203 48 c7 85 d8 06 + 00205 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv149[rbp], 0 $LN9@ObfGenRand: ; 48 : return NULL; - 0020e 33 c0 xor eax, eax - 00210 eb 25 jmp SHORT $LN1@ObfGenRand + 00210 33 c0 xor eax, eax + 00212 eb 25 jmp SHORT $LN1@ObfGenRand $LN4@ObfGenRand: ; 49 : } ; 50 : Link->Label = LabelId; - 00212 48 8b 85 18 03 + 00214 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00219 8b 8d 10 07 00 + 0021b 8b 8d 10 07 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 0021f 89 48 1c mov DWORD PTR [rax+28], ecx + 00221 89 48 1c mov DWORD PTR [rax+28], ecx ; 51 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 00222 48 8b 85 18 03 + 00224 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00229 c7 40 18 06 00 + 0022b c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 52 : ; 53 : return Link; - 00230 48 8b 85 18 03 + 00232 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenRand: ; 54 : } - 00237 48 8b f8 mov rdi, rax - 0023a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0023e 48 8d 15 00 00 + 00239 48 8b f8 mov rdi, rax + 0023c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00240 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 00245 e8 00 00 00 00 call _RTC_CheckStackVars - 0024a 48 8b c7 mov rax, rdi - 0024d 48 8b 8d e0 06 + 00247 e8 00 00 00 00 call _RTC_CheckStackVars + 0024c 48 8b c7 mov rax, rdi + 0024f 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00254 48 33 cd xor rcx, rbp - 00257 e8 00 00 00 00 call __security_check_cookie - 0025c 48 8d a5 f0 06 + 00256 48 33 cd xor rcx, rbp + 00259 e8 00 00 00 00 call __security_check_cookie + 0025e 48 8d a5 f0 06 00 00 lea rsp, QWORD PTR [rbp+1776] - 00263 5f pop rdi - 00264 5e pop rsi - 00265 5d pop rbp - 00266 c3 ret 0 + 00265 5f pop rdi + 00266 5e pop rsi + 00267 5d pop rbp + 00268 c3 ret 0 ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenRandomJcc _TEXT ENDS ; COMDAT text$x @@ -2224,7 +2195,7 @@ DisplacementWidth$ = 1816 ?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenRandomJcc'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ _TEXT SEGMENT tv66 = 192 @@ -2238,151 +2209,148 @@ $LN20: 00003 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : switch (rand() % 14) - 0002a ff 15 00 00 00 + 0001b ff 15 00 00 00 00 call QWORD PTR __imp_rand - 00030 99 cdq - 00031 b9 0e 00 00 00 mov ecx, 14 - 00036 f7 f9 idiv ecx - 00038 8b c2 mov eax, edx - 0003a 89 85 c0 00 00 + 00021 99 cdq + 00022 b9 0e 00 00 00 mov ecx, 14 + 00027 f7 f9 idiv ecx + 00029 8b c2 mov eax, edx + 0002b 89 85 c0 00 00 00 mov DWORD PTR tv66[rbp], eax - 00040 83 bd c0 00 00 + 00031 83 bd c0 00 00 00 0e cmp DWORD PTR tv66[rbp], 14 - 00047 77 7c ja SHORT $LN2@ObfGetRand - 00049 48 63 85 c0 00 + 00038 77 7c ja SHORT $LN2@ObfGetRand + 0003a 48 63 85 c0 00 00 00 movsxd rax, DWORD PTR tv66[rbp] - 00050 48 8d 0d 00 00 + 00041 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase - 00057 8b 84 81 00 00 + 00048 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN19@ObfGetRand[rcx+rax*4] - 0005e 48 03 c1 add rax, rcx - 00061 ff e0 jmp rax + 0004f 48 03 c1 add rax, rcx + 00052 ff e0 jmp rax $LN4@ObfGetRand: ; 6 : { ; 7 : case 0: return XED_ICLASS_JL; - 00063 b8 3a 01 00 00 mov eax, 314 ; 0000013aH - 00068 eb 60 jmp SHORT $LN1@ObfGetRand + 00054 b8 3a 01 00 00 mov eax, 314 ; 0000013aH + 00059 eb 60 jmp SHORT $LN1@ObfGetRand $LN5@ObfGetRand: ; 8 : case 1: return XED_ICLASS_JLE; - 0006a b8 3b 01 00 00 mov eax, 315 ; 0000013bH - 0006f eb 59 jmp SHORT $LN1@ObfGetRand + 0005b b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 00060 eb 59 jmp SHORT $LN1@ObfGetRand $LN6@ObfGetRand: ; 9 : case 2: return XED_ICLASS_JNB; - 00071 b8 3e 01 00 00 mov eax, 318 ; 0000013eH - 00076 eb 52 jmp SHORT $LN1@ObfGetRand + 00062 b8 3e 01 00 00 mov eax, 318 ; 0000013eH + 00067 eb 52 jmp SHORT $LN1@ObfGetRand $LN7@ObfGetRand: ; 10 : case 3: return XED_ICLASS_JNBE; - 00078 b8 3f 01 00 00 mov eax, 319 ; 0000013fH - 0007d eb 4b jmp SHORT $LN1@ObfGetRand + 00069 b8 3f 01 00 00 mov eax, 319 ; 0000013fH + 0006e eb 4b jmp SHORT $LN1@ObfGetRand $LN8@ObfGetRand: ; 11 : case 4: return XED_ICLASS_JNL; - 0007f b8 40 01 00 00 mov eax, 320 ; 00000140H - 00084 eb 44 jmp SHORT $LN1@ObfGetRand + 00070 b8 40 01 00 00 mov eax, 320 ; 00000140H + 00075 eb 44 jmp SHORT $LN1@ObfGetRand $LN9@ObfGetRand: ; 12 : case 5: return XED_ICLASS_JNLE; - 00086 b8 41 01 00 00 mov eax, 321 ; 00000141H - 0008b eb 3d jmp SHORT $LN1@ObfGetRand + 00077 b8 41 01 00 00 mov eax, 321 ; 00000141H + 0007c eb 3d jmp SHORT $LN1@ObfGetRand $LN10@ObfGetRand: ; 13 : case 6: return XED_ICLASS_JNO; - 0008d b8 42 01 00 00 mov eax, 322 ; 00000142H - 00092 eb 36 jmp SHORT $LN1@ObfGetRand + 0007e b8 42 01 00 00 mov eax, 322 ; 00000142H + 00083 eb 36 jmp SHORT $LN1@ObfGetRand $LN11@ObfGetRand: ; 14 : case 7: return XED_ICLASS_JNP; - 00094 b8 43 01 00 00 mov eax, 323 ; 00000143H - 00099 eb 2f jmp SHORT $LN1@ObfGetRand + 00085 b8 43 01 00 00 mov eax, 323 ; 00000143H + 0008a eb 2f jmp SHORT $LN1@ObfGetRand $LN12@ObfGetRand: ; 15 : case 8: return XED_ICLASS_JNS; - 0009b b8 44 01 00 00 mov eax, 324 ; 00000144H - 000a0 eb 28 jmp SHORT $LN1@ObfGetRand + 0008c b8 44 01 00 00 mov eax, 324 ; 00000144H + 00091 eb 28 jmp SHORT $LN1@ObfGetRand $LN13@ObfGetRand: ; 16 : case 9: return XED_ICLASS_JNZ; - 000a2 b8 45 01 00 00 mov eax, 325 ; 00000145H - 000a7 eb 21 jmp SHORT $LN1@ObfGetRand + 00093 b8 45 01 00 00 mov eax, 325 ; 00000145H + 00098 eb 21 jmp SHORT $LN1@ObfGetRand $LN14@ObfGetRand: ; 17 : case 10: return XED_ICLASS_JO; - 000a9 b8 46 01 00 00 mov eax, 326 ; 00000146H - 000ae eb 1a jmp SHORT $LN1@ObfGetRand + 0009a b8 46 01 00 00 mov eax, 326 ; 00000146H + 0009f eb 1a jmp SHORT $LN1@ObfGetRand $LN15@ObfGetRand: ; 18 : case 11: return XED_ICLASS_JP; - 000b0 b8 47 01 00 00 mov eax, 327 ; 00000147H - 000b5 eb 13 jmp SHORT $LN1@ObfGetRand + 000a1 b8 47 01 00 00 mov eax, 327 ; 00000147H + 000a6 eb 13 jmp SHORT $LN1@ObfGetRand $LN16@ObfGetRand: ; 19 : case 13: return XED_ICLASS_JS; - 000b7 b8 49 01 00 00 mov eax, 329 ; 00000149H - 000bc eb 0c jmp SHORT $LN1@ObfGetRand + 000a8 b8 49 01 00 00 mov eax, 329 ; 00000149H + 000ad eb 0c jmp SHORT $LN1@ObfGetRand $LN17@ObfGetRand: ; 20 : case 14: return XED_ICLASS_JZ; - 000be b8 4a 01 00 00 mov eax, 330 ; 0000014aH - 000c3 eb 05 jmp SHORT $LN1@ObfGetRand + 000af b8 4a 01 00 00 mov eax, 330 ; 0000014aH + 000b4 eb 05 jmp SHORT $LN1@ObfGetRand $LN2@ObfGetRand: ; 21 : } ; 22 : return XED_ICLASS_JLE; - 000c5 b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 000b6 b8 3b 01 00 00 mov eax, 315 ; 0000013bH $LN1@ObfGetRand: ; 23 : } - 000ca 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000d1 5f pop rdi - 000d2 5d pop rbp - 000d3 c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 + 000c5 0f 1f 00 npad 3 $LN19@ObfGetRand: - 000d4 00 00 00 00 DD $LN4@ObfGetRand - 000d8 00 00 00 00 DD $LN5@ObfGetRand - 000dc 00 00 00 00 DD $LN6@ObfGetRand - 000e0 00 00 00 00 DD $LN7@ObfGetRand - 000e4 00 00 00 00 DD $LN8@ObfGetRand - 000e8 00 00 00 00 DD $LN9@ObfGetRand - 000ec 00 00 00 00 DD $LN10@ObfGetRand - 000f0 00 00 00 00 DD $LN11@ObfGetRand - 000f4 00 00 00 00 DD $LN12@ObfGetRand - 000f8 00 00 00 00 DD $LN13@ObfGetRand - 000fc 00 00 00 00 DD $LN14@ObfGetRand - 00100 00 00 00 00 DD $LN15@ObfGetRand - 00104 00 00 00 00 DD $LN2@ObfGetRand - 00108 00 00 00 00 DD $LN16@ObfGetRand - 0010c 00 00 00 00 DD $LN17@ObfGetRand + 000c8 00 00 00 00 DD $LN4@ObfGetRand + 000cc 00 00 00 00 DD $LN5@ObfGetRand + 000d0 00 00 00 00 DD $LN6@ObfGetRand + 000d4 00 00 00 00 DD $LN7@ObfGetRand + 000d8 00 00 00 00 DD $LN8@ObfGetRand + 000dc 00 00 00 00 DD $LN9@ObfGetRand + 000e0 00 00 00 00 DD $LN10@ObfGetRand + 000e4 00 00 00 00 DD $LN11@ObfGetRand + 000e8 00 00 00 00 DD $LN12@ObfGetRand + 000ec 00 00 00 00 DD $LN13@ObfGetRand + 000f0 00 00 00 00 DD $LN14@ObfGetRand + 000f4 00 00 00 00 DD $LN15@ObfGetRand + 000f8 00 00 00 00 DD $LN2@ObfGetRand + 000fc 00 00 00 00 DD $LN16@ObfGetRand + 00100 00 00 00 00 DD $LN17@ObfGetRand ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ENDP ; ObfGetRandomJccClass _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2399,36 +2367,30 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -2450,86 +2412,80 @@ xed_inst1 PROC ; COMDAT 00017 48 81 ec e0 00 00 00 sub rsp, 224 ; 000000e0H 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00023 48 8b fc mov rdi, rsp - 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0003a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h - 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 00046 48 8b 85 e0 00 + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0004d 48 8b 8d e8 00 + 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 00054 48 89 08 mov QWORD PTR [rax], rcx + 0003d 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00057 48 8b 85 e0 00 + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0005e 8b 8d f0 00 00 + 00047 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 00064 89 48 08 mov DWORD PTR [rax+8], ecx + 0004d 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0006e 8b 8d f8 00 00 + 00057 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 00074 89 48 0c mov DWORD PTR [rax+12], ecx + 0005d 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00077 48 8b 85 e0 00 + 00060 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0007e c7 40 10 00 00 + 00067 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 00085 48 8b 85 e0 00 + 0006e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0008c c7 40 14 00 00 + 00075 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H - 00098 48 6b c0 00 imul rax, rax, 0 - 0009c 48 8b 8d e0 00 + 0007c b8 30 00 00 00 mov eax, 48 ; 00000030H + 00081 48 6b c0 00 imul rax, rax, 0 + 00085 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR inst$[rbp] - 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 000a8 48 8b b5 00 01 + 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 00091 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b4 f3 a4 rep movsb + 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009d f3 a4 rep movsb ; 498 : inst->noperands = 1; - 000b6 48 8b 85 e0 00 + 0009f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000bd c7 40 18 01 00 + 000a6 c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000c4 48 8d a5 c0 00 + 000ad 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000cb 5f pop rdi - 000cc 5e pop rsi - 000cd 5d pop rbp - 000ce c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -2550,72 +2506,72 @@ xed_relbr PROC ; COMDAT 00011 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 14 00 00 00 mov ecx, 20 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 08 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00051 c7 45 08 01 00 + 00053 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 00058 8b 85 38 01 00 + 0005a 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax + 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00061 8b 85 40 01 00 + 00063 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 0006e 48 8b bd 30 01 + 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 00070 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 00075 48 8b f0 mov rsi, rax - 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007d f3 a4 rep movsb - 0007f 48 8b 85 30 01 + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 48 8b 85 30 01 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00086 48 8b f8 mov rdi, rax - 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008d 48 8d 15 00 00 + 00088 48 8b f8 mov rdi, rax + 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00094 e8 00 00 00 00 call _RTC_CheckStackVars - 00099 48 8b c7 mov rax, rdi - 0009c 48 8b 8d 08 01 + 00096 e8 00 00 00 00 call _RTC_CheckStackVars + 0009b 48 8b c7 mov rax, rdi + 0009e 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a3 48 33 cd xor rcx, rbp - 000a6 e8 00 00 00 00 call __security_check_cookie - 000ab 48 8d a5 10 01 + 000a5 48 33 cd xor rcx, rbp + 000a8 e8 00 00 00 00 call __security_check_cookie + 000ad 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b2 5f pop rdi - 000b3 5e pop rsi - 000b4 5d pop rbp - 000b5 c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -2626,7 +2582,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2638,147 +2594,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -2789,7 +2739,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2801,147 +2751,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -2952,7 +2896,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2963,104 +2907,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -3077,79 +3015,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3168,7 +3100,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3179,251 +3111,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -3446,40 +3378,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3496,25 +3422,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3529,25 +3448,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -3562,25 +3474,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -3593,21 +3498,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipAndInst.cod b/CodeVirtualizer/x64/Debug/RipAndInst.cod index 8ffc477..abd52da 100644 --- a/CodeVirtualizer/x64/Debug/RipAndInst.cod +++ b/CodeVirtualizer/x64/Debug/RipAndInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__4D8C5412_RipAndInst@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRela PUBLIC ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW PUBLIC ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -122,7 +123,6 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+379 DD imagerel $unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+375 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+366 + DD imagerel $LN6+368 DD imagerel $unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0157H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0160H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0162H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -621,125 +604,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00054 c6 45 05 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00056 c6 45 05 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 0f b6 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 00109 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00110 48 83 c0 30 add rax, 48 ; 00000030H - 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00124 48 8b c8 mov rcx, rax - 00127 e8 00 00 00 00 call xed_decode + 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00112 48 83 c0 30 add rax, 48 ; 00000030H + 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00126 48 8b c8 mov rcx, rax + 00129 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00130 48 8b 8d 70 01 + 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00132 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013c b8 01 00 00 00 mov eax, 1 + 0013e b8 01 00 00 00 mov eax, 1 ; 37 : } - 00141 8b f8 mov edi, eax - 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00147 48 8d 15 00 00 + 00143 8b f8 mov edi, eax + 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00149 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0014e e8 00 00 00 00 call _RTC_CheckStackVars - 00153 8b c7 mov eax, edi - 00155 48 8b 8d 40 01 + 00150 e8 00 00 00 00 call _RTC_CheckStackVars + 00155 8b c7 mov eax, edi + 00157 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015c 48 33 cd xor rcx, rbp - 0015f e8 00 00 00 00 call __security_check_cookie - 00164 48 8d a5 58 01 + 0015e 48 33 cd xor rcx, rbp + 00161 e8 00 00 00 00 call __security_check_cookie + 00166 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 + 0016d 5f pop rdi + 0016e 5d pop rbp + 0016f c3 ret 0 ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndB _TEXT ENDS ; COMDAT text$x @@ -800,7 +783,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -825,127 +808,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H - 00058 c6 45 0a 25 mov BYTE PTR RawData$[rbp+2], 37 ; 00000025H - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H + 0005a c6 45 0a 25 mov BYTE PTR RawData$[rbp+2], 37 ; 00000025H + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010a 0f b7 95 90 01 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010c 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00119 48 83 c0 30 add rax, 48 ; 00000030H - 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012d 48 8b c8 mov rcx, rax - 00130 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00139 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00145 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014a 8b f8 mov edi, eax - 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00150 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00157 e8 00 00 00 00 call _RTC_CheckStackVars - 0015c 8b c7 mov eax, edi - 0015e 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00165 48 33 cd xor rcx, rbp - 00168 e8 00 00 00 00 call __security_check_cookie - 0016d 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00174 5f pop rdi - 00175 5d pop rbp - 00176 c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndW _TEXT ENDS ; COMDAT text$x @@ -1006,7 +989,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1031,128 +1014,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00054 c6 45 09 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00056 c6 45 09 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010e 8b 95 90 01 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00110 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00114 89 14 08 mov DWORD PTR [rax+rcx], edx + 00116 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011d 48 83 c0 30 add rax, 48 ; 00000030H + 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00131 48 8b c8 mov rcx, rax + 00134 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00149 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014e 8b f8 mov edi, eax + 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 0015b e8 00 00 00 00 call _RTC_CheckStackVars + 00160 8b c7 mov eax, edi + 00162 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00169 48 33 cd xor rcx, rbp + 0016c e8 00 00 00 00 call __security_check_cookie + 00171 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00178 5f pop rdi + 00179 5d pop rbp + 0017a c3 ret 0 ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndD _TEXT ENDS ; COMDAT text$x @@ -1213,7 +1196,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1224,7 +1207,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1236,147 +1219,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1387,7 +1364,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1399,147 +1376,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1550,7 +1521,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1561,104 +1532,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1675,79 +1640,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1766,7 +1725,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1777,251 +1736,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2044,40 +2003,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2094,25 +2047,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2127,25 +2073,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2160,25 +2099,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2191,21 +2123,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipMovInst.cod b/CodeVirtualizer/x64/Debug/RipMovInst.cod index 8bdc77f..5e96e34 100644 --- a/CodeVirtualizer/x64/Debug/RipMovInst.cod +++ b/CodeVirtualizer/x64/Debug/RipMovInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__2A62C71C_RipMovInst@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipR PUBLIC ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW PUBLIC ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -122,7 +123,6 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+389 + DD imagerel $LN6+391 DD imagerel $unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+385 + DD imagerel $LN6+387 DD imagerel $unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+369 + DD imagerel $LN6+371 DD imagerel $unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 015aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H +$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 016aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H +$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 016eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H +$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 4 @@ -621,126 +604,126 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H - 00054 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H + 00056 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : Link->RawData[6] = *Data; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 48 8b 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 48 8b 95 80 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 00109 0f b6 12 movzx edx, BYTE PTR [rdx] - 0010c 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 0f b6 12 movzx edx, BYTE PTR [rdx] + 0010e 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010f 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00113 48 83 c0 30 add rax, 48 ; 00000030H - 00117 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 0011b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011f 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00123 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00127 48 8b c8 mov rcx, rax - 0012a e8 00 00 00 00 call xed_decode + 00111 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00115 48 83 c0 30 add rax, 48 ; 00000030H + 00119 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011d 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00121 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00125 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00129 48 8b c8 mov rcx, rax + 0012c e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012f 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00133 48 8b 8d 70 01 + 00131 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00135 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0013a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0013c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013f b8 01 00 00 00 mov eax, 1 + 00141 b8 01 00 00 00 mov eax, 1 ; 37 : } - 00144 8b f8 mov edi, eax - 00146 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0014a 48 8d 15 00 00 + 00146 8b f8 mov edi, eax + 00148 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0014c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00151 e8 00 00 00 00 call _RTC_CheckStackVars - 00156 8b c7 mov eax, edi - 00158 48 8b 8d 40 01 + 00153 e8 00 00 00 00 call _RTC_CheckStackVars + 00158 8b c7 mov eax, edi + 0015a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015f 48 33 cd xor rcx, rbp - 00162 e8 00 00 00 00 call __security_check_cookie - 00167 48 8d a5 58 01 + 00161 48 33 cd xor rcx, rbp + 00164 e8 00 00 00 00 call __security_check_cookie + 00169 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016e 5f pop rdi - 0016f 5d pop rbp - 00170 c3 ret 0 + 00170 5f pop rdi + 00171 5d pop rbp + 00172 c3 ret 0 ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovB _TEXT ENDS ; COMDAT text$x @@ -801,7 +784,7 @@ Data$ = 384 ?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -826,130 +809,130 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H - 00058 c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H + 0005a c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : RtlCopyMemory(&Link->RawData[7], Data, 2); - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 03 41 20 add rax, QWORD PTR [rcx+32] - 0010a 41 b8 02 00 00 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 03 41 20 add rax, QWORD PTR [rcx+32] + 0010c 41 b8 02 00 00 00 mov r8d, 2 - 00110 48 8b 95 90 01 + 00112 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 00117 48 8b c8 mov rcx, rax - 0011a e8 00 00 00 00 call memcpy + 00119 48 8b c8 mov rcx, rax + 0011c e8 00 00 00 00 call memcpy ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0011f 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00123 48 83 c0 30 add rax, 48 ; 00000030H - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0012f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00133 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00137 48 8b c8 mov rcx, rax - 0013a e8 00 00 00 00 call xed_decode + 00121 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00125 48 83 c0 30 add rax, 48 ; 00000030H + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00131 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00135 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00139 48 8b c8 mov rcx, rax + 0013c e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 0013f 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00143 48 8b 8d 80 01 + 00141 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00145 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 0014f b8 01 00 00 00 mov eax, 1 + 00151 b8 01 00 00 00 mov eax, 1 ; 25 : } - 00154 8b f8 mov edi, eax - 00156 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0015a 48 8d 15 00 00 + 00156 8b f8 mov edi, eax + 00158 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0015c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00161 e8 00 00 00 00 call _RTC_CheckStackVars - 00166 8b c7 mov eax, edi - 00168 48 8b 8d 50 01 + 00163 e8 00 00 00 00 call _RTC_CheckStackVars + 00168 8b c7 mov eax, edi + 0016a 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0016f 48 33 cd xor rcx, rbp - 00172 e8 00 00 00 00 call __security_check_cookie - 00177 48 8d a5 68 01 + 00171 48 33 cd xor rcx, rbp + 00174 e8 00 00 00 00 call __security_check_cookie + 00179 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 0017e 5f pop rdi - 0017f 5d pop rbp - 00180 c3 ret 0 + 00180 5f pop rdi + 00181 5d pop rbp + 00182 c3 ret 0 ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovW _TEXT ENDS ; COMDAT text$x @@ -1010,7 +993,7 @@ Data$ = 400 ?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -1035,131 +1018,131 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H - 00054 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H + 00056 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : RtlCopyMemory(&Link->RawData[6], Data, 4); - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 03 41 20 add rax, QWORD PTR [rcx+32] - 0010e 41 b8 04 00 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 03 41 20 add rax, QWORD PTR [rcx+32] + 00110 41 b8 04 00 00 00 mov r8d, 4 - 00114 48 8b 95 90 01 + 00116 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 0011b 48 8b c8 mov rcx, rax - 0011e e8 00 00 00 00 call memcpy + 0011d 48 8b c8 mov rcx, rax + 00120 e8 00 00 00 00 call memcpy ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00123 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00127 48 83 c0 30 add rax, 48 ; 00000030H - 0012b 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012f 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00133 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00137 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0013b 48 8b c8 mov rcx, rax - 0013e e8 00 00 00 00 call xed_decode + 00125 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00129 48 83 c0 30 add rax, 48 ; 00000030H + 0012d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00131 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00135 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00139 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0013d 48 8b c8 mov rcx, rax + 00140 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00143 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00147 48 8b 8d 80 01 + 00145 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00149 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014e e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00150 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00153 b8 01 00 00 00 mov eax, 1 + 00155 b8 01 00 00 00 mov eax, 1 ; 13 : } - 00158 8b f8 mov edi, eax - 0015a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0015e 48 8d 15 00 00 + 0015a 8b f8 mov edi, eax + 0015c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00160 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00165 e8 00 00 00 00 call _RTC_CheckStackVars - 0016a 8b c7 mov eax, edi - 0016c 48 8b 8d 50 01 + 00167 e8 00 00 00 00 call _RTC_CheckStackVars + 0016c 8b c7 mov eax, edi + 0016e 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00173 48 33 cd xor rcx, rbp - 00176 e8 00 00 00 00 call __security_check_cookie - 0017b 48 8d a5 68 01 + 00175 48 33 cd xor rcx, rbp + 00178 e8 00 00 00 00 call __security_check_cookie + 0017d 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00182 5f pop rdi - 00183 5d pop rbp - 00184 c3 ret 0 + 00184 5f pop rdi + 00185 5d pop rbp + 00186 c3 ret 0 ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovD _TEXT ENDS ; COMDAT text$x @@ -1220,7 +1203,7 @@ Data$ = 400 ?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1231,7 +1214,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1243,147 +1226,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1394,7 +1371,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1406,147 +1383,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1557,7 +1528,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1568,104 +1539,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1682,79 +1647,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1773,7 +1732,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1784,251 +1743,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2051,40 +2010,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2101,25 +2054,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2134,25 +2080,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2167,25 +2106,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2198,21 +2130,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipOrInst.cod b/CodeVirtualizer/x64/Debug/RipOrInst.cod index 0f4029f..3a73c8e 100644 --- a/CodeVirtualizer/x64/Debug/RipOrInst.cod +++ b/CodeVirtualizer/x64/Debug/RipOrInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__B214C6C1_RipOrInst@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelat PUBLIC ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW PUBLIC ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -122,7 +123,6 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+379 DD imagerel $unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+375 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+366 + DD imagerel $LN6+368 DD imagerel $unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0157H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0160H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0162H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -621,125 +604,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00054 c6 45 05 0d mov BYTE PTR RawData$[rbp+1], 13 - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00056 c6 45 05 0d mov BYTE PTR RawData$[rbp+1], 13 + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 0f b6 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 00109 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00110 48 83 c0 30 add rax, 48 ; 00000030H - 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00124 48 8b c8 mov rcx, rax - 00127 e8 00 00 00 00 call xed_decode + 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00112 48 83 c0 30 add rax, 48 ; 00000030H + 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00126 48 8b c8 mov rcx, rax + 00129 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00130 48 8b 8d 70 01 + 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00132 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013c b8 01 00 00 00 mov eax, 1 + 0013e b8 01 00 00 00 mov eax, 1 ; 37 : } - 00141 8b f8 mov edi, eax - 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00147 48 8d 15 00 00 + 00143 8b f8 mov edi, eax + 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00149 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0014e e8 00 00 00 00 call _RTC_CheckStackVars - 00153 8b c7 mov eax, edi - 00155 48 8b 8d 40 01 + 00150 e8 00 00 00 00 call _RTC_CheckStackVars + 00155 8b c7 mov eax, edi + 00157 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015c 48 33 cd xor rcx, rbp - 0015f e8 00 00 00 00 call __security_check_cookie - 00164 48 8d a5 58 01 + 0015e 48 33 cd xor rcx, rbp + 00161 e8 00 00 00 00 call __security_check_cookie + 00166 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 + 0016d 5f pop rdi + 0016e 5d pop rbp + 0016f c3 ret 0 ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrB _TEXT ENDS ; COMDAT text$x @@ -800,7 +783,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -825,127 +808,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H - 00058 c6 45 0a 0d mov BYTE PTR RawData$[rbp+2], 13 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H + 0005a c6 45 0a 0d mov BYTE PTR RawData$[rbp+2], 13 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010a 0f b7 95 90 01 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010c 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00119 48 83 c0 30 add rax, 48 ; 00000030H - 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012d 48 8b c8 mov rcx, rax - 00130 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00139 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00145 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014a 8b f8 mov edi, eax - 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00150 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00157 e8 00 00 00 00 call _RTC_CheckStackVars - 0015c 8b c7 mov eax, edi - 0015e 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00165 48 33 cd xor rcx, rbp - 00168 e8 00 00 00 00 call __security_check_cookie - 0016d 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00174 5f pop rdi - 00175 5d pop rbp - 00176 c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrW _TEXT ENDS ; COMDAT text$x @@ -1006,7 +989,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1031,128 +1014,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00054 c6 45 09 0d mov BYTE PTR RawData$[rbp+1], 13 - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00056 c6 45 09 0d mov BYTE PTR RawData$[rbp+1], 13 + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010e 8b 95 90 01 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00110 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00114 89 14 08 mov DWORD PTR [rax+rcx], edx + 00116 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011d 48 83 c0 30 add rax, 48 ; 00000030H + 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00131 48 8b c8 mov rcx, rax + 00134 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00149 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014e 8b f8 mov edi, eax + 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 0015b e8 00 00 00 00 call _RTC_CheckStackVars + 00160 8b c7 mov eax, edi + 00162 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00169 48 33 cd xor rcx, rbp + 0016c e8 00 00 00 00 call __security_check_cookie + 00171 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00178 5f pop rdi + 00179 5d pop rbp + 0017a c3 ret 0 ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrD _TEXT ENDS ; COMDAT text$x @@ -1213,7 +1196,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1224,7 +1207,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1236,147 +1219,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1387,7 +1364,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1399,147 +1376,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1550,7 +1521,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1561,104 +1532,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1675,79 +1640,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1766,7 +1725,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1777,251 +1736,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2044,40 +2003,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2094,25 +2047,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2127,25 +2073,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2160,25 +2099,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2191,21 +2123,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipXorInst.cod b/CodeVirtualizer/x64/Debug/RipXorInst.cod index 3bcc9cc..49c9b4d 100644 --- a/CodeVirtualizer/x64/Debug/RipXorInst.cod +++ b/CodeVirtualizer/x64/Debug/RipXorInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__A82FFE99_RipXorInst@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRela PUBLIC ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW PUBLIC ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -122,7 +123,6 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+379 DD imagerel $unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+375 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+366 + DD imagerel $LN6+368 DD imagerel $unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0157H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0160H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0162H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -621,125 +604,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00054 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00056 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 0f b6 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 00109 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00110 48 83 c0 30 add rax, 48 ; 00000030H - 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00124 48 8b c8 mov rcx, rax - 00127 e8 00 00 00 00 call xed_decode + 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00112 48 83 c0 30 add rax, 48 ; 00000030H + 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00126 48 8b c8 mov rcx, rax + 00129 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00130 48 8b 8d 70 01 + 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00132 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013c b8 01 00 00 00 mov eax, 1 + 0013e b8 01 00 00 00 mov eax, 1 ; 37 : } - 00141 8b f8 mov edi, eax - 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00147 48 8d 15 00 00 + 00143 8b f8 mov edi, eax + 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00149 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0014e e8 00 00 00 00 call _RTC_CheckStackVars - 00153 8b c7 mov eax, edi - 00155 48 8b 8d 40 01 + 00150 e8 00 00 00 00 call _RTC_CheckStackVars + 00155 8b c7 mov eax, edi + 00157 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015c 48 33 cd xor rcx, rbp - 0015f e8 00 00 00 00 call __security_check_cookie - 00164 48 8d a5 58 01 + 0015e 48 33 cd xor rcx, rbp + 00161 e8 00 00 00 00 call __security_check_cookie + 00166 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 + 0016d 5f pop rdi + 0016e 5d pop rbp + 0016f c3 ret 0 ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorB _TEXT ENDS ; COMDAT text$x @@ -800,7 +783,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -825,127 +808,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H - 00058 c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H + 0005a c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010a 0f b7 95 90 01 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010c 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00119 48 83 c0 30 add rax, 48 ; 00000030H - 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012d 48 8b c8 mov rcx, rax - 00130 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00139 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00145 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014a 8b f8 mov edi, eax - 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00150 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00157 e8 00 00 00 00 call _RTC_CheckStackVars - 0015c 8b c7 mov eax, edi - 0015e 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00165 48 33 cd xor rcx, rbp - 00168 e8 00 00 00 00 call __security_check_cookie - 0016d 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00174 5f pop rdi - 00175 5d pop rbp - 00176 c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorW _TEXT ENDS ; COMDAT text$x @@ -1006,7 +989,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1031,128 +1014,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00054 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00056 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010e 8b 95 90 01 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00110 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00114 89 14 08 mov DWORD PTR [rax+rcx], edx + 00116 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011d 48 83 c0 30 add rax, 48 ; 00000030H + 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00131 48 8b c8 mov rcx, rax + 00134 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00149 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014e 8b f8 mov edi, eax + 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 0015b e8 00 00 00 00 call _RTC_CheckStackVars + 00160 8b c7 mov eax, edi + 00162 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00169 48 33 cd xor rcx, rbp + 0016c e8 00 00 00 00 call __security_check_cookie + 00171 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00178 5f pop rdi + 00179 5d pop rbp + 0017a c3 ret 0 ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorD _TEXT ENDS ; COMDAT text$x @@ -1213,7 +1196,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1224,7 +1207,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1236,147 +1219,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1387,7 +1364,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1399,147 +1376,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1550,7 +1521,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1561,104 +1532,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1675,79 +1640,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1766,7 +1725,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1777,251 +1736,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2044,40 +2003,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2094,25 +2047,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2127,25 +2073,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2160,25 +2099,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2191,21 +2123,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/VirtualMachine.cod b/CodeVirtualizer/x64/Debug/VirtualMachine.cod index cec3ca3..8ddcd2c 100644 --- a/CodeVirtualizer/x64/Debug/VirtualMachine.cod +++ b/CodeVirtualizer/x64/Debug/VirtualMachine.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__927DDB6F_VirtualMachine@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -96,9 +97,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?VmEmitVmEnter@@YAPEAEPEAK@Z ; VmEmitVmEnter PUBLIC ?VmEmitVmExit@@YAPEAEPEAK@Z ; VmEmitVmExit PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -116,80 +117,79 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmEnter@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+43 DD imagerel $unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmExit@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+43 DD imagerel $unwind$?VmEmitVmExit@@YAPEAEPEAK@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,67 +210,72 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025052a01H +$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025052a01H +$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -315,90 +320,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -408,7 +361,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmExit@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -423,31 +376,25 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 10 : return NULL; - 00036 33 c0 xor eax, eax + 0001f 33 c0 xor eax, eax ; 11 : } - 00038 48 8d a5 c8 00 + 00021 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 00028 5f pop rdi + 00029 5d pop rbp + 0002a c3 ret 0 ?VmEmitVmExit@@YAPEAEPEAK@Z ENDP ; VmEmitVmExit _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmEnter@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -462,31 +409,25 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 6 : return NULL; - 00036 33 c0 xor eax, eax + 0001f 33 c0 xor eax, eax ; 7 : } - 00038 48 8d a5 c8 00 + 00021 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 00028 5f pop rdi + 00029 5d pop rbp + 0002a c3 ret 0 ?VmEmitVmEnter@@YAPEAEPEAK@Z ENDP ; VmEmitVmEnter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -497,7 +438,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -509,147 +450,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -660,7 +595,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -672,147 +607,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -823,7 +752,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -834,104 +763,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -948,79 +871,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1039,7 +956,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1050,251 +967,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1317,40 +1234,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1367,25 +1278,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1400,25 +1304,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1433,25 +1330,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1464,21 +1354,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Virtualizer.cod b/CodeVirtualizer/x64/Debug/Virtualizer.cod index fdee2fa..2eeb0d6 100644 --- a/CodeVirtualizer/x64/Debug/Virtualizer.cod +++ b/CodeVirtualizer/x64/Debug/Virtualizer.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__BBE970CC_Virtualizer@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -96,9 +97,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst PUBLIC ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; ViValidateNativeCodeBlock PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -116,80 +117,79 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN3 - DD imagerel $LN3+69 + DD imagerel $LN3+46 DD imagerel $unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+142 + DD imagerel $LN7+119 DD imagerel $unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,67 +210,72 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H +$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -315,90 +320,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -408,7 +361,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -424,72 +377,66 @@ $LN7: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 9 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00044 eb 0b jmp SHORT $LN4@ViValidate + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002d eb 0b jmp SHORT $LN4@ViValidate $LN2@ViValidate: - 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00033 48 8b 00 mov rax, QWORD PTR [rax] + 00036 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ViValidate: - 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00056 74 27 je SHORT $LN3@ViValidate - 00058 48 8b 85 00 01 + 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0003f 74 27 je SHORT $LN3@ViValidate + 00041 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0005f 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00063 48 8b 00 mov rax, QWORD PTR [rax] - 00066 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0006a 74 13 je SHORT $LN3@ViValidate + 00048 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004c 48 8b 00 mov rax, QWORD PTR [rax] + 0004f 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00053 74 13 je SHORT $LN3@ViValidate ; 10 : { ; 11 : if (!ViCanHandleInst(T)) - 0006c 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] - 00070 e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst - 00075 85 c0 test eax, eax - 00077 75 04 jne SHORT $LN5@ViValidate + 00055 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00059 e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst + 0005e 85 c0 test eax, eax + 00060 75 04 jne SHORT $LN5@ViValidate ; 12 : return FALSE; - 00079 33 c0 xor eax, eax - 0007b eb 07 jmp SHORT $LN1@ViValidate + 00062 33 c0 xor eax, eax + 00064 eb 07 jmp SHORT $LN1@ViValidate $LN5@ViValidate: ; 13 : } - 0007d eb c7 jmp SHORT $LN2@ViValidate + 00066 eb c7 jmp SHORT $LN2@ViValidate $LN3@ViValidate: ; 14 : return TRUE; - 0007f b8 01 00 00 00 mov eax, 1 + 00068 b8 01 00 00 00 mov eax, 1 $LN1@ViValidate: ; 15 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ViValidateNativeCodeBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -504,31 +451,25 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : return TRUE; - 00036 b8 01 00 00 00 mov eax, 1 + 0001f b8 01 00 00 00 mov eax, 1 ; 6 : } - 0003b 48 8d a5 c8 00 + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00042 5f pop rdi - 00043 5d pop rbp - 00044 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; ViCanHandleInst _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -539,7 +480,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -551,147 +492,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -702,7 +637,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -714,147 +649,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -865,7 +794,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -876,104 +805,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -990,79 +913,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1081,7 +998,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1092,251 +1009,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1359,40 +1276,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1409,25 +1320,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1442,25 +1346,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1475,25 +1372,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1506,21 +1396,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/VmCode.cod b/CodeVirtualizer/x64/Debug/VmCode.cod index ce1c7a5..1041f49 100644 --- a/CodeVirtualizer/x64/Debug/VmCode.cod +++ b/CodeVirtualizer/x64/Debug/VmCode.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,47 +33,48 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__FA675702_VmCode@h DB 01H -__B456BB99_VmCode@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@h DB 01H +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8238DD11_VmCode@h DB 01H +__D8D4E86A_VmCode@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -88,9 +89,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK PUBLIC ??0_VM_CODE_LINK@@QEAA@K@Z ; _VM_CODE_LINK::_VM_CODE_LINK PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -108,80 +109,79 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_VM_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+157 + DD imagerel $LN3+134 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_VM_CODE_LINK@@QEAA@K@Z DD imagerel $LN3 - DD imagerel $LN3+117 + DD imagerel $LN3+94 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -202,67 +202,72 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025052e01H +$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025052a01H +$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -307,90 +312,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -400,7 +353,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@K@Z _TEXT SEGMENT this$ = 224 @@ -417,50 +370,44 @@ $LN3: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : : _VM_CODE_LINK() - 0003a 48 8b 8d e0 00 + 00023 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00041 e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK + 0002a e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK ; 15 : Label = LabelId; - 00046 48 8b 85 e0 00 + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 8b 8d e8 00 00 + 00036 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00053 89 48 14 mov DWORD PTR [rax+20], ecx + 0003c 89 48 14 mov DWORD PTR [rax+20], ecx ; 16 : Flags = CODE_FLAG_IS_LABEL; - 00056 48 8b 85 e0 00 + 0003f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005d c7 40 10 01 00 + 00046 c7 40 10 01 00 00 00 mov DWORD PTR [rax+16], 1 ; 17 : } - 00064 48 8b 85 e0 00 + 0004d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8d a5 c8 00 + 00054 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ??0_VM_CODE_LINK@@QEAA@K@Z ENDP ; _VM_CODE_LINK::_VM_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -475,68 +422,62 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : Flags = 0; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d c7 40 10 00 00 + 00026 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 6 : Next = Prev = NULL; - 00044 48 8b 85 e0 00 + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 c7 40 08 00 + 00034 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00053 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 c7 00 00 00 + 00043 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 7 : Label = 0; - 00061 48 8b 85 e0 00 + 0004a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00068 c7 40 14 00 00 + 00051 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 8 : RawData = NULL; - 0006f 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00076 48 c7 40 18 00 + 0005f 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 9 : RawDataSize = 0UL; - 0007e 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00085 c7 40 20 00 00 + 0006e c7 40 20 00 00 00 00 mov DWORD PTR [rax+32], 0 ; 10 : } - 0008c 48 8b 85 e0 00 + 00075 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00093 48 8d a5 c8 00 + 0007c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0009a 5f pop rdi - 0009b 5d pop rbp - 0009c c3 ret 0 + 00083 5f pop rdi + 00084 5d pop rbp + 00085 c3 ret 0 ??0_VM_CODE_LINK@@QEAA@XZ ENDP ; _VM_CODE_LINK::_VM_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -547,7 +488,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -559,147 +500,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -710,7 +645,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -722,147 +657,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -873,7 +802,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -884,104 +813,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -998,79 +921,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1089,7 +1006,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1100,251 +1017,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1367,40 +1284,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1417,25 +1328,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1450,25 +1354,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1483,25 +1380,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1514,21 +1404,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/XedWrap.cod b/CodeVirtualizer/x64/Debug/XedWrap.cod index 86565e7..5b174d2 100644 --- a/CodeVirtualizer/x64/Debug/XedWrap.cod +++ b/CodeVirtualizer/x64/Debug/XedWrap.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon DB 01H +__BDCC0984_vcruntime_exception@h DB 01H +__89F7010A_exception DB 01H +__7CE971A6_xutility DB 01H +__DD38B15A_xmemory DB 01H +__CB45C7EF_tuple DB 01H +__3033C7F7_xpolymorphic_allocator@h DB 01H +__A9EB37C6_xstring DB 01H +__8CFB8476_string DB 01H +__6D66DEAE_cmath DB 01H +__00B93B57_stdexcept DB 01H +__79ECA8A5_xcall_once@h DB 01H __A0B61CF9_time@h DB 01H -__886F7F70_xloctime DB 01H -__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 +__8476F639_xthreads@h DB 01H +__2FB352A6_atomic DB 01H +__C6B1BA85_system_error DB 01H +__65F43743_vcruntime_typeinfo@h DB 01H +__0C3682BF_typeinfo DB 01H +__F82802EA_memory DB 01H +__D46D55E5_xfacet DB 01H +__13BF6177_xlocinfo DB 01H +__76D543F7_xlocale DB 01H +__2A5A1664_xiosbase DB 01H +__E85225E0_xlocnum DB 01H +__FD1AE8DD_ios DB 01H +__C33030D8_xlocmon DB 01H +__B7A2C865_xloctime DB 01H +__8660297E_xed-util@h DB 01H +__F79B480A_xed-iform-map@h DB 01H +__F5B5218E_xed-inst@h DB 01H +__68D74A7D_xed-flags@h DB 01H +__A4B65E9F_xed-operand-accessors@h DB 01H +__E8B35E51_xed-state@h DB 01H +__1E3F2A25_xed-encode@h DB 01H +__1C89993E_xed-encoder-hl@h DB 01H +__0AA8C18B_xed-decoded-inst-api@h DB 01H +__6301E643_XedWrap@cpp DB 01H +__0615AC09_istream DB 01H +__65C59933_ostream DB 01H +__021983EB_streambuf DB 01H +__6D45C6E6_iterator DB 01H +__886FDBE2_iosfwd DB 01H +__B7ADD299_utility DB 01H +__40B2458B_xstddef DB 01H +__83FB8DDC_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -94,9 +95,9 @@ PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -114,68 +115,67 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+41 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+46 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + DD imagerel $LN12+586 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+165 + DD imagerel $LN4+142 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+379 + DD imagerel $LN5+356 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -196,53 +196,58 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' + DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' + DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H DD 010e3313H DD 070070027H DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 0231H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -287,90 +292,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -380,7 +333,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -391,7 +344,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -403,147 +356,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -554,7 +501,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -566,147 +513,141 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 174 : _Cvt = _Lobj._Getcvt(); + + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00049 48 8b f0 mov rsi, rax + 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00051 f3 a4 rep movsb -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 00067 48 8b c8 mov rcx, rax + 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0006f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 00087 48 8b c8 mov rcx, rax + 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 0008f 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 000dc 4c 8b c1 mov r8, rcx + 000df 33 d2 xor edx, edx + 000e1 48 8b c8 mov rcx, rax + 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 0011a 4c 8b c1 mov r8, rcx + 0011d 33 d2 xor edx, edx + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 00139 48 83 c0 2c add rax, 44 ; 0000002cH + 0013d 4c 8b c0 mov r8, rax + 00140 33 d2 xor edx, edx + 00142 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 00160 5f pop rdi + 00161 5e pop rsi + 00162 5d pop rbp + 00163 c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -717,7 +658,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -728,104 +669,98 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 00030 e8 00 00 00 00 call strlen + 00035 48 ff c0 inc rax + 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 525 : +; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 0003c c7 44 24 20 0e + 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH + 00044 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0004b 41 b8 02 00 00 00 mov r8d, 2 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 00051 ba 01 00 00 00 mov edx, 1 + 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0005a ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00078 eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 0007e 48 ff c8 dec rax + 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 00089 48 ff c0 inc rax + 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -842,79 +777,73 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 00039 83 c0 03 add eax, 3 + 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00040 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00047 41 b8 02 00 00 00 mov r8d, 2 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 0004d ba 02 00 00 00 mov edx, 2 + 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00056 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00070 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -933,7 +862,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -944,251 +873,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 541 : // convert C string to wchar_t sequence using _Cvtvec +; 542 : size_t _Count; +; 543 : size_t _Count1; +; 544 : size_t _Wchars; +; 545 : const char* _Ptr1; +; 546 : int _Bytes; +; 547 : wchar_t _Wc; +; 548 : mbstate_t _Mbst1 = {}; + + 00053 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 0005a 48 8b f8 mov rdi, rax + 0005d 33 c0 xor eax, eax + 0005f b9 08 00 00 00 mov ecx, 8 + 00064 f3 aa rep stosb -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006d e8 00 00 00 00 call strlen + 00072 48 ff c0 inc rax + 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00081 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 000a1 48 2b c8 sub rcx, rax + 000a4 48 8b c1 mov rax, rcx + 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000ab 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b6 48 03 c8 add rcx, rax + 000b9 48 8b c1 mov rax, rcx + 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c4 48 ff c0 inc rax + 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000de 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000ed 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 00110 48 ff c0 inc rax + 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 00117 c7 44 24 20 2f + 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH + 0011f 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00126 41 b8 02 00 00 00 mov r8d, 2 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 0012c ba 02 00 00 00 mov edx, 2 + 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00135 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 00166 48 8b f8 mov rdi, rax + 00169 33 c0 xor eax, eax + 0016b b9 08 00 00 00 mov ecx, 8 + 00170 f3 aa rep stosb -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017f 48 2b c8 sub rcx, rax + 00182 48 8b c1 mov rax, rcx + 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00189 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a8 48 ff c8 dec rax + 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001af 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d4 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001df 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 0021b 48 8b f8 mov rdi, rax + 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00222 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 00229 e8 00 00 00 00 call _RTC_CheckStackVars + 0022e 48 8b c7 mov rax, rdi + 00231 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 00238 48 33 cd xor rcx, rbp + 0023b e8 00 00 00 00 call __security_check_cookie + 00240 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1211,40 +1140,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 00030 48 d1 e0 shl rax, 1 + 00033 4c 8b c0 mov r8, rax + 00036 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1261,25 +1184,18 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1294,25 +1210,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1327,25 +1236,18 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1358,21 +1260,14 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END