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