From 9b2a12bd1254eb0eab68238da7296101f4083fa2 Mon Sep 17 00:00:00 2001 From: Iizerd Date: Wed, 27 Oct 2021 03:01:23 -0700 Subject: [PATCH] flags moved flag checking interface and updated it to check all flags --- CodeVirtualizer/Code.h | 7 +- CodeVirtualizer/CodeVirtualizer.vcxproj | 4 + .../CodeVirtualizer.vcxproj.filters | 18 + CodeVirtualizer/DataLog.cpp | 1 + CodeVirtualizer/DataLog.h | 7 + CodeVirtualizer/Flags.cpp | 47 + CodeVirtualizer/Flags.h | 13 + CodeVirtualizer/Jit.cpp | 50 +- CodeVirtualizer/Jit.h | 4 - CodeVirtualizer/Main.cpp | 49 +- CodeVirtualizer/NativeCode.cpp | 29 +- CodeVirtualizer/NativeCode.h | 22 +- CodeVirtualizer/Obfuscator.cpp | 143 +- CodeVirtualizer/Obfuscator.h | 29 +- CodeVirtualizer/Windas.h | 1 + CodeVirtualizer/x64/Debug/Assembly.lst | 4 +- .../x64/Debug/CodeVirtualizer.exe.recipe | 12 +- CodeVirtualizer/x64/Debug/Jit.cod | 6240 ++-- CodeVirtualizer/x64/Debug/Junk.cod | 1213 +- CodeVirtualizer/x64/Debug/Main.cod | 16882 +++++---- CodeVirtualizer/x64/Debug/NativeCode.cod | 31124 +++++++++------- CodeVirtualizer/x64/Debug/Nop.cod | 1375 +- CodeVirtualizer/x64/Debug/Obfuscator.cod | 11703 ++++-- CodeVirtualizer/x64/Debug/OpaqueBranching.cod | 2504 +- CodeVirtualizer/x64/Debug/RipAndInst.cod | 1713 +- CodeVirtualizer/x64/Debug/RipMovInst.cod | 1723 +- CodeVirtualizer/x64/Debug/RipOrInst.cod | 1713 +- CodeVirtualizer/x64/Debug/RipXorInst.cod | 1713 +- CodeVirtualizer/x64/Debug/VirtualMachine.cod | 1269 +- CodeVirtualizer/x64/Debug/Virtualizer.cod | 1311 +- CodeVirtualizer/x64/Debug/VmCode.cod | 1291 +- CodeVirtualizer/x64/Debug/XedWrap.cod | 1213 +- 32 files changed, 48594 insertions(+), 34833 deletions(-) create mode 100644 CodeVirtualizer/DataLog.cpp create mode 100644 CodeVirtualizer/DataLog.h create mode 100644 CodeVirtualizer/Flags.cpp create mode 100644 CodeVirtualizer/Flags.h diff --git a/CodeVirtualizer/Code.h b/CodeVirtualizer/Code.h index b9346b8..99b57cb 100644 --- a/CodeVirtualizer/Code.h +++ b/CodeVirtualizer/Code.h @@ -5,7 +5,10 @@ #define CODE_FLAG_IS_REL_JMP (1<<1) #define CODE_FLAG_IS_INST (1<<2) #define CODE_FLAG_DO_NOT_DIVIDE (1<<3) -#define CODE_FLAG_IS_OBFUSCATED (1<<4) -#define CODE_FLAG_IS_RIP_REL (1<<5) //Figure out how to deal with this... +#define CODE_FLAG_GROUP_START (1<<4) +#define CODE_FLAG_GROUP_END (1<<5) +#define CODE_FLAG_HAS_ASM_OP (1<<6) //Call all of the pre assembly operations +#define CODE_FLAG_IS_RIP_REL (1<<7) //Figure out how to deal with this... + #endif \ No newline at end of file diff --git a/CodeVirtualizer/CodeVirtualizer.vcxproj b/CodeVirtualizer/CodeVirtualizer.vcxproj index f09a649..4a26dd0 100644 --- a/CodeVirtualizer/CodeVirtualizer.vcxproj +++ b/CodeVirtualizer/CodeVirtualizer.vcxproj @@ -157,6 +157,8 @@ + + @@ -175,6 +177,8 @@ + + diff --git a/CodeVirtualizer/CodeVirtualizer.vcxproj.filters b/CodeVirtualizer/CodeVirtualizer.vcxproj.filters index 3f6f512..b08ce5f 100644 --- a/CodeVirtualizer/CodeVirtualizer.vcxproj.filters +++ b/CodeVirtualizer/CodeVirtualizer.vcxproj.filters @@ -47,6 +47,12 @@ Obfuscator\Jit\RipOrInst + + DataLog + + + Obfuscator\Flags + @@ -92,6 +98,12 @@ Obfuscator\Jit\RipOrInst + + DataLog + + + Obfuscator\Flags + @@ -136,6 +148,12 @@ {9b60f523-bf84-4740-9ee6-b8f34a317078} + + {b4404de7-66a7-4dac-b993-58db5b5b2989} + + + {296c0b55-edbb-45ab-b946-ec83e5441678} + diff --git a/CodeVirtualizer/DataLog.cpp b/CodeVirtualizer/DataLog.cpp new file mode 100644 index 0000000..6db9109 --- /dev/null +++ b/CodeVirtualizer/DataLog.cpp @@ -0,0 +1 @@ +#include "DataLog.h" \ No newline at end of file diff --git a/CodeVirtualizer/DataLog.h b/CodeVirtualizer/DataLog.h new file mode 100644 index 0000000..5331146 --- /dev/null +++ b/CodeVirtualizer/DataLog.h @@ -0,0 +1,7 @@ +#ifndef __DATALOG_H +#define __DATALOG_H + + + + +#endif \ No newline at end of file diff --git a/CodeVirtualizer/Flags.cpp b/CodeVirtualizer/Flags.cpp new file mode 100644 index 0000000..e301232 --- /dev/null +++ b/CodeVirtualizer/Flags.cpp @@ -0,0 +1,47 @@ +#include "Flags.h" + + + +PNATIVE_CODE_LINK FlgEmitPushfqInst() +{ + UCHAR RawData[] = { 0x9C }; + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); + XedDecode(&Link->XedInstruction, Link->RawData, 1); + return Link; +} + +PNATIVE_CODE_LINK FlgEmitPopfqInst() +{ + UCHAR RawData[] = { 0x9D }; + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); + XedDecode(&Link->XedInstruction, Link->RawData, 1); + return Link; +} + + +BOOL FlgAreFlagsClobbered(PNATIVE_CODE_LINK Inst, PNATIVE_CODE_LINK Stop) +{ + XED_FLAG_SET Ledger; + CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Inst->XedInstruction); + CONST XED_FLAG_SET* _Ledger1 = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); + CONST XED_FLAG_SET* _Ledger2 = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); + Ledger.flat = (_Ledger1->flat | _Ledger2->flat); + + for (PNATIVE_CODE_LINK T = Inst->Next; T && T != Stop; T = T->Next) + { + if (T->Flags & CODE_FLAG_IS_LABEL) + continue; + + CONST XED_SIMPLE_FLAG* InstFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); + CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(InstFlags); + + if (FlagsRead->flat & Ledger.flat) + return FALSE; + + CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(InstFlags); + CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(InstFlags); + + Ledger.flat &= ~(Ledger.flat & (FlagsWritten->flat | FlagsUndefined->flat)); + } + return TRUE; +} \ No newline at end of file diff --git a/CodeVirtualizer/Flags.h b/CodeVirtualizer/Flags.h new file mode 100644 index 0000000..e81cb6e --- /dev/null +++ b/CodeVirtualizer/Flags.h @@ -0,0 +1,13 @@ +#ifndef __FLAGS_H +#define __FLAGS_H + +#include "Windas.h" +#include "XedWrap.h" +#include "NativeCode.h" + +PNATIVE_CODE_LINK FlgEmitPushfqInst(); +PNATIVE_CODE_LINK FlgEmitPopfqInst(); + +BOOL FlgAreFlagsClobbered(PNATIVE_CODE_LINK Inst, PNATIVE_CODE_LINK Stop); + +#endif \ No newline at end of file diff --git a/CodeVirtualizer/Jit.cpp b/CodeVirtualizer/Jit.cpp index ceff258..335a5ef 100644 --- a/CodeVirtualizer/Jit.cpp +++ b/CodeVirtualizer/Jit.cpp @@ -1,27 +1,11 @@ #include "Jit.h" +#include "Flags.h" #include "RipXorInst.h" #include "RipAndInst.h" #include "RipOrInst.h" #include "RipMovInst.h" -BOOL JitEmitPushfqInst(PNATIVE_CODE_BLOCK Block) -{ - UCHAR RawData[] = { 0x9C }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, 1); - XedDecode(&Link->XedInstruction, Link->RawData, 1); - NcAppendToBlock(Block, Link); - return TRUE; -} - -BOOL JitEmitPopfqInst(PNATIVE_CODE_BLOCK Block) -{ - UCHAR RawData[] = { 0x9D }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, 1); - XedDecode(&Link->XedInstruction, Link->RawData, 1); - NcAppendToBlock(Block, Link); - return TRUE; -} BOOL JitCheckFlagCollisions(CONST XED_FLAG_SET* FlagsRead, XED_FLAG_SET Ledger) { @@ -302,12 +286,8 @@ PNATIVE_CODE_BLOCK JitEmitPreRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_D if (!Block) return NULL; - if (SaveFlags && !JitEmitPushfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } + if (SaveFlags) + NcAppendToBlock(Block, FlgEmitPushfqInst()); ULONG Count = FourByte; while (Count) @@ -356,12 +336,8 @@ PNATIVE_CODE_BLOCK JitEmitPreRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_D } } - if (SaveFlags && !JitEmitPopfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } + if (SaveFlags) + NcAppendToBlock(Block, FlgEmitPopfqInst()); return Block; } @@ -376,12 +352,8 @@ PNATIVE_CODE_BLOCK JitEmitPostRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_ if (!Block) return NULL; - if (SaveFlags && !JitEmitPushfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } + if (SaveFlags) + NcAppendToBlock(Block, FlgEmitPushfqInst()); ULONG Count = FourByte; while (Count) @@ -436,12 +408,8 @@ PNATIVE_CODE_BLOCK JitEmitPostRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_ } } - if (SaveFlags && !JitEmitPopfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } + if (SaveFlags) + NcAppendToBlock(Block, FlgEmitPopfqInst()); return Block; } diff --git a/CodeVirtualizer/Jit.h b/CodeVirtualizer/Jit.h index 2186c82..4b35d7a 100644 --- a/CodeVirtualizer/Jit.h +++ b/CodeVirtualizer/Jit.h @@ -22,10 +22,6 @@ typedef struct _JIT_BITWISE_DATA ULONG Data[5]; }JIT_BITWISE_DATA, *PJIT_BITWISE_DATA; -BOOL JitEmitPushfqInst(PNATIVE_CODE_BLOCK Block); - -BOOL JitEmitPopfqInst(PNATIVE_CODE_BLOCK Block); - BOOL JitCheckFlagCollisions(CONST XED_FLAG_SET* FlagsRead, XED_FLAG_SET Ledger); VOID JitUpdateConFlagsLedger(CONST XED_FLAG_SET* FlagsWritten, XED_FLAG_SET* Ledger); diff --git a/CodeVirtualizer/Main.cpp b/CodeVirtualizer/Main.cpp index ecdee29..bc4093b 100644 --- a/CodeVirtualizer/Main.cpp +++ b/CodeVirtualizer/Main.cpp @@ -28,8 +28,8 @@ VOID PutToFile(PVOID Buffer, ULONG BufferSize) { std::ofstream fout; // - 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.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(); } @@ -93,35 +93,30 @@ int main() XedTablesInit(); srand(time(NULL)); - system("pause"); + //system("pause"); NATIVE_CODE_BLOCK RetNumBlock; NcDisassemble(&RetNumBlock, RetNumCode, sizeof(RetNumCode)); - OBFUSCATOR Obf; + OPBR_SETS Obf; Obf.Flags = 0; - Obf.MinSizeForOpaqueBranch = 1; - Obf.InstructionMutateChance = 100; - Obf.OpaqueBranchChance = 100; - Obf.MinDepthForRandomOpaqueBranch = 0; - Obf.GlobalBlock = &RetNumBlock; - Obf.BlockDivisionFactor = 2; - Obf.MaxDepth = 800000; - ObfObfuscate1(&Obf, &RetNumBlock); - Obf.MinSizeForOpaqueBranch = 5; - Obf.InstructionMutateChance = 0; - Obf.OpaqueBranchChance = 100; - ObfObfuscate1(&Obf, &RetNumBlock, 0); - Obf.MinSizeForOpaqueBranch = 50; - ObfObfuscate1(&Obf, &RetNumBlock, 0); - - - printf("Finished second pas.\n"); - //Obf.MinSizeForOpaqueBranch = 200; - //ObfObfuscate1(&Obf, &RetNumBlock); - //Obf.MinSizeForOpaqueBranch = 30; - //ObfObfuscate(&Obf, &RetNumBlock); - - NcDebugPrint(&RetNumBlock); + Obf.ParentBlock = &RetNumBlock; + Obf.Divisor = 1.3F; + Obf.MaxDepth = 10; + Obf.MinBranchSize = 1; + Obf.ChanceForBranch = 50; + Obf.MinDepthForBranch = 0; + ObfGenerateOpaqueBranches(&Obf, &RetNumBlock); + INSTMUT_SETS Obf2; + Obf2.MutateChance = 100; + ObfMutateInstructions(&Obf2, &RetNumBlock); + + Obf.MinBranchSize = 27; + ObfGenerateOpaqueBranches(&Obf, &RetNumBlock); + /*Obf.MinBranchSize = 27; + ObfGenerateOpaqueBranches(&Obf, &RetNumBlock); + Obf.MinBranchSize = 27; + ObfGenerateOpaqueBranches(&Obf, &RetNumBlock);*/ + //NcDebugPrint(&RetNumBlock); ULONG AsmSize; PVOID Asm = NcAssemble(&RetNumBlock, &AsmSize); diff --git a/CodeVirtualizer/NativeCode.cpp b/CodeVirtualizer/NativeCode.cpp index d5b7781..87a5299 100644 --- a/CodeVirtualizer/NativeCode.cpp +++ b/CodeVirtualizer/NativeCode.cpp @@ -10,6 +10,7 @@ _NATIVE_CODE_LINK::_NATIVE_CODE_LINK() Label = 0UL; RawData = NULL; RawDataSize = 0UL; + AsmOperations.clear(); } _NATIVE_CODE_LINK::_NATIVE_CODE_LINK(ULONG LabelId, _NATIVE_CODE_BLOCK* B) @@ -37,7 +38,13 @@ _NATIVE_CODE_LINK::_NATIVE_CODE_LINK(ULONG F, PVOID Rd, ULONG Rds, BOOL Decode) _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK() { if (RawData) - delete RawData; + delete[] RawData; + + for (STDPAIR CONST& Op : AsmOperations) + { + if (Op.second) + delete[] Op.second; + } } _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK() @@ -128,7 +135,7 @@ ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block, BOOL CountCombinedAsOne) { 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)) + if (CountCombinedAsOne && (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) && !(T->Flags & CODE_FLAG_GROUP_END)) continue; ++InstructionCount; } @@ -325,6 +332,13 @@ PNATIVE_CODE_LINK NcDeepCopyLink(PNATIVE_CODE_LINK Link) delete NewLink; return NULL; } + if (Link->Flags & CODE_FLAG_HAS_ASM_OP) + { + for (STDPAIR CONST& Op : Link->AsmOperations) + { + NewLink->AsmOperations.emplace_back(Op.first, Op.second); + } + } return NewLink; } } @@ -527,14 +541,23 @@ PVOID NcAssemble(PNATIVE_CODE_BLOCK Block, PULONG OutSize) { if (T->Flags & CODE_FLAG_IS_LABEL) continue; - RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); + if (T->Flags & CODE_FLAG_HAS_ASM_OP) + { + for (STDPAIR CONST& Op : T->AsmOperations) + Op.first(T, BufferOffset, Op.second); + } BufferOffset += T->RawDataSize; } return Buffer; } +PVOID NcAssembleEx(PNATIVE_CODE_BLOCK Block, PULONG OutSize, BOOL ChooseRandomDuplicateLabel) +{ + return NULL; +} + VOID NcDeleteBlock(PNATIVE_CODE_BLOCK Block) { if (!Block->Start || !Block->End) diff --git a/CodeVirtualizer/NativeCode.h b/CodeVirtualizer/NativeCode.h index 62c6866..6a730e8 100644 --- a/CodeVirtualizer/NativeCode.h +++ b/CodeVirtualizer/NativeCode.h @@ -6,17 +6,21 @@ #include "Code.h" struct _NATIVE_CODE_BLOCK; +struct _NATIVE_CODE_LINK; + +typedef BOOL(*FN_INST_ASM_OP)(_NATIVE_CODE_LINK* Link, PUCHAR ToMutate, PVOID Context); typedef struct _NATIVE_CODE_LINK { - _NATIVE_CODE_LINK* Next; - _NATIVE_CODE_LINK* Prev; - _NATIVE_CODE_BLOCK* Block; - ULONG Flags; - ULONG Label; - PUCHAR RawData; - ULONG RawDataSize; - XED_DECODED_INST XedInstruction; + _NATIVE_CODE_LINK* Next; + _NATIVE_CODE_LINK* Prev; + _NATIVE_CODE_BLOCK* Block; + ULONG Flags; + ULONG Label; + PUCHAR RawData; + ULONG RawDataSize; + XED_DECODED_INST XedInstruction; + STDVECTOR> AsmOperations; _NATIVE_CODE_LINK(); _NATIVE_CODE_LINK(ULONG LabelId, _NATIVE_CODE_BLOCK* B); _NATIVE_CODE_LINK(ULONG F, PVOID Rd, ULONG Rds, BOOL Decode = FALSE); @@ -73,6 +77,8 @@ BOOL NcDisassemble(PNATIVE_CODE_BLOCK Block, PVOID Buffer, ULONG BufferSize); PVOID NcAssemble(PNATIVE_CODE_BLOCK Block, PULONG OutSize); +PVOID NcAssembleEx(PNATIVE_CODE_BLOCK Block, PULONG OutSize, BOOL ChooseRandomDuplicateLabel); + VOID NcDeleteBlock(PNATIVE_CODE_BLOCK Block); VOID NcDebugPrint(PNATIVE_CODE_BLOCK Block); diff --git a/CodeVirtualizer/Obfuscator.cpp b/CodeVirtualizer/Obfuscator.cpp index 87f88f6..a52f241 100644 --- a/CodeVirtualizer/Obfuscator.cpp +++ b/CodeVirtualizer/Obfuscator.cpp @@ -1,91 +1,41 @@ #include "Obfuscator.h" +BOOL ObfiRandomizeInstruction(PNATIVE_CODE_LINK Link, PUCHAR ToMutate, PVOID Context) +{ + for (ULONG i = 0; i < Link->RawDataSize; i++) + ToMutate[i] = (rand() % 255); + return TRUE; +} - -VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) +VOID ObfGenerateOpaqueBranches(POPBR_SETS Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) { 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;) - { - if ((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) || (T->Flags & CODE_FLAG_IS_REL_JMP)) - { - T = T->Next; - continue; - } - - PNATIVE_CODE_LINK RealNext = T->Next; - - if ((rand() % 100) <= Obf->InstructionMutateChance) - { - 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); - - if (Block->Start == T) - Block->Start = PreOp->Start; - 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); - - T->Flags |= CODE_FLAG_DO_NOT_DIVIDE; - - } - - T = RealNext; - } - } - else + ULONG InstructionCount = NcCountInstructions(Block, TRUE); + if (InstructionCount > Obf->MinBranchSize) { - //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 TargetCount = (ULONG)((FLOAT)InstructionCount / Obf->Divisor); ULONG CurrentCount = 0; PNATIVE_CODE_LINK NewBlockStart = Block->Start; for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) { - if (T->Flags & CODE_FLAG_IS_LABEL) + if (T->Flags & CODE_FLAG_IS_LABEL || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE && !(T->Flags & CODE_FLAG_GROUP_END))) { - T = T->Next; + T = T->Next; continue; } - ++CurrentCount; - - if (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) + if (++CurrentCount >= TargetCount) { - T = T->Next; - continue; - } - - if (CurrentCount >= TargetCount) - { - if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) + if (Depth >= Obf->MinDepthForBranch && (rand() % 100) <= Obf->ChanceForBranch && CurrentCount >= Obf->MinBranchSize) { NATIVE_CODE_BLOCK NotTaken, Taken; ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); - ObfObfuscate1(Obf, &NotTaken, Depth + 1); - ObfObfuscate1(Obf, &Taken, Depth + 1); - ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); + ObfGenerateOpaqueBranches(Obf, &NotTaken, Depth + 1); + ObfGenerateOpaqueBranches(Obf, &Taken, Depth + 1); + ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->ParentBlock), NcGenUnusedLabelId(Obf->ParentBlock)); ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); T = NotTaken.End; } @@ -94,7 +44,7 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) NATIVE_CODE_BLOCK TempBlock; if (NcDeepCopyPartialBlock(NewBlockStart, T, &TempBlock)) { - ObfObfuscate1(Obf, &TempBlock, Depth + 1); + ObfGenerateOpaqueBranches(Obf, &TempBlock, Depth + 1); ObfInsertOpaqueBranchBlock(NewBlockStart, T, &TempBlock); } T = TempBlock.End; @@ -104,15 +54,15 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) } T = T->Next; } - /*if (NewBlockStart && CurrentCount >= Obf->MinSizeForOpaqueBranch) + if (NewBlockStart) //Deal with remaining instructions in the block { - if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) + if (Depth >= Obf->MinDepthForBranch && (rand() % 100) <= Obf->ChanceForBranch && CurrentCount >= Obf->MinBranchSize) { 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)); + ObfGenerateOpaqueBranches(Obf, &NotTaken, Depth + 1); + ObfGenerateOpaqueBranches(Obf, &Taken, Depth + 1); + ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->ParentBlock), NcGenUnusedLabelId(Obf->ParentBlock)); ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); } else @@ -120,16 +70,53 @@ VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth) NATIVE_CODE_BLOCK TempBlock; if (NcDeepCopyPartialBlock(NewBlockStart, Block->End, &TempBlock)) { - ObfObfuscate1(Obf, &TempBlock, Depth + 1); + ObfGenerateOpaqueBranches(Obf, &TempBlock, Depth + 1); ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &TempBlock); } } - }*/ + } } +} +VOID ObfMutateInstructions(PINSTMUT_SETS Obf, PNATIVE_CODE_BLOCK Block) +{ + for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) + { + if ((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) || (T->Flags & CODE_FLAG_IS_REL_JMP)) + { + T = T->Next; + continue; + } + PNATIVE_CODE_LINK RealNext = T->Next; - - -} + if ((rand() % 100) <= Obf->MutateChance) + { + PNATIVE_CODE_BLOCK PreOp = JitEmitPreRipMov(T); + PNATIVE_CODE_BLOCK PostOp = JitEmitPostRipMov(T); + PreOp->Start->Flags |= CODE_FLAG_GROUP_START; + PostOp->End->Flags |= CODE_FLAG_GROUP_END; + T->Flags |= CODE_FLAG_DO_NOT_DIVIDE; + T->Flags |= CODE_FLAG_HAS_ASM_OP; + T->AsmOperations.emplace_back((FN_INST_ASM_OP)ObfiRandomizeInstruction, (PVOID)NULL); + + NcInsertBlockBefore(T, PreOp, FALSE); + NcInsertBlockAfter(T, PostOp, FALSE); + + if (T == Block->End) + Block->End = PostOp->End; + if (T == Block->Start) + Block->Start = PreOp->Start; + + if (Block->Start == T) + Block->Start = PreOp->Start; + if (Block->End == T) + Block->End = PostOp->End; + + delete PreOp; + delete PostOp; + } + T = RealNext; + } +} \ No newline at end of file diff --git a/CodeVirtualizer/Obfuscator.h b/CodeVirtualizer/Obfuscator.h index c9dce6c..84e6212 100644 --- a/CodeVirtualizer/Obfuscator.h +++ b/CodeVirtualizer/Obfuscator.h @@ -12,23 +12,26 @@ #define OBF_ATTRIBUTE_OPAQUE_BRANCHES (1<<1) #define OBF_ATTRIBUTE_RANDOMIZE_DIVISOR (1<<2) -typedef struct _OBFUSCATOR +typedef struct _OPBR_SETS { - ULONG MinDepthForRandomOpaqueBranch; - ULONG MinSizeForOpaqueBranch; - - UCHAR OpaqueBranchChance; - UCHAR InstructionMutateChance; - UCHAR BlockDivisionFactor; - - ULONG Flags; - PNATIVE_CODE_BLOCK GlobalBlock; ULONG MaxDepth; -}OBFUSCATOR, *POBFUSCATOR; + ULONG MinBranchSize; + FLOAT Divisor; + ULONG Flags; + ULONG MinDepthForBranch; + ULONG ChanceForBranch; + PNATIVE_CODE_BLOCK ParentBlock; +}OPBR_SETS, *POPBR_SETS; -BOOL ObfJitInst(); +typedef struct _INSTMUT_SETS +{ + ULONG MutateStart; + ULONG MutateChance; +}INSTMUT_SETS, *PINSTMUT_SETS; //Recursive obfuscation routine using opaque branches and jit -VOID ObfObfuscate1(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth = 0); +VOID ObfGenerateOpaqueBranches(POPBR_SETS Obf, PNATIVE_CODE_BLOCK Block, ULONG Depth = 0); + +VOID ObfMutateInstructions(PINSTMUT_SETS Obf, PNATIVE_CODE_BLOCK Block); #endif \ No newline at end of file diff --git a/CodeVirtualizer/Windas.h b/CodeVirtualizer/Windas.h index f97a319..68b21e7 100644 --- a/CodeVirtualizer/Windas.h +++ b/CodeVirtualizer/Windas.h @@ -10,6 +10,7 @@ #define INLINE inline #define STDSTRING std::string #define STDVECTOR std::vector +#define STDPAIR std::pair #define StdFind std::find /* diff --git a/CodeVirtualizer/x64/Debug/Assembly.lst b/CodeVirtualizer/x64/Debug/Assembly.lst index 9bf8683..cb9a350 100644 --- a/CodeVirtualizer/x64/Debug/Assembly.lst +++ b/CodeVirtualizer/x64/Debug/Assembly.lst @@ -1,4 +1,4 @@ -Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/23/21 14:21:58 +Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/26/21 20:35:01 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.29.30038.1 10/23/21 14:21:58 + Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/26/21 20:35:01 Assembly.asm Symbols 2 - 1 diff --git a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe index dfc4423..fce1cf4 100644 --- a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe +++ b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe @@ -1,11 +1,7 @@  - - - C:\@\Work\code-virtualizer\x64\Debug\CodeVirtualizer.exe - - - - - + C:\$Fanta\code-virtualizer\x64\Debug\CodeVirtualizer.exe + + + \ No newline at end of file diff --git a/CodeVirtualizer/x64/Debug/Jit.cod b/CodeVirtualizer/x64/Debug/Jit.cod index 3d93a55..aacb141 100644 --- a/CodeVirtualizer/x64/Debug/Jit.cod +++ b/CodeVirtualizer/x64/Debug/Jit.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,58 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__0A045E7B_NativeCode@h DB 01H -__8546B33E_Jit@cpp DB 01H -__092B7E84_vector DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__DD050276_Jit@cpp DB 01H +__BF2A7ACC_vector DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -93,8 +91,6 @@ PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_d PUBLIC wmemcpy PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -PUBLIC ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked -PUBLIC ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr @@ -136,13 +132,13 @@ PUBLIC __JustMyCode_Default PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -198,145 +194,133 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+453 + DD imagerel $LN21+476 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+66 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 - DD imagerel $LN6+123 - DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+151 - DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+203 + DD imagerel $LN3+202 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+257 + DD imagerel $LN4+280 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+280 + DD imagerel $LN6+278 DD imagerel $unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -348,7 +332,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+280 + DD imagerel $LN6+278 DD imagerel $unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -360,49 +344,49 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD imagerel $LN11 - DD imagerel $LN11+376 + DD imagerel $LN11+399 DD imagerel $unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD imagerel $LN9 - DD imagerel $LN9+285 + DD imagerel $LN9+308 DD imagerel $unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN5 - DD imagerel $LN5+211 + DD imagerel $LN5+234 DD imagerel $unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN9 - DD imagerel $LN9+331 + DD imagerel $LN9+329 DD imagerel $unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN7 - DD imagerel $LN7+308 + DD imagerel $LN7+331 DD imagerel $unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+69 DD imagerel $unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+69 DD imagerel $unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 - DD imagerel $LN25+1033 + DD imagerel $LN25+1056 DD imagerel $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -420,7 +404,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 - DD imagerel $LN25+1243 + DD imagerel $LN25+1241 DD imagerel $unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -438,7 +422,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD imagerel $LN29 - DD imagerel $LN29+1109 + DD imagerel $LN29+1132 DD imagerel $unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z pdata ENDS ; COMDAT pdata @@ -450,7 +434,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD imagerel $LN29 - DD imagerel $LN29+1243 + DD imagerel $LN29+1266 DD imagerel $unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z pdata ENDS ; COMDAT pdata @@ -462,61 +446,61 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+175 + DD imagerel $LN8+197 DD imagerel $unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+175 + DD imagerel $LN8+197 DD imagerel $unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+175 + DD imagerel $LN8+197 DD imagerel $unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+84 + DD imagerel $LN3+107 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+89 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+98 + DD imagerel $LN4+121 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+97 DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -537,21 +521,21 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ CONST SEGMENT @@ -570,9 +554,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -585,16 +569,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -606,11 +590,11 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H @@ -628,7 +612,7 @@ $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@Y xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH @@ -648,7 +632,7 @@ $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH @@ -657,58 +641,105 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H +$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H +$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H + DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H +$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H +$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H +$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H @@ -720,7 +751,7 @@ xdata SEGMENT $ip2state$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H DB 00H DB 00H - DB 'M', 02H + DB 0a9H, 02H DB 02H DB 'p' DB 00H @@ -739,18 +770,13 @@ $cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_L xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025052211H +$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H DD 011d2322H DD 070160059H DD 05015H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H @@ -762,7 +788,7 @@ xdata SEGMENT $ip2state$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H DB 00H DB 00H - DB 'M', 02H + DB 0a9H, 02H DB 02H DB 'p' DB 00H @@ -781,28 +807,13 @@ $cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LI xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025052211H +$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H DD 011d2322H DD 070160059H DD 05015H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03aH - DW 04c2H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H @@ -820,7 +831,7 @@ xdata SEGMENT $ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH DB 00H DB 00H - DB 0c9H, 02H + DB 0c1H, 02H DB 02H DB 'p' DB 00H @@ -845,7 +856,7 @@ $cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025054119H +$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025053f19H DD 01122317H DD 0700b007fH DD 0500aH @@ -874,16 +885,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H @@ -901,7 +902,7 @@ xdata SEGMENT $ip2state$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH DB 00H DB 00H - DB '!', 02H + DB '}', 02H DB 02H DB 'p' DB 00H @@ -926,7 +927,7 @@ $cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025051711H +$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025052e11H DD 01122317H DD 0700b007dH DD 0500aH @@ -935,33 +936,28 @@ $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H +$unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H +$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H +$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H DD 01132318H DD 0700c002dH DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0132H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053d19H +$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053b19H DD 010e2313H DD 070070031H DD 05006H @@ -988,35 +984,25 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H +$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025051801H +$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025051701H +$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025052e01H DD 01122317H DD 0700b001fH DD 0500aH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0ffH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -1028,7 +1014,7 @@ xdata SEGMENT $ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0bcH + DB 0b8H DB 02H DB 09eH DB 00H @@ -1047,7 +1033,7 @@ $cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H +$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H DD 010e3313H DD 070070031H DD 05006H @@ -1074,16 +1060,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0ffH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -1095,7 +1071,7 @@ xdata SEGMENT $ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0bcH + DB 0b8H DB 02H DB 09eH DB 00H @@ -1114,7 +1090,7 @@ $cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H +$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H DD 010e3313H DD 070070031H DD 05006H @@ -1143,31 +1119,57 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -1182,7 +1184,7 @@ $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H DD 010e2313H DD 07007002fH DD 05006H @@ -1191,24 +1193,31 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0b2H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H +$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck - DD 0138H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ + DD 013bH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -1227,54 +1236,49 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -1317,92 +1321,137 @@ CONST SEGMENT DD 00H DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H +$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H DD 010e2313H - DD 070070021H + DD 070070025H DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all DD 04H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all DD 00H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -1412,15 +1461,15 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z _TEXT SEGMENT -_Al$ = 224 +__formal$ = 224 _Ptr$ = 232 _Count$ = 240 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT -; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { +; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1431,46 +1480,44 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 694 : // no overflow check on the following multiply; we assume _Allocate did that check -; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 696 : if (_STD is_constant_evaluated()) { -; 697 : _Al.deallocate(_Ptr, _Count); -; 698 : } else -; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 700 : { -; 701 : (void) _Al; -; 702 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00029 48 6b 85 f0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 688 : // no overflow check on the following multiply; we assume _Allocate did that check +; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00040 48 6b 85 f0 00 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00031 48 8b d0 mov rdx, rax - 00034 48 8b 8d e8 00 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 703 : } -; 704 : } +; 690 : } - 00040 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT -; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1480,46 +1527,52 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 986 : // deallocate a plain pointer using an allocator -; 987 : using _Alloc_traits = allocator_traits<_Alloc>; -; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 00024 41 b8 01 00 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // deallocate a plain pointer using an allocator +; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; +; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 0003b 41 b8 01 00 00 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00031 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate - 0003d 90 npad 1 + 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 00054 90 npad 1 -; 990 : } else { -; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 993 : } -; 994 : } +; 1003 : } else { +; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 1006 : } +; 1007 : } - 0003e 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z _TEXT SEGMENT _Ptr$ = 224 _Bytes$ = 232 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1529,57 +1582,57 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 254 : if (_STD is_constant_evaluated()) { -; 255 : ::operator delete(_Ptr); -; 256 : } else -; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 258 : { -; 259 : #if defined(_M_IX86) || defined(_M_X64) -; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 00024 48 81 bd e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 215 : #if defined(_M_IX86) || defined(_M_X64) +; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0003b 48 81 bd e8 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 0002f 72 13 jb SHORT $LN2@Deallocate + 00046 72 13 jb SHORT $LN2@Deallocate -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00031 48 8d 95 e8 00 + 00048 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 00038 48 8d 8d e0 00 + 0004f 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 262 : } -; 263 : #endif // defined(_M_IX86) || defined(_M_X64) -; 264 : ::operator delete(_Ptr, _Bytes); +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); - 00044 48 8b 95 e8 00 + 0005b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 0004b 48 8b 8d e0 00 + 00062 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00057 90 npad 1 + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 -; 265 : } -; 266 : } +; 222 : } - 00058 48 8d a5 c8 00 + 0006f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _First$ = 224 @@ -1587,7 +1640,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1598,35 +1651,42 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 947 : using _Ty = typename _Alloc::value_type; -; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 949 : for (; _First != _Last; ++_First) { -; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 951 : } -; 952 : } -; 953 : } - - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT -; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1636,32 +1696,39 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1000 : using _Ty = typename _Alloc::value_type; -; 1001 : _Ptr->~_Ty(); -; 1002 : _Deallocate_plain(_Al, _Ptr); - - 00024 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1028 : using _Ty = typename _Alloc::value_type; +; 1029 : _Ptr->~_Ty(); +; 1030 : _Deallocate_plain(_Al, _Ptr); + + 0003b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0002b 48 8b 8d e0 00 + 00042 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0004e 90 npad 1 -; 1003 : } +; 1031 : } - 00037 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility ; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT _Old_val$ = 8 @@ -1669,7 +1736,7 @@ _Val$ = 256 _New_val$ = 264 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1679,49 +1746,55 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 615 : // assign _New_val to _Val, return previous _Val -; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 00024 48 8b 85 00 01 + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 617 : _Val = static_cast<_Other&&>(_New_val); +; 600 : _Val = static_cast<_Other&&>(_New_val); - 00032 48 8b 85 00 01 + 00049 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00039 48 8b 8d 08 01 + 00050 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00040 48 8b 09 mov rcx, QWORD PTR [rcx] - 00043 48 89 08 mov QWORD PTR [rax], rcx + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx -; 618 : return _Old_val; +; 601 : return _Old_val; - 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 619 : } +; 602 : } - 0004a 48 8d a5 e8 00 + 00061 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1731,20 +1804,26 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1766,77 +1845,83 @@ $LN8: 00015 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8b fc mov rdi, rsp + 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002e f3 ab rep stosd + 00030 8b 8c 24 18 01 + 00 00 mov ecx, DWORD PTR [rsp+280] + 00037 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 287 : switch (OpType) - 0002d 8b 85 f0 00 00 + 00043 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00033 89 85 c0 00 00 + 00049 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 00039 83 bd c0 00 00 + 0004f 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00040 74 14 je SHORT $LN4@JitiEmitWr - 00042 83 bd c0 00 00 + 00056 74 14 je SHORT $LN4@JitiEmitWr + 00058 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 00049 74 26 je SHORT $LN5@JitiEmitWr - 0004b 83 bd c0 00 00 + 0005f 74 26 je SHORT $LN5@JitiEmitWr + 00061 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00052 74 38 je SHORT $LN6@JitiEmitWr - 00054 eb 4f jmp SHORT $LN2@JitiEmitWr + 00068 74 38 je SHORT $LN6@JitiEmitWr + 0006a eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 288 : { ; 289 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorB(Block, RipDelta, Value); - 00056 44 8b 85 08 01 + 0006c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0005d 8b 95 00 01 00 + 00073 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00063 48 8b 8d f8 00 + 00079 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB - 0006f eb 34 jmp SHORT $LN1@JitiEmitWr + 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB + 00085 eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 290 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndB(Block, RipDelta, Value); - 00071 44 8b 85 08 01 + 00087 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00078 8b 95 00 01 00 + 0008e 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 0007e 48 8b 8d f8 00 + 00094 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB - 0008a eb 19 jmp SHORT $LN1@JitiEmitWr + 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB + 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 291 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrB(Block, RipDelta, Value); - 0008c 44 8b 85 08 01 + 000a2 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00093 8b 95 00 01 00 + 000a9 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00099 48 8b 8d f8 00 + 000af 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB + 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 292 : } ; 293 : } - 000a5 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000ac 5f pop rdi - 000ad 5d pop rbp - 000ae c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperB _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1858,77 +1943,83 @@ $LN8: 00015 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8b fc mov rdi, rsp + 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002e f3 ab rep stosd + 00030 8b 8c 24 18 01 + 00 00 mov ecx, DWORD PTR [rsp+280] + 00037 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 278 : switch (OpType) - 0002d 8b 85 f0 00 00 + 00043 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00033 89 85 c0 00 00 + 00049 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 00039 83 bd c0 00 00 + 0004f 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00040 74 14 je SHORT $LN4@JitiEmitWr - 00042 83 bd c0 00 00 + 00056 74 14 je SHORT $LN4@JitiEmitWr + 00058 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 00049 74 26 je SHORT $LN5@JitiEmitWr - 0004b 83 bd c0 00 00 + 0005f 74 26 je SHORT $LN5@JitiEmitWr + 00061 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00052 74 38 je SHORT $LN6@JitiEmitWr - 00054 eb 4f jmp SHORT $LN2@JitiEmitWr + 00068 74 38 je SHORT $LN6@JitiEmitWr + 0006a eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 279 : { ; 280 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorW(Block, RipDelta, Value); - 00056 44 8b 85 08 01 + 0006c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0005d 8b 95 00 01 00 + 00073 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00063 48 8b 8d f8 00 + 00079 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW - 0006f eb 34 jmp SHORT $LN1@JitiEmitWr + 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW + 00085 eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 281 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndW(Block, RipDelta, Value); - 00071 44 8b 85 08 01 + 00087 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00078 8b 95 00 01 00 + 0008e 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 0007e 48 8b 8d f8 00 + 00094 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW - 0008a eb 19 jmp SHORT $LN1@JitiEmitWr + 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW + 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 282 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrW(Block, RipDelta, Value); - 0008c 44 8b 85 08 01 + 000a2 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00093 8b 95 00 01 00 + 000a9 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00099 48 8b 8d f8 00 + 000af 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW + 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 283 : } ; 284 : } - 000a5 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000ac 5f pop rdi - 000ad 5d pop rbp - 000ae c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperW _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1950,77 +2041,83 @@ $LN8: 00015 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8b fc mov rdi, rsp + 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002e f3 ab rep stosd + 00030 8b 8c 24 18 01 + 00 00 mov ecx, DWORD PTR [rsp+280] + 00037 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 269 : switch (OpType) - 0002d 8b 85 f0 00 00 + 00043 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00033 89 85 c0 00 00 + 00049 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 00039 83 bd c0 00 00 + 0004f 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00040 74 14 je SHORT $LN4@JitiEmitWr - 00042 83 bd c0 00 00 + 00056 74 14 je SHORT $LN4@JitiEmitWr + 00058 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 00049 74 26 je SHORT $LN5@JitiEmitWr - 0004b 83 bd c0 00 00 + 0005f 74 26 je SHORT $LN5@JitiEmitWr + 00061 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00052 74 38 je SHORT $LN6@JitiEmitWr - 00054 eb 4f jmp SHORT $LN2@JitiEmitWr + 00068 74 38 je SHORT $LN6@JitiEmitWr + 0006a eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 270 : { ; 271 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorD(Block, RipDelta, Value); - 00056 44 8b 85 08 01 + 0006c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0005d 8b 95 00 01 00 + 00073 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00063 48 8b 8d f8 00 + 00079 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD - 0006f eb 34 jmp SHORT $LN1@JitiEmitWr + 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD + 00085 eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 272 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndD(Block, RipDelta, Value); - 00071 44 8b 85 08 01 + 00087 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00078 8b 95 00 01 00 + 0008e 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 0007e 48 8b 8d f8 00 + 00094 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD - 0008a eb 19 jmp SHORT $LN1@JitiEmitWr + 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD + 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 273 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrD(Block, RipDelta, Value); - 0008c 44 8b 85 08 01 + 000a2 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00093 8b 95 00 01 00 + 000a9 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00099 48 8b 8d f8 00 + 000af 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD + 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 274 : } ; 275 : } - 000a5 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000ac 5f pop rdi - 000ad 5d pop rbp - 000ae c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperD _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z _TEXT SEGMENT FourByte$ = 4 @@ -2063,399 +2160,405 @@ $LN29: 00016 48 81 ec c8 02 00 00 sub rsp, 712 ; 000002c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 e8 + 02 00 00 mov rcx, QWORD PTR [rsp+744] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 371 : ULONG FourByte = Link->RawDataSize / 4; - 0002e 33 d2 xor edx, edx - 00030 48 8b 85 c0 02 + 00045 33 d2 xor edx, edx + 00047 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 00037 8b 40 28 mov eax, DWORD PTR [rax+40] - 0003a b9 04 00 00 00 mov ecx, 4 - 0003f f7 f1 div ecx - 00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] + 00051 b9 04 00 00 00 mov ecx, 4 + 00056 f7 f1 div ecx + 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 372 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00047 c1 e0 02 shl eax, 2 - 0004a 48 8b 8d c0 02 + 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005e c1 e0 02 shl eax, 2 + 00061 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00051 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00054 2b c8 sub ecx, eax - 00056 8b c1 mov eax, ecx - 00058 33 d2 xor edx, edx - 0005a b9 02 00 00 00 mov ecx, 2 - 0005f f7 f1 div ecx - 00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0006b 2b c8 sub ecx, eax + 0006d 8b c1 mov eax, ecx + 0006f 33 d2 xor edx, edx + 00071 b9 02 00 00 00 mov ecx, 2 + 00076 f7 f1 div ecx + 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 373 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00067 c1 e0 02 shl eax, 2 - 0006a 48 8b 8d c0 02 + 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0007e c1 e0 02 shl eax, 2 + 00081 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00071 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00074 2b c8 sub ecx, eax - 00076 8b c1 mov eax, ecx - 00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0007b d1 e1 shl ecx, 1 - 0007d 2b c1 sub eax, ecx - 0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0008b 2b c8 sub ecx, eax + 0008d 8b c1 mov eax, ecx + 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00092 d1 e1 shl ecx, 1 + 00094 2b c1 sub eax, ecx + 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 374 : ; 375 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0008c 48 89 85 e8 01 + 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a3 48 89 85 e8 01 00 00 mov QWORD PTR $T5[rbp], rax - 00093 48 83 bd e8 01 + 000aa 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0009b 74 15 je SHORT $LN16@JitEmitPos - 0009d 48 8b 8d e8 01 + 000b2 74 15 je SHORT $LN16@JitEmitPos + 000b4 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000a9 48 89 85 98 02 + 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c0 48 89 85 98 02 00 00 mov QWORD PTR tv86[rbp], rax - 000b0 eb 0b jmp SHORT $LN17@JitEmitPos + 000c7 eb 0b jmp SHORT $LN17@JitEmitPos $LN16@JitEmitPos: - 000b2 48 c7 85 98 02 + 000c9 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPos: - 000bd 48 8b 85 98 02 + 000d4 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000c4 48 89 85 c8 01 + 000db 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cb 48 8b 85 c8 01 + 000e2 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 376 : if (!Block) - 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000db 75 07 jne SHORT $LN4@JitEmitPos + 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000f2 75 07 jne SHORT $LN4@JitEmitPos ; 377 : return NULL; - 000dd 33 c0 xor eax, eax - 000df e9 ed 03 00 00 jmp $LN1@JitEmitPos + 000f4 33 c0 xor eax, eax + 000f6 e9 ed 03 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 378 : ; 379 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000e4 83 bd d8 02 00 + 000fb 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 000eb 74 57 je SHORT $LN5@JitEmitPos - 000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 000f6 85 c0 test eax, eax - 000f8 75 4a jne SHORT $LN5@JitEmitPos + 00102 74 57 je SHORT $LN5@JitEmitPos + 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst + 0010d 85 c0 test eax, eax + 0010f 75 4a jne SHORT $LN5@JitEmitPos ; 380 : { ; 381 : NcDeleteBlock(Block); - 000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 382 : delete Block; - 00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00107 48 89 85 08 02 + 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0011e 48 89 85 08 02 00 00 mov QWORD PTR $T6[rbp], rax - 0010e 48 83 bd 08 02 + 00125 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 00116 74 1a je SHORT $LN18@JitEmitPos - 00118 ba 01 00 00 00 mov edx, 1 - 0011d 48 8b 8d 08 02 + 0012d 74 1a je SHORT $LN18@JitEmitPos + 0012f ba 01 00 00 00 mov edx, 1 + 00134 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T6[rbp] - 00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00129 48 89 85 98 02 + 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00140 48 89 85 98 02 00 00 mov QWORD PTR tv128[rbp], rax - 00130 eb 0b jmp SHORT $LN19@JitEmitPos + 00147 eb 0b jmp SHORT $LN19@JitEmitPos $LN18@JitEmitPos: - 00132 48 c7 85 98 02 + 00149 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPos: ; 383 : return NULL; - 0013d 33 c0 xor eax, eax - 0013f e9 8d 03 00 00 jmp $LN1@JitEmitPos + 00154 33 c0 xor eax, eax + 00156 e9 8d 03 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 384 : } ; 385 : ; 386 : ULONG Count = FourByte; - 00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00147 89 85 84 00 00 + 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0015e 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPos: ; 387 : while (Count) - 0014d 83 bd 84 00 00 + 00164 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00154 0f 84 11 01 00 + 0016b 0f 84 11 01 00 00 je $LN3@JitEmitPos ; 388 : { ; 389 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 0015a 8b 85 84 00 00 + 00171 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00160 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00163 2b c8 sub ecx, eax - 00165 8b c1 mov eax, ecx - 00167 c1 e0 02 shl eax, 2 - 0016a 48 8b 8d c0 02 + 00177 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 0017a 2b c8 sub ecx, eax + 0017c 8b c1 mov eax, ecx + 0017e c1 e0 02 shl eax, 2 + 00181 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00171 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00174 2b c8 sub ecx, eax - 00176 8b c1 mov eax, ecx - 00178 89 85 a4 00 00 + 00188 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0018b 2b c8 sub ecx, eax + 0018d 8b c1 mov eax, ecx + 0018f 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 390 : if (SaveFlags) - 0017e 83 bd d8 02 00 + 00195 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00185 74 0e je SHORT $LN6@JitEmitPos + 0019c 74 0e je SHORT $LN6@JitEmitPos ; 391 : RipDelta += 1; - 00187 8b 85 a4 00 00 + 0019e 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 0018d ff c0 inc eax - 0018f 89 85 a4 00 00 + 001a4 ff c0 inc eax + 001a6 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax $LN6@JitEmitPos: ; 392 : RipDelta += (FourByte - (Count - 1)) * DWORD_RIP_INST_LENGTH; - 00195 8b 85 84 00 00 + 001ac 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0019b ff c8 dec eax - 0019d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001a0 2b c8 sub ecx, eax - 001a2 8b c1 mov eax, ecx - 001a4 6b c0 0a imul eax, eax, 10 - 001a7 8b 8d a4 00 00 + 001b2 ff c8 dec eax + 001b4 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001b7 2b c8 sub ecx, eax + 001b9 8b c1 mov eax, ecx + 001bb 6b c0 0a imul eax, eax, 10 + 001be 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001ad 03 c8 add ecx, eax - 001af 8b c1 mov eax, ecx - 001b1 89 85 a4 00 00 + 001c4 03 c8 add ecx, eax + 001c6 8b c1 mov eax, ecx + 001c8 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 393 : RipDelta *= (-1); - 001b7 6b 85 a4 00 00 + 001ce 6b 85 a4 00 00 00 ff imul eax, DWORD PTR RipDelta$1[rbp], -1 - 001be 89 85 a4 00 00 + 001d5 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 394 : RipDelta += Delta; - 001c4 8b 85 e0 02 00 + 001db 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001ca 8b 8d a4 00 00 + 001e1 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001d0 03 c8 add ecx, eax - 001d2 8b c1 mov eax, ecx - 001d4 89 85 a4 00 00 + 001e7 03 c8 add ecx, eax + 001e9 8b c1 mov eax, ecx + 001eb 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 395 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) - 001da 8b 85 84 00 00 + 001f1 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001e0 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001e3 2b c8 sub ecx, eax - 001e5 8b c1 mov eax, ecx - 001e7 8b c0 mov eax, eax - 001e9 48 8b 8d c8 02 + 001f7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001fa 2b c8 sub ecx, eax + 001fc 8b c1 mov eax, ecx + 001fe 8b c0 mov eax, eax + 00200 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 001f0 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 001f4 44 8b 85 a4 00 + 00207 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] + 0020b 44 8b 85 a4 00 00 00 mov r8d, DWORD PTR RipDelta$1[rbp] - 001fb 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 001ff 8b 8d d0 02 00 + 00212 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00216 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00205 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 0020a 85 c0 test eax, eax - 0020c 75 4a jne SHORT $LN7@JitEmitPos + 0021c e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD + 00221 85 c0 test eax, eax + 00223 75 4a jne SHORT $LN7@JitEmitPos ; 396 : { ; 397 : NcDeleteBlock(Block); - 0020e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00212 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00225 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00229 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 398 : delete Block; - 00217 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0021b 48 89 85 28 02 + 0022e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00232 48 89 85 28 02 00 00 mov QWORD PTR $T7[rbp], rax - 00222 48 83 bd 28 02 + 00239 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 0022a 74 1a je SHORT $LN20@JitEmitPos - 0022c ba 01 00 00 00 mov edx, 1 - 00231 48 8b 8d 28 02 + 00241 74 1a je SHORT $LN20@JitEmitPos + 00243 ba 01 00 00 00 mov edx, 1 + 00248 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR $T7[rbp] - 00238 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0023d 48 89 85 98 02 + 0024f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00254 48 89 85 98 02 00 00 mov QWORD PTR tv158[rbp], rax - 00244 eb 0b jmp SHORT $LN21@JitEmitPos + 0025b eb 0b jmp SHORT $LN21@JitEmitPos $LN20@JitEmitPos: - 00246 48 c7 85 98 02 + 0025d 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPos: ; 399 : return NULL; - 00251 33 c0 xor eax, eax - 00253 e9 79 02 00 00 jmp $LN1@JitEmitPos + 00268 33 c0 xor eax, eax + 0026a e9 79 02 00 00 jmp $LN1@JitEmitPos $LN7@JitEmitPos: ; 400 : } ; 401 : --Count; - 00258 8b 85 84 00 00 + 0026f 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0025e ff c8 dec eax - 00260 89 85 84 00 00 + 00275 ff c8 dec eax + 00277 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 402 : } - 00266 e9 e2 fe ff ff jmp $LN2@JitEmitPos + 0027d e9 e2 fe ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 403 : ; 404 : if (TwoByte) - 0026b 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0026f 0f 84 ef 00 00 + 00282 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00286 0f 84 ef 00 00 00 je $LN8@JitEmitPos ; 405 : { ; 406 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - 00275 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00278 c1 e0 02 shl eax, 2 - 0027b 48 8b 8d c0 02 + 0028c 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0028f c1 e0 02 shl eax, 2 + 00292 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00282 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00285 2b c8 sub ecx, eax - 00287 8b c1 mov eax, ecx - 00289 89 85 c4 00 00 + 00299 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0029c 2b c8 sub ecx, eax + 0029e 8b c1 mov eax, ecx + 002a0 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 407 : if (SaveFlags) - 0028f 83 bd d8 02 00 + 002a6 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00296 74 0e je SHORT $LN9@JitEmitPos + 002ad 74 0e je SHORT $LN9@JitEmitPos ; 408 : RipDelta += 1; - 00298 8b 85 c4 00 00 + 002af 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 0029e ff c0 inc eax - 002a0 89 85 c4 00 00 + 002b5 ff c0 inc eax + 002b7 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax $LN9@JitEmitPos: ; 409 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); - 002a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 002aa 8b 8d c4 00 00 + 002bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 002c1 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002b0 03 c8 add ecx, eax - 002b2 8b c1 mov eax, ecx - 002b4 89 85 c4 00 00 + 002c7 03 c8 add ecx, eax + 002c9 8b c1 mov eax, ecx + 002cb 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 410 : RipDelta += WORD_RIP_INST_LENGTH; - 002ba 8b 85 c4 00 00 + 002d1 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 002c0 83 c0 09 add eax, 9 - 002c3 89 85 c4 00 00 + 002d7 83 c0 09 add eax, 9 + 002da 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 411 : RipDelta *= (-1); - 002c9 6b 85 c4 00 00 + 002e0 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$2[rbp], -1 - 002d0 89 85 c4 00 00 + 002e7 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 412 : RipDelta += Delta; - 002d6 8b 85 e0 02 00 + 002ed 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 002dc 8b 8d c4 00 00 + 002f3 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002e2 03 c8 add ecx, eax - 002e4 8b c1 mov eax, ecx - 002e6 89 85 c4 00 00 + 002f9 03 c8 add ecx, eax + 002fb 8b c1 mov eax, ecx + 002fd 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 413 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) - 002ec b8 04 00 00 00 mov eax, 4 - 002f1 48 6b c0 03 imul rax, rax, 3 - 002f5 48 8b 8d c8 02 + 00303 b8 04 00 00 00 mov eax, 4 + 00308 48 6b c0 03 imul rax, rax, 3 + 0030c 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 002fc 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00300 44 8b 85 c4 00 + 00313 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 00317 44 8b 85 c4 00 00 00 mov r8d, DWORD PTR RipDelta$2[rbp] - 00307 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 0030b 8b 8d d0 02 00 + 0031e 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00322 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00311 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 00316 85 c0 test eax, eax - 00318 75 4a jne SHORT $LN8@JitEmitPos + 00328 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW + 0032d 85 c0 test eax, eax + 0032f 75 4a jne SHORT $LN8@JitEmitPos ; 414 : { ; 415 : NcDeleteBlock(Block); - 0031a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0031e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00331 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00335 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 416 : delete Block; - 00323 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00327 48 89 85 48 02 + 0033a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0033e 48 89 85 48 02 00 00 mov QWORD PTR $T8[rbp], rax - 0032e 48 83 bd 48 02 + 00345 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 00336 74 1a je SHORT $LN22@JitEmitPos - 00338 ba 01 00 00 00 mov edx, 1 - 0033d 48 8b 8d 48 02 + 0034d 74 1a je SHORT $LN22@JitEmitPos + 0034f ba 01 00 00 00 mov edx, 1 + 00354 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 00344 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00349 48 89 85 98 02 + 0035b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00360 48 89 85 98 02 00 00 mov QWORD PTR tv185[rbp], rax - 00350 eb 0b jmp SHORT $LN23@JitEmitPos + 00367 eb 0b jmp SHORT $LN23@JitEmitPos $LN22@JitEmitPos: - 00352 48 c7 85 98 02 + 00369 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv185[rbp], 0 $LN23@JitEmitPos: ; 417 : return NULL; - 0035d 33 c0 xor eax, eax - 0035f e9 6d 01 00 00 jmp $LN1@JitEmitPos + 00374 33 c0 xor eax, eax + 00376 e9 6d 01 00 00 jmp $LN1@JitEmitPos $LN8@JitEmitPos: ; 418 : } @@ -2463,132 +2566,132 @@ $LN8@JitEmitPos: ; 420 : ; 421 : if (OneByte) - 00364 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00368 0f 84 02 01 00 + 0037b 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0037f 0f 84 02 01 00 00 je $LN11@JitEmitPos ; 422 : { ; 423 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - 0036e 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00371 c1 e0 02 shl eax, 2 - 00374 48 8b 8d c0 02 + 00385 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00388 c1 e0 02 shl eax, 2 + 0038b 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 0037b 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0037e 2b c8 sub ecx, eax - 00380 8b c1 mov eax, ecx - 00382 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00385 d1 e1 shl ecx, 1 - 00387 2b c1 sub eax, ecx - 00389 89 85 e4 00 00 + 00392 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00395 2b c8 sub ecx, eax + 00397 8b c1 mov eax, ecx + 00399 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0039c d1 e1 shl ecx, 1 + 0039e 2b c1 sub eax, ecx + 003a0 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 424 : if (SaveFlags) - 0038f 83 bd d8 02 00 + 003a6 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00396 74 0e je SHORT $LN12@JitEmitPos + 003ad 74 0e je SHORT $LN12@JitEmitPos ; 425 : RipDelta += 1; - 00398 8b 85 e4 00 00 + 003af 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 0039e ff c0 inc eax - 003a0 89 85 e4 00 00 + 003b5 ff c0 inc eax + 003b7 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax $LN12@JitEmitPos: ; 426 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); - 003a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 003aa 8b 8d e4 00 00 + 003bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 003c1 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 003b0 03 c8 add ecx, eax - 003b2 8b c1 mov eax, ecx - 003b4 89 85 e4 00 00 + 003c7 03 c8 add ecx, eax + 003c9 8b c1 mov eax, ecx + 003cb 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 427 : RipDelta += WORD_RIP_INST_LENGTH; - 003ba 8b 85 e4 00 00 + 003d1 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003c0 83 c0 09 add eax, 9 - 003c3 89 85 e4 00 00 + 003d7 83 c0 09 add eax, 9 + 003da 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 428 : RipDelta += BYTE_RIP_INST_LENGTH; - 003c9 8b 85 e4 00 00 + 003e0 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003cf 83 c0 07 add eax, 7 - 003d2 89 85 e4 00 00 + 003e6 83 c0 07 add eax, 7 + 003e9 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 429 : RipDelta *= (-1); - 003d8 6b 85 e4 00 00 + 003ef 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$3[rbp], -1 - 003df 89 85 e4 00 00 + 003f6 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 430 : RipDelta += Delta; - 003e5 8b 85 e0 02 00 + 003fc 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 003eb 8b 8d e4 00 00 + 00402 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 003f1 03 c8 add ecx, eax - 003f3 8b c1 mov eax, ecx - 003f5 89 85 e4 00 00 + 00408 03 c8 add ecx, eax + 0040a 8b c1 mov eax, ecx + 0040c 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 431 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) - 003fb b8 04 00 00 00 mov eax, 4 - 00400 48 6b c0 04 imul rax, rax, 4 - 00404 48 8b 8d c8 02 + 00412 b8 04 00 00 00 mov eax, 4 + 00417 48 6b c0 04 imul rax, rax, 4 + 0041b 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 0040b 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 0040f 44 8b 85 e4 00 + 00422 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 00426 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR RipDelta$3[rbp] - 00416 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 0041a 8b 8d d0 02 00 + 0042d 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00431 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00420 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 00425 85 c0 test eax, eax - 00427 75 47 jne SHORT $LN11@JitEmitPos + 00437 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB + 0043c 85 c0 test eax, eax + 0043e 75 47 jne SHORT $LN11@JitEmitPos ; 432 : { ; 433 : NcDeleteBlock(Block); - 00429 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0042d e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00440 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00444 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 434 : delete Block; - 00432 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00436 48 89 85 68 02 + 00449 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0044d 48 89 85 68 02 00 00 mov QWORD PTR $T9[rbp], rax - 0043d 48 83 bd 68 02 + 00454 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 00445 74 1a je SHORT $LN24@JitEmitPos - 00447 ba 01 00 00 00 mov edx, 1 - 0044c 48 8b 8d 68 02 + 0045c 74 1a je SHORT $LN24@JitEmitPos + 0045e ba 01 00 00 00 mov edx, 1 + 00463 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR $T9[rbp] - 00453 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00458 48 89 85 98 02 + 0046a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0046f 48 89 85 98 02 00 00 mov QWORD PTR tv214[rbp], rax - 0045f eb 0b jmp SHORT $LN25@JitEmitPos + 00476 eb 0b jmp SHORT $LN25@JitEmitPos $LN24@JitEmitPos: - 00461 48 c7 85 98 02 + 00478 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN25@JitEmitPos: ; 435 : return NULL; - 0046c 33 c0 xor eax, eax - 0046e eb 61 jmp SHORT $LN1@JitEmitPos + 00483 33 c0 xor eax, eax + 00485 eb 61 jmp SHORT $LN1@JitEmitPos $LN11@JitEmitPos: ; 436 : } @@ -2596,61 +2699,61 @@ $LN11@JitEmitPos: ; 438 : ; 439 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 00470 83 bd d8 02 00 + 00487 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00477 74 54 je SHORT $LN14@JitEmitPos - 00479 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0047d e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 00482 85 c0 test eax, eax - 00484 75 47 jne SHORT $LN14@JitEmitPos + 0048e 74 54 je SHORT $LN14@JitEmitPos + 00490 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00494 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst + 00499 85 c0 test eax, eax + 0049b 75 47 jne SHORT $LN14@JitEmitPos ; 440 : { ; 441 : NcDeleteBlock(Block); - 00486 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0048a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0049d 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 004a1 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 442 : delete Block; - 0048f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00493 48 89 85 88 02 + 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004aa 48 89 85 88 02 00 00 mov QWORD PTR $T10[rbp], rax - 0049a 48 83 bd 88 02 + 004b1 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 004a2 74 1a je SHORT $LN26@JitEmitPos - 004a4 ba 01 00 00 00 mov edx, 1 - 004a9 48 8b 8d 88 02 + 004b9 74 1a je SHORT $LN26@JitEmitPos + 004bb ba 01 00 00 00 mov edx, 1 + 004c0 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR $T10[rbp] - 004b0 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 004b5 48 89 85 98 02 + 004c7 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 004cc 48 89 85 98 02 00 00 mov QWORD PTR tv224[rbp], rax - 004bc eb 0b jmp SHORT $LN27@JitEmitPos + 004d3 eb 0b jmp SHORT $LN27@JitEmitPos $LN26@JitEmitPos: - 004be 48 c7 85 98 02 + 004d5 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv224[rbp], 0 $LN27@JitEmitPos: ; 443 : return NULL; - 004c9 33 c0 xor eax, eax - 004cb eb 04 jmp SHORT $LN1@JitEmitPos + 004e0 33 c0 xor eax, eax + 004e2 eb 04 jmp SHORT $LN1@JitEmitPos $LN14@JitEmitPos: ; 444 : } ; 445 : ; 446 : return Block; - 004cd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004e4 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 447 : } - 004d1 48 8d a5 a8 02 + 004e8 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 004d8 5f pop rdi - 004d9 5d pop rbp - 004da c3 ret 0 + 004ef 5f pop rdi + 004f0 5d pop rbp + 004f1 c3 ret 0 ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ENDP ; JitEmitPostRipBitwiseOp _TEXT ENDS ; COMDAT text$x @@ -2745,7 +2848,7 @@ Delta$ = 736 ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z _TEXT SEGMENT FourByte$ = 4 @@ -2788,364 +2891,370 @@ $LN29: 00016 48 81 ec c8 02 00 00 sub rsp, 712 ; 000002c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 e8 + 02 00 00 mov rcx, QWORD PTR [rsp+744] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 297 : ULONG FourByte = Link->RawDataSize / 4; - 0002e 33 d2 xor edx, edx - 00030 48 8b 85 c0 02 + 00045 33 d2 xor edx, edx + 00047 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 00037 8b 40 28 mov eax, DWORD PTR [rax+40] - 0003a b9 04 00 00 00 mov ecx, 4 - 0003f f7 f1 div ecx - 00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] + 00051 b9 04 00 00 00 mov ecx, 4 + 00056 f7 f1 div ecx + 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 298 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00047 c1 e0 02 shl eax, 2 - 0004a 48 8b 8d c0 02 + 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005e c1 e0 02 shl eax, 2 + 00061 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00051 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00054 2b c8 sub ecx, eax - 00056 8b c1 mov eax, ecx - 00058 33 d2 xor edx, edx - 0005a b9 02 00 00 00 mov ecx, 2 - 0005f f7 f1 div ecx - 00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0006b 2b c8 sub ecx, eax + 0006d 8b c1 mov eax, ecx + 0006f 33 d2 xor edx, edx + 00071 b9 02 00 00 00 mov ecx, 2 + 00076 f7 f1 div ecx + 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 299 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00067 c1 e0 02 shl eax, 2 - 0006a 48 8b 8d c0 02 + 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0007e c1 e0 02 shl eax, 2 + 00081 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00071 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00074 2b c8 sub ecx, eax - 00076 8b c1 mov eax, ecx - 00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0007b 03 c9 add ecx, ecx - 0007d 2b c1 sub eax, ecx - 0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0008b 2b c8 sub ecx, eax + 0008d 8b c1 mov eax, ecx + 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00092 03 c9 add ecx, ecx + 00094 2b c1 sub eax, ecx + 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 300 : ; 301 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0008c 48 89 85 e8 01 + 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a3 48 89 85 e8 01 00 00 mov QWORD PTR $T5[rbp], rax - 00093 48 83 bd e8 01 + 000aa 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0009b 74 15 je SHORT $LN16@JitEmitPre - 0009d 48 8b 8d e8 01 + 000b2 74 15 je SHORT $LN16@JitEmitPre + 000b4 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000a9 48 89 85 98 02 + 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c0 48 89 85 98 02 00 00 mov QWORD PTR tv86[rbp], rax - 000b0 eb 0b jmp SHORT $LN17@JitEmitPre + 000c7 eb 0b jmp SHORT $LN17@JitEmitPre $LN16@JitEmitPre: - 000b2 48 c7 85 98 02 + 000c9 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPre: - 000bd 48 8b 85 98 02 + 000d4 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000c4 48 89 85 c8 01 + 000db 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cb 48 8b 85 c8 01 + 000e2 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 302 : if (!Block) - 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000db 75 07 jne SHORT $LN4@JitEmitPre + 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000f2 75 07 jne SHORT $LN4@JitEmitPre ; 303 : return NULL; - 000dd 33 c0 xor eax, eax - 000df e9 67 03 00 00 jmp $LN1@JitEmitPre + 000f4 33 c0 xor eax, eax + 000f6 e9 67 03 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 304 : ; 305 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000e4 83 bd d8 02 00 + 000fb 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 000eb 74 57 je SHORT $LN5@JitEmitPre - 000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 000f6 85 c0 test eax, eax - 000f8 75 4a jne SHORT $LN5@JitEmitPre + 00102 74 57 je SHORT $LN5@JitEmitPre + 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst + 0010d 85 c0 test eax, eax + 0010f 75 4a jne SHORT $LN5@JitEmitPre ; 306 : { ; 307 : NcDeleteBlock(Block); - 000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 308 : delete Block; - 00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00107 48 89 85 08 02 + 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0011e 48 89 85 08 02 00 00 mov QWORD PTR $T6[rbp], rax - 0010e 48 83 bd 08 02 + 00125 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 00116 74 1a je SHORT $LN18@JitEmitPre - 00118 ba 01 00 00 00 mov edx, 1 - 0011d 48 8b 8d 08 02 + 0012d 74 1a je SHORT $LN18@JitEmitPre + 0012f ba 01 00 00 00 mov edx, 1 + 00134 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T6[rbp] - 00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00129 48 89 85 98 02 + 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00140 48 89 85 98 02 00 00 mov QWORD PTR tv128[rbp], rax - 00130 eb 0b jmp SHORT $LN19@JitEmitPre + 00147 eb 0b jmp SHORT $LN19@JitEmitPre $LN18@JitEmitPre: - 00132 48 c7 85 98 02 + 00149 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPre: ; 309 : return NULL; - 0013d 33 c0 xor eax, eax - 0013f e9 07 03 00 00 jmp $LN1@JitEmitPre + 00154 33 c0 xor eax, eax + 00156 e9 07 03 00 00 jmp $LN1@JitEmitPre $LN5@JitEmitPre: ; 310 : } ; 311 : ; 312 : ULONG Count = FourByte; - 00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00147 89 85 84 00 00 + 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0015e 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPre: ; 313 : while (Count) - 0014d 83 bd 84 00 00 + 00164 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00154 0f 84 f7 00 00 + 0016b 0f 84 f7 00 00 00 je $LN3@JitEmitPre ; 314 : { ; 315 : INT32 RipDelta = (((Count - 1) * DWORD_RIP_INST_LENGTH) + (TwoByte * WORD_RIP_INST_LENGTH) + (OneByte * BYTE_RIP_INST_LENGTH)); - 0015a 8b 85 84 00 00 + 00171 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00160 ff c8 dec eax - 00162 6b c0 0a imul eax, eax, 10 - 00165 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 00169 03 c1 add eax, ecx - 0016b 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 0016f 03 c1 add eax, ecx - 00171 89 85 a4 00 00 + 00177 ff c8 dec eax + 00179 6b c0 0a imul eax, eax, 10 + 0017c 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 + 00180 03 c1 add eax, ecx + 00182 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 + 00186 03 c1 add eax, ecx + 00188 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 316 : if (SaveFlags) - 00177 83 bd d8 02 00 + 0018e 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0017e 74 0e je SHORT $LN6@JitEmitPre + 00195 74 0e je SHORT $LN6@JitEmitPre ; 317 : RipDelta += 1; - 00180 8b 85 a4 00 00 + 00197 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 00186 ff c0 inc eax - 00188 89 85 a4 00 00 + 0019d ff c0 inc eax + 0019f 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax $LN6@JitEmitPre: ; 318 : RipDelta += ((FourByte - Count) * 4); - 0018e 8b 85 84 00 00 + 001a5 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00194 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00197 2b c8 sub ecx, eax - 00199 8b c1 mov eax, ecx - 0019b 8b 8d a4 00 00 + 001ab 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001ae 2b c8 sub ecx, eax + 001b0 8b c1 mov eax, ecx + 001b2 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001a1 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 001a4 89 85 a4 00 00 + 001b8 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001bb 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 319 : RipDelta += Delta; - 001aa 8b 85 e0 02 00 + 001c1 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001b0 8b 8d a4 00 00 + 001c7 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001b6 03 c8 add ecx, eax - 001b8 8b c1 mov eax, ecx - 001ba 89 85 a4 00 00 + 001cd 03 c8 add ecx, eax + 001cf 8b c1 mov eax, ecx + 001d1 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 320 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) - 001c0 8b 85 84 00 00 + 001d7 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001c6 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001c9 2b c8 sub ecx, eax - 001cb 8b c1 mov eax, ecx - 001cd 8b c0 mov eax, eax - 001cf 48 8b 8d c8 02 + 001dd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001e0 2b c8 sub ecx, eax + 001e2 8b c1 mov eax, ecx + 001e4 8b c0 mov eax, eax + 001e6 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 001d6 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 001da 44 8b 85 a4 00 + 001ed 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] + 001f1 44 8b 85 a4 00 00 00 mov r8d, DWORD PTR RipDelta$1[rbp] - 001e1 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 001e5 8b 8d d0 02 00 + 001f8 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 001fc 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 001eb e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 001f0 85 c0 test eax, eax - 001f2 75 4a jne SHORT $LN7@JitEmitPre + 00202 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD + 00207 85 c0 test eax, eax + 00209 75 4a jne SHORT $LN7@JitEmitPre ; 321 : { ; 322 : NcDeleteBlock(Block); - 001f4 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001f8 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0020b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0020f e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 323 : delete Block; - 001fd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00201 48 89 85 28 02 + 00214 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00218 48 89 85 28 02 00 00 mov QWORD PTR $T7[rbp], rax - 00208 48 83 bd 28 02 + 0021f 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 00210 74 1a je SHORT $LN20@JitEmitPre - 00212 ba 01 00 00 00 mov edx, 1 - 00217 48 8b 8d 28 02 + 00227 74 1a je SHORT $LN20@JitEmitPre + 00229 ba 01 00 00 00 mov edx, 1 + 0022e 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR $T7[rbp] - 0021e e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00223 48 89 85 98 02 + 00235 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0023a 48 89 85 98 02 00 00 mov QWORD PTR tv158[rbp], rax - 0022a eb 0b jmp SHORT $LN21@JitEmitPre + 00241 eb 0b jmp SHORT $LN21@JitEmitPre $LN20@JitEmitPre: - 0022c 48 c7 85 98 02 + 00243 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPre: ; 324 : return NULL; - 00237 33 c0 xor eax, eax - 00239 e9 0d 02 00 00 jmp $LN1@JitEmitPre + 0024e 33 c0 xor eax, eax + 00250 e9 0d 02 00 00 jmp $LN1@JitEmitPre $LN7@JitEmitPre: ; 325 : } ; 326 : --Count; - 0023e 8b 85 84 00 00 + 00255 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00244 ff c8 dec eax - 00246 89 85 84 00 00 + 0025b ff c8 dec eax + 0025d 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 327 : } - 0024c e9 fc fe ff ff jmp $LN2@JitEmitPre + 00263 e9 fc fe ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 328 : ; 329 : if (TwoByte) - 00251 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00255 0f 84 c1 00 00 + 00268 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0026c 0f 84 c1 00 00 00 je $LN8@JitEmitPre ; 330 : { ; 331 : INT32 RipDelta = (OneByte * BYTE_RIP_INST_LENGTH); - 0025b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 0025f 89 85 c4 00 00 + 00272 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 00276 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 332 : if (SaveFlags) - 00265 83 bd d8 02 00 + 0027c 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0026c 74 0e je SHORT $LN9@JitEmitPre + 00283 74 0e je SHORT $LN9@JitEmitPre ; 333 : RipDelta += 1; - 0026e 8b 85 c4 00 00 + 00285 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00274 ff c0 inc eax - 00276 89 85 c4 00 00 + 0028b ff c0 inc eax + 0028d 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax $LN9@JitEmitPre: ; 334 : RipDelta += (FourByte * 4); - 0027c 8b 85 c4 00 00 + 00293 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00282 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00285 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00288 89 85 c4 00 00 + 00299 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 0029c 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 0029f 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 335 : RipDelta += Delta; - 0028e 8b 85 e0 02 00 + 002a5 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 00294 8b 8d c4 00 00 + 002ab 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 0029a 03 c8 add ecx, eax - 0029c 8b c1 mov eax, ecx - 0029e 89 85 c4 00 00 + 002b1 03 c8 add ecx, eax + 002b3 8b c1 mov eax, ecx + 002b5 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 336 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) - 002a4 b8 04 00 00 00 mov eax, 4 - 002a9 48 6b c0 03 imul rax, rax, 3 - 002ad 48 8b 8d c8 02 + 002bb b8 04 00 00 00 mov eax, 4 + 002c0 48 6b c0 03 imul rax, rax, 3 + 002c4 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 002b4 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 002b8 44 8b 85 c4 00 + 002cb 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 002cf 44 8b 85 c4 00 00 00 mov r8d, DWORD PTR RipDelta$2[rbp] - 002bf 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 002c3 8b 8d d0 02 00 + 002d6 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 002da 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 002c9 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 002ce 85 c0 test eax, eax - 002d0 75 4a jne SHORT $LN8@JitEmitPre + 002e0 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW + 002e5 85 c0 test eax, eax + 002e7 75 4a jne SHORT $LN8@JitEmitPre ; 337 : { ; 338 : NcDeleteBlock(Block); - 002d2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002d6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 002e9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002ed e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 339 : delete Block; - 002db 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 002df 48 89 85 48 02 + 002f2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002f6 48 89 85 48 02 00 00 mov QWORD PTR $T8[rbp], rax - 002e6 48 83 bd 48 02 + 002fd 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 002ee 74 1a je SHORT $LN22@JitEmitPre - 002f0 ba 01 00 00 00 mov edx, 1 - 002f5 48 8b 8d 48 02 + 00305 74 1a je SHORT $LN22@JitEmitPre + 00307 ba 01 00 00 00 mov edx, 1 + 0030c 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 002fc e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00301 48 89 85 98 02 + 00313 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00318 48 89 85 98 02 00 00 mov QWORD PTR tv181[rbp], rax - 00308 eb 0b jmp SHORT $LN23@JitEmitPre + 0031f eb 0b jmp SHORT $LN23@JitEmitPre $LN22@JitEmitPre: - 0030a 48 c7 85 98 02 + 00321 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv181[rbp], 0 $LN23@JitEmitPre: ; 340 : return NULL; - 00315 33 c0 xor eax, eax - 00317 e9 2f 01 00 00 jmp $LN1@JitEmitPre + 0032c 33 c0 xor eax, eax + 0032e e9 2f 01 00 00 jmp $LN1@JitEmitPre $LN8@JitEmitPre: ; 341 : } @@ -3153,100 +3262,100 @@ $LN8@JitEmitPre: ; 343 : ; 344 : if (OneByte) - 0031c 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00320 0f 84 c4 00 00 + 00333 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00337 0f 84 c4 00 00 00 je $LN11@JitEmitPre ; 345 : { ; 346 : INT32 RipDelta = 0; - 00326 c7 85 e4 00 00 + 0033d c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 347 : if (SaveFlags) - 00330 83 bd d8 02 00 + 00347 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00337 74 0e je SHORT $LN12@JitEmitPre + 0034e 74 0e je SHORT $LN12@JitEmitPre ; 348 : RipDelta += 1; - 00339 8b 85 e4 00 00 + 00350 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 0033f ff c0 inc eax - 00341 89 85 e4 00 00 + 00356 ff c0 inc eax + 00358 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax $LN12@JitEmitPre: ; 349 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 00347 8b 85 e4 00 00 + 0035e 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 0034d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00350 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00353 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00356 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00359 89 85 e4 00 00 + 00364 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00367 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 0036a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0036d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] + 00370 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 350 : RipDelta += Delta; - 0035f 8b 85 e0 02 00 + 00376 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 00365 8b 8d e4 00 00 + 0037c 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 0036b 03 c8 add ecx, eax - 0036d 8b c1 mov eax, ecx - 0036f 89 85 e4 00 00 + 00382 03 c8 add ecx, eax + 00384 8b c1 mov eax, ecx + 00386 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 351 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) - 00375 b8 04 00 00 00 mov eax, 4 - 0037a 48 6b c0 04 imul rax, rax, 4 - 0037e 48 8b 8d c8 02 + 0038c b8 04 00 00 00 mov eax, 4 + 00391 48 6b c0 04 imul rax, rax, 4 + 00395 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00385 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00389 44 8b 85 e4 00 + 0039c 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 003a0 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR RipDelta$3[rbp] - 00390 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00394 8b 8d d0 02 00 + 003a7 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 003ab 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 0039a e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 0039f 85 c0 test eax, eax - 003a1 75 47 jne SHORT $LN11@JitEmitPre + 003b1 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB + 003b6 85 c0 test eax, eax + 003b8 75 47 jne SHORT $LN11@JitEmitPre ; 352 : { ; 353 : NcDeleteBlock(Block); - 003a3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003a7 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 003ba 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003be e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 354 : delete Block; - 003ac 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003b0 48 89 85 68 02 + 003c3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003c7 48 89 85 68 02 00 00 mov QWORD PTR $T9[rbp], rax - 003b7 48 83 bd 68 02 + 003ce 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 003bf 74 1a je SHORT $LN24@JitEmitPre - 003c1 ba 01 00 00 00 mov edx, 1 - 003c6 48 8b 8d 68 02 + 003d6 74 1a je SHORT $LN24@JitEmitPre + 003d8 ba 01 00 00 00 mov edx, 1 + 003dd 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR $T9[rbp] - 003cd e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 003d2 48 89 85 98 02 + 003e4 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 003e9 48 89 85 98 02 00 00 mov QWORD PTR tv204[rbp], rax - 003d9 eb 0b jmp SHORT $LN25@JitEmitPre + 003f0 eb 0b jmp SHORT $LN25@JitEmitPre $LN24@JitEmitPre: - 003db 48 c7 85 98 02 + 003f2 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv204[rbp], 0 $LN25@JitEmitPre: ; 355 : return NULL; - 003e6 33 c0 xor eax, eax - 003e8 eb 61 jmp SHORT $LN1@JitEmitPre + 003fd 33 c0 xor eax, eax + 003ff eb 61 jmp SHORT $LN1@JitEmitPre $LN11@JitEmitPre: ; 356 : } @@ -3254,61 +3363,61 @@ $LN11@JitEmitPre: ; 358 : ; 359 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 003ea 83 bd d8 02 00 + 00401 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 003f1 74 54 je SHORT $LN14@JitEmitPre - 003f3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003f7 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 003fc 85 c0 test eax, eax - 003fe 75 47 jne SHORT $LN14@JitEmitPre + 00408 74 54 je SHORT $LN14@JitEmitPre + 0040a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0040e e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst + 00413 85 c0 test eax, eax + 00415 75 47 jne SHORT $LN14@JitEmitPre ; 360 : { ; 361 : NcDeleteBlock(Block); - 00400 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00404 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00417 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0041b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 362 : delete Block; - 00409 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0040d 48 89 85 88 02 + 00420 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00424 48 89 85 88 02 00 00 mov QWORD PTR $T10[rbp], rax - 00414 48 83 bd 88 02 + 0042b 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0041c 74 1a je SHORT $LN26@JitEmitPre - 0041e ba 01 00 00 00 mov edx, 1 - 00423 48 8b 8d 88 02 + 00433 74 1a je SHORT $LN26@JitEmitPre + 00435 ba 01 00 00 00 mov edx, 1 + 0043a 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR $T10[rbp] - 0042a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0042f 48 89 85 98 02 + 00441 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00446 48 89 85 98 02 00 00 mov QWORD PTR tv214[rbp], rax - 00436 eb 0b jmp SHORT $LN27@JitEmitPre + 0044d eb 0b jmp SHORT $LN27@JitEmitPre $LN26@JitEmitPre: - 00438 48 c7 85 98 02 + 0044f 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN27@JitEmitPre: ; 363 : return NULL; - 00443 33 c0 xor eax, eax - 00445 eb 04 jmp SHORT $LN1@JitEmitPre + 0045a 33 c0 xor eax, eax + 0045c eb 04 jmp SHORT $LN1@JitEmitPre $LN14@JitEmitPre: ; 364 : } ; 365 : ; 366 : return Block; - 00447 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0045e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 367 : } - 0044b 48 8d a5 a8 02 + 00462 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 00452 5f pop rdi - 00453 5d pop rbp - 00454 c3 ret 0 + 00469 5f pop rdi + 0046a 5d pop rbp + 0046b c3 ret 0 ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ENDP ; JitEmitPreRipBitwiseOp _TEXT ENDS ; COMDAT text$x @@ -3403,7 +3512,7 @@ Delta$ = 736 ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -3445,362 +3554,362 @@ $LN25: 0000b 48 81 ec f8 03 00 00 sub rsp, 1016 ; 000003f8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 96 00 00 00 mov ecx, 150 ; 00000096H - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 18 + 00017 48 8b fc mov rdi, rsp + 0001a b9 fe 00 00 00 mov ecx, 254 ; 000000feH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 18 04 00 00 mov rcx, QWORD PTR [rsp+1048] - 00030 48 8b 05 00 00 + 0002e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 c0 03 + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 c0 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 200 : ULONG FourByte = Link->RawDataSize / 4; - 0004d 33 d2 xor edx, edx - 0004f 48 8b 85 f0 03 + 0004b 33 d2 xor edx, edx + 0004d 48 8b 85 f0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00056 8b 40 28 mov eax, DWORD PTR [rax+40] - 00059 b9 04 00 00 00 mov ecx, 4 - 0005e f7 f1 div ecx - 00060 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 00054 8b 40 28 mov eax, DWORD PTR [rax+40] + 00057 b9 04 00 00 00 mov ecx, 4 + 0005c f7 f1 div ecx + 0005e 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 201 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00063 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00066 c1 e0 02 shl eax, 2 - 00069 48 8b 8d f0 03 + 00061 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00064 c1 e0 02 shl eax, 2 + 00067 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00070 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00073 2b c8 sub ecx, eax - 00075 8b c1 mov eax, ecx - 00077 33 d2 xor edx, edx - 00079 b9 02 00 00 00 mov ecx, 2 - 0007e f7 f1 div ecx - 00080 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 0006e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00071 2b c8 sub ecx, eax + 00073 8b c1 mov eax, ecx + 00075 33 d2 xor edx, edx + 00077 b9 02 00 00 00 mov ecx, 2 + 0007c f7 f1 div ecx + 0007e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 202 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00083 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00086 c1 e0 02 shl eax, 2 - 00089 48 8b 8d f0 03 + 00081 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00084 c1 e0 02 shl eax, 2 + 00087 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00090 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00093 2b c8 sub ecx, eax - 00095 8b c1 mov eax, ecx - 00097 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0009a d1 e1 shl ecx, 1 - 0009c 2b c1 sub eax, ecx - 0009e 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 0008e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00091 2b c8 sub ecx, eax + 00093 8b c1 mov eax, ecx + 00095 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00098 d1 e1 shl ecx, 1 + 0009a 2b c1 sub eax, ecx + 0009c 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 203 : ; 204 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 000a1 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000a6 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ab 48 89 85 e8 02 + 0009f b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000a4 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a9 48 89 85 e8 02 00 00 mov QWORD PTR $T8[rbp], rax - 000b2 48 83 bd e8 02 + 000b0 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 000ba 74 15 je SHORT $LN11@JitEmitPos - 000bc 48 8b 8d e8 02 + 000b8 74 15 je SHORT $LN11@JitEmitPos + 000ba 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 000c3 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c8 48 89 85 b8 03 + 000c1 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c6 48 89 85 b8 03 00 00 mov QWORD PTR tv86[rbp], rax - 000cf eb 0b jmp SHORT $LN12@JitEmitPos + 000cd eb 0b jmp SHORT $LN12@JitEmitPos $LN11@JitEmitPos: - 000d1 48 c7 85 b8 03 + 000cf 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPos: - 000dc 48 8b 85 b8 03 + 000da 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000e3 48 89 85 c8 02 + 000e1 48 89 85 c8 02 00 00 mov QWORD PTR $T7[rbp], rax - 000ea 48 8b 85 c8 02 + 000e8 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T7[rbp] - 000f1 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000ef 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 205 : ; 206 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000f5 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000fa e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ff 48 89 85 28 03 + 000f3 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 000f8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000fd 48 89 85 28 03 00 00 mov QWORD PTR $T10[rbp], rax - 00106 48 83 bd 28 03 + 00104 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0010e 74 15 je SHORT $LN13@JitEmitPos - 00110 48 8b 8d 28 03 + 0010c 74 15 je SHORT $LN13@JitEmitPos + 0010e 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00117 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0011c 48 89 85 b8 03 + 00115 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0011a 48 89 85 b8 03 00 00 mov QWORD PTR tv131[rbp], rax - 00123 eb 0b jmp SHORT $LN14@JitEmitPos + 00121 eb 0b jmp SHORT $LN14@JitEmitPos $LN13@JitEmitPos: - 00125 48 c7 85 b8 03 + 00123 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPos: - 00130 48 8b 85 b8 03 + 0012e 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 00137 48 89 85 08 03 + 00135 48 89 85 08 03 00 00 mov QWORD PTR $T9[rbp], rax - 0013e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00142 48 8b 8d 08 03 + 0013c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00140 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 00149 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0014d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00151 48 8b 8d 08 03 + 00147 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0014b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0014f 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 00158 48 89 08 mov QWORD PTR [rax], rcx + 00156 48 89 08 mov QWORD PTR [rax], rcx ; 207 : ULONG ZeroValue = 0; - 0015b c7 85 84 00 00 + 00159 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR ZeroValue$[rbp], 0 ; 208 : ULONG Count = FourByte; - 00165 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00168 89 85 a4 00 00 + 00163 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00166 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPos: ; 209 : while (Count) - 0016e 83 bd a4 00 00 + 0016c 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00175 0f 84 ec 00 00 + 00173 0f 84 ec 00 00 00 je $LN3@JitEmitPos ; 210 : { ; 211 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 0017b 8b 85 a4 00 00 + 00179 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00181 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00184 2b c8 sub ecx, eax - 00186 8b c1 mov eax, ecx - 00188 c1 e0 02 shl eax, 2 - 0018b 48 8b 8d f0 03 + 0017f 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00182 2b c8 sub ecx, eax + 00184 8b c1 mov eax, ecx + 00186 c1 e0 02 shl eax, 2 + 00189 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00192 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00195 2b c8 sub ecx, eax - 00197 8b c1 mov eax, ecx - 00199 89 85 c4 00 00 + 00190 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00193 2b c8 sub ecx, eax + 00195 8b c1 mov eax, ecx + 00197 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 212 : RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH; - 0019f 8b 85 a4 00 00 + 0019d 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001a5 ff c8 dec eax - 001a7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001aa 2b c8 sub ecx, eax - 001ac 8b c1 mov eax, ecx - 001ae 6b c0 0a imul eax, eax, 10 - 001b1 8b 8d c4 00 00 + 001a3 ff c8 dec eax + 001a5 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001a8 2b c8 sub ecx, eax + 001aa 8b c1 mov eax, ecx + 001ac 6b c0 0a imul eax, eax, 10 + 001af 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001b7 03 c8 add ecx, eax - 001b9 8b c1 mov eax, ecx - 001bb 89 85 c4 00 00 + 001b5 03 c8 add ecx, eax + 001b7 8b c1 mov eax, ecx + 001b9 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 213 : RipDelta *= (-1); - 001c1 6b 85 c4 00 00 + 001bf 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$4[rbp], -1 - 001c8 89 85 c4 00 00 + 001c6 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 214 : RipDelta += Delta; - 001ce 8b 85 f8 03 00 + 001cc 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 001d4 8b 8d c4 00 00 + 001d2 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001da 03 c8 add ecx, eax - 001dc 8b c1 mov eax, ecx - 001de 89 85 c4 00 00 + 001d8 03 c8 add ecx, eax + 001da 8b c1 mov eax, ecx + 001dc 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 215 : ZeroValue = rand(); - 001e4 ff 15 00 00 00 + 001e2 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 001ea 89 85 84 00 00 + 001e8 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 216 : if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) - 001f0 4c 8d 85 84 00 + 001ee 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 001f7 8b 95 c4 00 00 + 001f5 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$4[rbp] - 001fd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00201 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 00206 85 c0 test eax, eax - 00208 75 4a jne SHORT $LN4@JitEmitPos + 001fb 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001ff e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD + 00204 85 c0 test eax, eax + 00206 75 4a jne SHORT $LN4@JitEmitPos ; 217 : { ; 218 : NcDeleteBlock(Block); - 0020a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0020e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00208 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0020c e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 219 : delete Block; - 00213 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00217 48 89 85 48 03 + 00211 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00215 48 89 85 48 03 00 00 mov QWORD PTR $T11[rbp], rax - 0021e 48 83 bd 48 03 + 0021c 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00226 74 1a je SHORT $LN15@JitEmitPos - 00228 ba 01 00 00 00 mov edx, 1 - 0022d 48 8b 8d 48 03 + 00224 74 1a je SHORT $LN15@JitEmitPos + 00226 ba 01 00 00 00 mov edx, 1 + 0022b 48 8b 8d 48 03 00 00 mov rcx, QWORD PTR $T11[rbp] - 00234 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00239 48 89 85 b8 03 + 00232 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00237 48 89 85 b8 03 00 00 mov QWORD PTR tv153[rbp], rax - 00240 eb 0b jmp SHORT $LN16@JitEmitPos + 0023e eb 0b jmp SHORT $LN16@JitEmitPos $LN15@JitEmitPos: - 00242 48 c7 85 b8 03 + 00240 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPos: ; 220 : return NULL; - 0024d 33 c0 xor eax, eax - 0024f e9 58 02 00 00 jmp $LN1@JitEmitPos + 0024b 33 c0 xor eax, eax + 0024d e9 58 02 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 221 : } ; 222 : --Count; - 00254 8b 85 a4 00 00 + 00252 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0025a ff c8 dec eax - 0025c 89 85 a4 00 00 + 00258 ff c8 dec eax + 0025a 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 223 : } - 00262 e9 07 ff ff ff jmp $LN2@JitEmitPos + 00260 e9 07 ff ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 224 : ; 225 : if (TwoByte) - 00267 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0026b 0f 84 d0 00 00 + 00265 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00269 0f 84 d0 00 00 00 je $LN5@JitEmitPos ; 226 : { ; 227 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - 00271 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00274 c1 e0 02 shl eax, 2 - 00277 48 8b 8d f0 03 + 0026f 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00272 c1 e0 02 shl eax, 2 + 00275 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0027e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00281 2b c8 sub ecx, eax - 00283 8b c1 mov eax, ecx - 00285 89 85 e4 00 00 + 0027c 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0027f 2b c8 sub ecx, eax + 00281 8b c1 mov eax, ecx + 00283 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 228 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - 0028b 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 0028f 8b 8d e4 00 00 + 00289 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 0028d 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 00295 03 c8 add ecx, eax - 00297 8b c1 mov eax, ecx - 00299 89 85 e4 00 00 + 00293 03 c8 add ecx, eax + 00295 8b c1 mov eax, ecx + 00297 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 229 : RipDelta += WORD_MOV_INST_LENGTH; - 0029f 8b 85 e4 00 00 + 0029d 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$5[rbp] - 002a5 83 c0 09 add eax, 9 - 002a8 89 85 e4 00 00 + 002a3 83 c0 09 add eax, 9 + 002a6 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 230 : RipDelta *= (-1); - 002ae 6b 85 e4 00 00 + 002ac 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$5[rbp], -1 - 002b5 89 85 e4 00 00 + 002b3 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 231 : RipDelta += Delta; - 002bb 8b 85 f8 03 00 + 002b9 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 002c1 8b 8d e4 00 00 + 002bf 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 002c7 03 c8 add ecx, eax - 002c9 8b c1 mov eax, ecx - 002cb 89 85 e4 00 00 + 002c5 03 c8 add ecx, eax + 002c7 8b c1 mov eax, ecx + 002c9 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 232 : ZeroValue = rand(); - 002d1 ff 15 00 00 00 + 002cf ff 15 00 00 00 00 call QWORD PTR __imp_rand - 002d7 89 85 84 00 00 + 002d5 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 233 : if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) - 002dd 4c 8d 85 84 00 + 002db 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 002e4 8b 95 e4 00 00 + 002e2 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$5[rbp] - 002ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002ee e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 002f3 85 c0 test eax, eax - 002f5 75 4a jne SHORT $LN5@JitEmitPos + 002e8 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002ec e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW + 002f1 85 c0 test eax, eax + 002f3 75 4a jne SHORT $LN5@JitEmitPos ; 234 : { ; 235 : NcDeleteBlock(Block); - 002f7 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002fb e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 002f5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002f9 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 236 : delete Block; - 00300 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00304 48 89 85 68 03 + 002fe 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00302 48 89 85 68 03 00 00 mov QWORD PTR $T12[rbp], rax - 0030b 48 83 bd 68 03 + 00309 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 00313 74 1a je SHORT $LN17@JitEmitPos - 00315 ba 01 00 00 00 mov edx, 1 - 0031a 48 8b 8d 68 03 + 00311 74 1a je SHORT $LN17@JitEmitPos + 00313 ba 01 00 00 00 mov edx, 1 + 00318 48 8b 8d 68 03 00 00 mov rcx, QWORD PTR $T12[rbp] - 00321 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00326 48 89 85 b8 03 + 0031f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00324 48 89 85 b8 03 00 00 mov QWORD PTR tv175[rbp], rax - 0032d eb 0b jmp SHORT $LN18@JitEmitPos + 0032b eb 0b jmp SHORT $LN18@JitEmitPos $LN17@JitEmitPos: - 0032f 48 c7 85 b8 03 + 0032d 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv175[rbp], 0 $LN18@JitEmitPos: ; 237 : return NULL; - 0033a 33 c0 xor eax, eax - 0033c e9 6b 01 00 00 jmp $LN1@JitEmitPos + 00338 33 c0 xor eax, eax + 0033a e9 6b 01 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 238 : } @@ -3808,121 +3917,121 @@ $LN5@JitEmitPos: ; 240 : ; 241 : if (OneByte) - 00341 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00345 0f 84 e8 00 00 + 0033f 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00343 0f 84 e8 00 00 00 je $LN7@JitEmitPos ; 242 : { ; 243 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - 0034b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0034e c1 e0 02 shl eax, 2 - 00351 48 8b 8d f0 03 + 00349 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0034c c1 e0 02 shl eax, 2 + 0034f 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00358 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0035b 2b c8 sub ecx, eax - 0035d 8b c1 mov eax, ecx - 0035f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00362 d1 e1 shl ecx, 1 - 00364 2b c1 sub eax, ecx - 00366 89 85 04 01 00 + 00356 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00359 2b c8 sub ecx, eax + 0035b 8b c1 mov eax, ecx + 0035d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00360 d1 e1 shl ecx, 1 + 00362 2b c1 sub eax, ecx + 00364 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 244 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - 0036c 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 00370 8b 8d 04 01 00 + 0036a 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 0036e 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 00376 03 c8 add ecx, eax - 00378 8b c1 mov eax, ecx - 0037a 89 85 04 01 00 + 00374 03 c8 add ecx, eax + 00376 8b c1 mov eax, ecx + 00378 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 245 : RipDelta += (TwoByte * WORD_MOV_INST_LENGTH); - 00380 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 - 00384 8b 8d 04 01 00 + 0037e 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 + 00382 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 0038a 03 c8 add ecx, eax - 0038c 8b c1 mov eax, ecx - 0038e 89 85 04 01 00 + 00388 03 c8 add ecx, eax + 0038a 8b c1 mov eax, ecx + 0038c 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 246 : RipDelta += BYTE_MOV_INST_LENGTH; - 00394 8b 85 04 01 00 + 00392 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$6[rbp] - 0039a 83 c0 07 add eax, 7 - 0039d 89 85 04 01 00 + 00398 83 c0 07 add eax, 7 + 0039b 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 247 : RipDelta *= (-1); - 003a3 6b 85 04 01 00 + 003a1 6b 85 04 01 00 00 ff imul eax, DWORD PTR RipDelta$6[rbp], -1 - 003aa 89 85 04 01 00 + 003a8 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 248 : RipDelta += Delta; - 003b0 8b 85 f8 03 00 + 003ae 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 003b6 8b 8d 04 01 00 + 003b4 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 003bc 03 c8 add ecx, eax - 003be 8b c1 mov eax, ecx - 003c0 89 85 04 01 00 + 003ba 03 c8 add ecx, eax + 003bc 8b c1 mov eax, ecx + 003be 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 249 : ZeroValue = rand(); - 003c6 ff 15 00 00 00 + 003c4 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 003cc 89 85 84 00 00 + 003ca 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 250 : if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) - 003d2 4c 8d 85 84 00 + 003d0 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 003d9 8b 95 04 01 00 + 003d7 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$6[rbp] - 003df 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003e3 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 003e8 85 c0 test eax, eax - 003ea 75 47 jne SHORT $LN7@JitEmitPos + 003dd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003e1 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB + 003e6 85 c0 test eax, eax + 003e8 75 47 jne SHORT $LN7@JitEmitPos ; 251 : { ; 252 : NcDeleteBlock(Block); - 003ec 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003f0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 003ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003ee e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 253 : delete Block; - 003f5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003f9 48 89 85 88 03 + 003f3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003f7 48 89 85 88 03 00 00 mov QWORD PTR $T13[rbp], rax - 00400 48 83 bd 88 03 + 003fe 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 00408 74 1a je SHORT $LN19@JitEmitPos - 0040a ba 01 00 00 00 mov edx, 1 - 0040f 48 8b 8d 88 03 + 00406 74 1a je SHORT $LN19@JitEmitPos + 00408 ba 01 00 00 00 mov edx, 1 + 0040d 48 8b 8d 88 03 00 00 mov rcx, QWORD PTR $T13[rbp] - 00416 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0041b 48 89 85 b8 03 + 00414 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00419 48 89 85 b8 03 00 00 mov QWORD PTR tv200[rbp], rax - 00422 eb 0b jmp SHORT $LN20@JitEmitPos + 00420 eb 0b jmp SHORT $LN20@JitEmitPos $LN19@JitEmitPos: - 00424 48 c7 85 b8 03 + 00422 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv200[rbp], 0 $LN20@JitEmitPos: ; 254 : return NULL; - 0042f 33 c0 xor eax, eax - 00431 eb 79 jmp SHORT $LN1@JitEmitPos + 0042d 33 c0 xor eax, eax + 0042f eb 79 jmp SHORT $LN1@JitEmitPos $LN7@JitEmitPos: ; 255 : } @@ -3930,51 +4039,51 @@ $LN7@JitEmitPos: ; 257 : ; 258 : PNATIVE_CODE_LINK StartLink = Block->Start; - 00433 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00437 48 8b 00 mov rax, QWORD PTR [rax] - 0043a 48 89 85 28 01 + 00431 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00435 48 8b 00 mov rax, QWORD PTR [rax] + 00438 48 89 85 28 01 00 00 mov QWORD PTR StartLink$[rbp], rax ; 259 : Block->Start = Block->Start->Next; - 00441 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00445 48 8b 00 mov rax, QWORD PTR [rax] - 00448 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0044c 48 8b 00 mov rax, QWORD PTR [rax] - 0044f 48 89 01 mov QWORD PTR [rcx], rax + 0043f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00443 48 8b 00 mov rax, QWORD PTR [rax] + 00446 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0044a 48 8b 00 mov rax, QWORD PTR [rax] + 0044d 48 89 01 mov QWORD PTR [rcx], rax ; 260 : if (Block->Start) - 00452 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00456 48 83 38 00 cmp QWORD PTR [rax], 0 - 0045a 74 0f je SHORT $LN9@JitEmitPos + 00450 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00454 48 83 38 00 cmp QWORD PTR [rax], 0 + 00458 74 0f je SHORT $LN9@JitEmitPos ; 261 : Block->Start->Prev = NULL; - 0045c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00460 48 8b 00 mov rax, QWORD PTR [rax] - 00463 48 c7 40 08 00 + 0045a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0045e 48 8b 00 mov rax, QWORD PTR [rax] + 00461 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 $LN9@JitEmitPos: ; 262 : delete StartLink; - 0046b 48 8b 85 28 01 + 00469 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 00472 48 89 85 a8 03 + 00470 48 89 85 a8 03 00 00 mov QWORD PTR $T14[rbp], rax - 00479 48 83 bd a8 03 + 00477 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T14[rbp], 0 - 00481 74 1a je SHORT $LN21@JitEmitPos - 00483 ba 01 00 00 00 mov edx, 1 - 00488 48 8b 8d a8 03 + 0047f 74 1a je SHORT $LN21@JitEmitPos + 00481 ba 01 00 00 00 mov edx, 1 + 00486 48 8b 8d a8 03 00 00 mov rcx, QWORD PTR $T14[rbp] - 0048f e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00494 48 89 85 b8 03 + 0048d e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00492 48 89 85 b8 03 00 00 mov QWORD PTR tv213[rbp], rax - 0049b eb 0b jmp SHORT $LN22@JitEmitPos + 00499 eb 0b jmp SHORT $LN22@JitEmitPos $LN21@JitEmitPos: - 0049d 48 c7 85 b8 03 + 0049b 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv213[rbp], 0 $LN22@JitEmitPos: @@ -3982,26 +4091,26 @@ $LN22@JitEmitPos: ; 263 : ; 264 : return Block; - 004a8 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 265 : } - 004ac 48 8b f8 mov rdi, rax - 004af 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 004b3 48 8d 15 00 00 + 004aa 48 8b f8 mov rdi, rax + 004ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 004b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData - 004ba e8 00 00 00 00 call _RTC_CheckStackVars - 004bf 48 8b c7 mov rax, rdi - 004c2 48 8b 8d c0 03 + 004b8 e8 00 00 00 00 call _RTC_CheckStackVars + 004bd 48 8b c7 mov rax, rdi + 004c0 48 8b 8d c0 03 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 004c9 48 33 cd xor rcx, rbp - 004cc e8 00 00 00 00 call __security_check_cookie - 004d1 48 8d a5 d8 03 + 004c7 48 33 cd xor rcx, rbp + 004ca e8 00 00 00 00 call __security_check_cookie + 004cf 48 8d a5 d8 03 00 00 lea rsp, QWORD PTR [rbp+984] - 004d8 5f pop rdi - 004d9 5d pop rbp - 004da c3 ret 0 + 004d6 5f pop rdi + 004d7 5d pop rbp + 004d8 c3 ret 0 ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPostRipMov _TEXT ENDS ; COMDAT text$x @@ -4086,7 +4195,7 @@ Delta$ = 1016 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T10[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -4180,7 +4289,7 @@ Delta$ = 1016 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T10[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -4191,7 +4300,7 @@ Delta$ = 1016 ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -4232,325 +4341,331 @@ $LN25: 0000b 48 81 ec e8 03 00 00 sub rsp, 1000 ; 000003e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 fa 00 00 00 mov ecx, 250 ; 000000faH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 04 00 00 mov rcx, QWORD PTR [rsp+1032] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 135 : ULONG FourByte = Link->RawDataSize / 4; - 00023 33 d2 xor edx, edx - 00025 48 8b 85 e0 03 + 0003a 33 d2 xor edx, edx + 0003c 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0002c 8b 40 28 mov eax, DWORD PTR [rax+40] - 0002f b9 04 00 00 00 mov ecx, 4 - 00034 f7 f1 div ecx - 00036 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 00043 8b 40 28 mov eax, DWORD PTR [rax+40] + 00046 b9 04 00 00 00 mov ecx, 4 + 0004b f7 f1 div ecx + 0004d 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 136 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00039 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0003c c1 e0 02 shl eax, 2 - 0003f 48 8b 8d e0 03 + 00050 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00053 c1 e0 02 shl eax, 2 + 00056 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00046 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00049 2b c8 sub ecx, eax - 0004b 8b c1 mov eax, ecx - 0004d 33 d2 xor edx, edx - 0004f b9 02 00 00 00 mov ecx, 2 - 00054 f7 f1 div ecx - 00056 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 0005d 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00060 2b c8 sub ecx, eax + 00062 8b c1 mov eax, ecx + 00064 33 d2 xor edx, edx + 00066 b9 02 00 00 00 mov ecx, 2 + 0006b f7 f1 div ecx + 0006d 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 137 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00059 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005c c1 e0 02 shl eax, 2 - 0005f 48 8b 8d e0 03 + 00070 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00073 c1 e0 02 shl eax, 2 + 00076 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00066 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00069 2b c8 sub ecx, eax - 0006b 8b c1 mov eax, ecx - 0006d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00070 03 c9 add ecx, ecx - 00072 2b c1 sub eax, ecx - 00074 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 0007d 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00080 2b c8 sub ecx, eax + 00082 8b c1 mov eax, ecx + 00084 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00087 03 c9 add ecx, ecx + 00089 2b c1 sub eax, ecx + 0008b 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 138 : ; 139 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00077 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00081 48 89 85 e8 02 + 0008e b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00093 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00098 48 89 85 e8 02 00 00 mov QWORD PTR $T5[rbp], rax - 00088 48 83 bd e8 02 + 0009f 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00090 74 15 je SHORT $LN11@JitEmitPre - 00092 48 8b 8d e8 02 + 000a7 74 15 je SHORT $LN11@JitEmitPre + 000a9 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T5[rbp] - 00099 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 0009e 48 89 85 b8 03 + 000b0 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000b5 48 89 85 b8 03 00 00 mov QWORD PTR tv86[rbp], rax - 000a5 eb 0b jmp SHORT $LN12@JitEmitPre + 000bc eb 0b jmp SHORT $LN12@JitEmitPre $LN11@JitEmitPre: - 000a7 48 c7 85 b8 03 + 000be 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPre: - 000b2 48 8b 85 b8 03 + 000c9 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000b9 48 89 85 c8 02 + 000d0 48 89 85 c8 02 00 00 mov QWORD PTR $T4[rbp], rax - 000c0 48 8b 85 c8 02 + 000d7 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T4[rbp] - 000c7 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000de 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 140 : ; 141 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000d5 48 89 85 28 03 + 000e2 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 000e7 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000ec 48 89 85 28 03 00 00 mov QWORD PTR $T7[rbp], rax - 000dc 48 83 bd 28 03 + 000f3 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 000e4 74 15 je SHORT $LN13@JitEmitPre - 000e6 48 8b 8d 28 03 + 000fb 74 15 je SHORT $LN13@JitEmitPre + 000fd 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T7[rbp] - 000ed e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000f2 48 89 85 b8 03 + 00104 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00109 48 89 85 b8 03 00 00 mov QWORD PTR tv131[rbp], rax - 000f9 eb 0b jmp SHORT $LN14@JitEmitPre + 00110 eb 0b jmp SHORT $LN14@JitEmitPre $LN13@JitEmitPre: - 000fb 48 c7 85 b8 03 + 00112 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPre: - 00106 48 8b 85 b8 03 + 0011d 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 0010d 48 89 85 08 03 + 00124 48 89 85 08 03 00 00 mov QWORD PTR $T6[rbp], rax - 00114 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00118 48 8b 8d 08 03 + 0012b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0012f 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T6[rbp] - 0011f 48 89 48 08 mov QWORD PTR [rax+8], rcx - 00123 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00127 48 8b 8d 08 03 + 00136 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0013a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0013e 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T6[rbp] - 0012e 48 89 08 mov QWORD PTR [rax], rcx + 00145 48 89 08 mov QWORD PTR [rax], rcx ; 142 : PUCHAR DataOffset = Link->RawData; - 00131 48 8b 85 e0 03 + 00148 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00138 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0013c 48 89 85 88 00 + 0014f 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00153 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 143 : ULONG Count = FourByte; - 00143 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00146 89 85 a4 00 00 + 0015a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0015d 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPre: ; 144 : while (Count) - 0014c 83 bd a4 00 00 + 00163 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00153 0f 84 d8 00 00 + 0016a 0f 84 d8 00 00 00 je $LN3@JitEmitPre ; 145 : { ; 146 : //Account for remaining MOVs ; 147 : INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH)); - 00159 8b 85 a4 00 00 + 00170 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0015f ff c8 dec eax - 00161 6b c0 0a imul eax, eax, 10 - 00164 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 00168 03 c1 add eax, ecx - 0016a 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 0016e 03 c1 add eax, ecx - 00170 89 85 c4 00 00 + 00176 ff c8 dec eax + 00178 6b c0 0a imul eax, eax, 10 + 0017b 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 + 0017f 03 c1 add eax, ecx + 00181 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 + 00185 03 c1 add eax, ecx + 00187 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 148 : //Account for already MOVd instructions ; 149 : RipDelta += ((FourByte - Count) * 4); - 00176 8b 85 a4 00 00 + 0018d 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0017c 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0017f 2b c8 sub ecx, eax - 00181 8b c1 mov eax, ecx - 00183 8b 8d c4 00 00 + 00193 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00196 2b c8 sub ecx, eax + 00198 8b c1 mov eax, ecx + 0019a 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 00189 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 0018c 89 85 c4 00 00 + 001a0 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001a3 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 150 : RipDelta += Delta; - 00192 8b 85 e8 03 00 + 001a9 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 00198 8b 8d c4 00 00 + 001af 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 0019e 03 c8 add ecx, eax - 001a0 8b c1 mov eax, ecx - 001a2 89 85 c4 00 00 + 001b5 03 c8 add ecx, eax + 001b7 8b c1 mov eax, ecx + 001b9 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 151 : //Add the actual instruction ; 152 : if (!JitEmitRipRelativeMovD(Block, RipDelta, DataOffset)) - 001a8 4c 8b 85 88 00 + 001bf 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 001af 8b 95 c4 00 00 + 001c6 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$1[rbp] - 001b5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001b9 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 001be 85 c0 test eax, eax - 001c0 75 4a jne SHORT $LN4@JitEmitPre + 001cc 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001d0 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD + 001d5 85 c0 test eax, eax + 001d7 75 4a jne SHORT $LN4@JitEmitPre ; 153 : { ; 154 : NcDeleteBlock(Block); - 001c2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001c6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001d9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001dd e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 155 : delete Block; - 001cb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 001cf 48 89 85 48 03 + 001e2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 001e6 48 89 85 48 03 00 00 mov QWORD PTR $T8[rbp], rax - 001d6 48 83 bd 48 03 + 001ed 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 001de 74 1a je SHORT $LN15@JitEmitPre - 001e0 ba 01 00 00 00 mov edx, 1 - 001e5 48 8b 8d 48 03 + 001f5 74 1a je SHORT $LN15@JitEmitPre + 001f7 ba 01 00 00 00 mov edx, 1 + 001fc 48 8b 8d 48 03 00 00 mov rcx, QWORD PTR $T8[rbp] - 001ec e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 001f1 48 89 85 b8 03 + 00203 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00208 48 89 85 b8 03 00 00 mov QWORD PTR tv153[rbp], rax - 001f8 eb 0b jmp SHORT $LN16@JitEmitPre + 0020f eb 0b jmp SHORT $LN16@JitEmitPre $LN15@JitEmitPre: - 001fa 48 c7 85 b8 03 + 00211 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPre: ; 156 : return NULL; - 00205 33 c0 xor eax, eax - 00207 e9 f3 01 00 00 jmp $LN1@JitEmitPre + 0021c 33 c0 xor eax, eax + 0021e e9 f3 01 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 157 : } ; 158 : DataOffset += 4; - 0020c 48 8b 85 88 00 + 00223 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 00213 48 83 c0 04 add rax, 4 - 00217 48 89 85 88 00 + 0022a 48 83 c0 04 add rax, 4 + 0022e 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 159 : --Count; - 0021e 8b 85 a4 00 00 + 00235 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00224 ff c8 dec eax - 00226 89 85 a4 00 00 + 0023b ff c8 dec eax + 0023d 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 160 : } - 0022c e9 1b ff ff ff jmp $LN2@JitEmitPre + 00243 e9 1b ff ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 161 : ; 162 : if (TwoByte) - 00231 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00235 0f 84 a8 00 00 + 00248 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0024c 0f 84 a8 00 00 00 je $LN5@JitEmitPre ; 163 : { ; 164 : INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH); - 0023b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 0023f 89 85 e4 00 00 + 00252 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 00256 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 165 : RipDelta += (FourByte * 4); - 00245 8b 85 e4 00 00 + 0025c 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 0024b 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0024e 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00251 89 85 e4 00 00 + 00262 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00265 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 00268 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 166 : RipDelta += Delta; - 00257 8b 85 e8 03 00 + 0026e 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 0025d 8b 8d e4 00 00 + 00274 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 00263 03 c8 add ecx, eax - 00265 8b c1 mov eax, ecx - 00267 89 85 e4 00 00 + 0027a 03 c8 add ecx, eax + 0027c 8b c1 mov eax, ecx + 0027e 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 167 : if (!JitEmitRipRelativeMovW(Block, RipDelta, DataOffset)) - 0026d 4c 8b 85 88 00 + 00284 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 00274 8b 95 e4 00 00 + 0028b 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$2[rbp] - 0027a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0027e e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 00283 85 c0 test eax, eax - 00285 75 4a jne SHORT $LN6@JitEmitPre + 00291 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00295 e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW + 0029a 85 c0 test eax, eax + 0029c 75 4a jne SHORT $LN6@JitEmitPre ; 168 : { ; 169 : NcDeleteBlock(Block); - 00287 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0028b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0029e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 170 : delete Block; - 00290 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00294 48 89 85 68 03 + 002a7 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002ab 48 89 85 68 03 00 00 mov QWORD PTR $T9[rbp], rax - 0029b 48 83 bd 68 03 + 002b2 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 002a3 74 1a je SHORT $LN17@JitEmitPre - 002a5 ba 01 00 00 00 mov edx, 1 - 002aa 48 8b 8d 68 03 + 002ba 74 1a je SHORT $LN17@JitEmitPre + 002bc ba 01 00 00 00 mov edx, 1 + 002c1 48 8b 8d 68 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 002b1 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 002b6 48 89 85 b8 03 + 002c8 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 002cd 48 89 85 b8 03 00 00 mov QWORD PTR tv171[rbp], rax - 002bd eb 0b jmp SHORT $LN18@JitEmitPre + 002d4 eb 0b jmp SHORT $LN18@JitEmitPre $LN17@JitEmitPre: - 002bf 48 c7 85 b8 03 + 002d6 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv171[rbp], 0 $LN18@JitEmitPre: ; 171 : return NULL; - 002ca 33 c0 xor eax, eax - 002cc e9 2e 01 00 00 jmp $LN1@JitEmitPre + 002e1 33 c0 xor eax, eax + 002e3 e9 2e 01 00 00 jmp $LN1@JitEmitPre $LN6@JitEmitPre: ; 172 : } ; 173 : DataOffset += 2; - 002d1 48 8b 85 88 00 + 002e8 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 002d8 48 83 c0 02 add rax, 2 - 002dc 48 89 85 88 00 + 002ef 48 83 c0 02 add rax, 2 + 002f3 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax $LN5@JitEmitPre: @@ -4558,80 +4673,80 @@ $LN5@JitEmitPre: ; 175 : ; 176 : if (OneByte) - 002e3 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 002e7 0f 84 99 00 00 + 002fa 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 002fe 0f 84 99 00 00 00 je $LN7@JitEmitPre ; 177 : { ; 178 : INT32 RipDelta = 0; - 002ed c7 85 04 01 00 + 00304 c7 85 04 01 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 179 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 002f7 8b 85 04 01 00 + 0030e 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 002fd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00300 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00303 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00306 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00309 89 85 04 01 00 + 00314 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00317 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 0031a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0031d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] + 00320 89 85 04 01 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 180 : RipDelta += Delta; - 0030f 8b 85 e8 03 00 + 00326 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 00315 8b 8d 04 01 00 + 0032c 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 0031b 03 c8 add ecx, eax - 0031d 8b c1 mov eax, ecx - 0031f 89 85 04 01 00 + 00332 03 c8 add ecx, eax + 00334 8b c1 mov eax, ecx + 00336 89 85 04 01 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 181 : if (!JitEmitRipRelativeMovB(Block, RipDelta, DataOffset)) - 00325 4c 8b 85 88 00 + 0033c 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 0032c 8b 95 04 01 00 + 00343 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$3[rbp] - 00332 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00336 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 0033b 85 c0 test eax, eax - 0033d 75 47 jne SHORT $LN7@JitEmitPre + 00349 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0034d e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB + 00352 85 c0 test eax, eax + 00354 75 47 jne SHORT $LN7@JitEmitPre ; 182 : { ; 183 : NcDeleteBlock(Block); - 0033f 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00343 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00356 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0035a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 184 : delete Block; - 00348 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0034c 48 89 85 88 03 + 0035f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00363 48 89 85 88 03 00 00 mov QWORD PTR $T10[rbp], rax - 00353 48 83 bd 88 03 + 0036a 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0035b 74 1a je SHORT $LN19@JitEmitPre - 0035d ba 01 00 00 00 mov edx, 1 - 00362 48 8b 8d 88 03 + 00372 74 1a je SHORT $LN19@JitEmitPre + 00374 ba 01 00 00 00 mov edx, 1 + 00379 48 8b 8d 88 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00369 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0036e 48 89 85 b8 03 + 00380 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00385 48 89 85 b8 03 00 00 mov QWORD PTR tv189[rbp], rax - 00375 eb 0b jmp SHORT $LN20@JitEmitPre + 0038c eb 0b jmp SHORT $LN20@JitEmitPre $LN19@JitEmitPre: - 00377 48 c7 85 b8 03 + 0038e 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv189[rbp], 0 $LN20@JitEmitPre: ; 185 : return NULL; - 00382 33 c0 xor eax, eax - 00384 eb 79 jmp SHORT $LN1@JitEmitPre + 00399 33 c0 xor eax, eax + 0039b eb 79 jmp SHORT $LN1@JitEmitPre $LN7@JitEmitPre: ; 186 : } @@ -4639,51 +4754,51 @@ $LN7@JitEmitPre: ; 188 : ; 189 : PNATIVE_CODE_LINK StartLink = Block->Start; - 00386 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0038a 48 8b 00 mov rax, QWORD PTR [rax] - 0038d 48 89 85 28 01 + 0039d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003a1 48 8b 00 mov rax, QWORD PTR [rax] + 003a4 48 89 85 28 01 00 00 mov QWORD PTR StartLink$[rbp], rax ; 190 : Block->Start = Block->Start->Next; - 00394 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00398 48 8b 00 mov rax, QWORD PTR [rax] - 0039b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0039f 48 8b 00 mov rax, QWORD PTR [rax] - 003a2 48 89 01 mov QWORD PTR [rcx], rax + 003ab 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003af 48 8b 00 mov rax, QWORD PTR [rax] + 003b2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003b6 48 8b 00 mov rax, QWORD PTR [rax] + 003b9 48 89 01 mov QWORD PTR [rcx], rax ; 191 : if (Block->Start) - 003a5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003a9 48 83 38 00 cmp QWORD PTR [rax], 0 - 003ad 74 0f je SHORT $LN9@JitEmitPre + 003bc 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003c0 48 83 38 00 cmp QWORD PTR [rax], 0 + 003c4 74 0f je SHORT $LN9@JitEmitPre ; 192 : Block->Start->Prev = NULL; - 003af 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003b3 48 8b 00 mov rax, QWORD PTR [rax] - 003b6 48 c7 40 08 00 + 003c6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003ca 48 8b 00 mov rax, QWORD PTR [rax] + 003cd 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 $LN9@JitEmitPre: ; 193 : delete StartLink; - 003be 48 8b 85 28 01 + 003d5 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 003c5 48 89 85 a8 03 + 003dc 48 89 85 a8 03 00 00 mov QWORD PTR $T11[rbp], rax - 003cc 48 83 bd a8 03 + 003e3 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 003d4 74 1a je SHORT $LN21@JitEmitPre - 003d6 ba 01 00 00 00 mov edx, 1 - 003db 48 8b 8d a8 03 + 003eb 74 1a je SHORT $LN21@JitEmitPre + 003ed ba 01 00 00 00 mov edx, 1 + 003f2 48 8b 8d a8 03 00 00 mov rcx, QWORD PTR $T11[rbp] - 003e2 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 003e7 48 89 85 b8 03 + 003f9 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 003fe 48 89 85 b8 03 00 00 mov QWORD PTR tv202[rbp], rax - 003ee eb 0b jmp SHORT $LN22@JitEmitPre + 00405 eb 0b jmp SHORT $LN22@JitEmitPre $LN21@JitEmitPre: - 003f0 48 c7 85 b8 03 + 00407 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv202[rbp], 0 $LN22@JitEmitPre: @@ -4691,16 +4806,16 @@ $LN22@JitEmitPre: ; 194 : ; 195 : return Block; - 003fb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00412 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 196 : } - 003ff 48 8d a5 c8 03 + 00416 48 8d a5 c8 03 00 00 lea rsp, QWORD PTR [rbp+968] - 00406 5f pop rdi - 00407 5d pop rbp - 00408 c3 ret 0 + 0041d 5f pop rdi + 0041e 5d pop rbp + 0041f c3 ret 0 ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPreRipMov _TEXT ENDS ; COMDAT text$x @@ -4783,7 +4898,7 @@ Delta$ = 1000 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T7[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -4875,7 +4990,7 @@ Delta$ = 1000 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T7[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -4886,7 +5001,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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 @@ -4903,22 +5018,28 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 130 : ; 131 : } - 00024 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForAnd _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 @@ -4935,22 +5056,28 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 125 : ; 126 : } - 00024 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForOr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT FourByte$ = 4 @@ -4971,157 +5098,163 @@ $LN7: 0000c 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 100 : ULONG FourByte = Link->RawDataSize / 4; - 00024 33 d2 xor edx, edx - 00026 48 8b 85 60 01 + 0003b 33 d2 xor edx, edx + 0003d 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0002d 8b 40 28 mov eax, DWORD PTR [rax+40] - 00030 b9 04 00 00 00 mov ecx, 4 - 00035 f7 f1 div ecx - 00037 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 00044 8b 40 28 mov eax, DWORD PTR [rax+40] + 00047 b9 04 00 00 00 mov ecx, 4 + 0004c f7 f1 div ecx + 0004e 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 101 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 0003a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0003d c1 e0 02 shl eax, 2 - 00040 48 8b 8d 60 01 + 00051 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00054 c1 e0 02 shl eax, 2 + 00057 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00047 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0004a 2b c8 sub ecx, eax - 0004c 8b c1 mov eax, ecx - 0004e 33 d2 xor edx, edx - 00050 b9 02 00 00 00 mov ecx, 2 - 00055 f7 f1 div ecx - 00057 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 0005e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00061 2b c8 sub ecx, eax + 00063 8b c1 mov eax, ecx + 00065 33 d2 xor edx, edx + 00067 b9 02 00 00 00 mov ecx, 2 + 0006c f7 f1 div ecx + 0006e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax ; 102 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 0005a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005d c1 e0 02 shl eax, 2 - 00060 48 8b 8d 60 01 + 00071 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00074 c1 e0 02 shl eax, 2 + 00077 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00067 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0006a 2b c8 sub ecx, eax - 0006c 8b c1 mov eax, ecx - 0006e 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00071 d1 e1 shl ecx, 1 - 00073 2b c1 sub eax, ecx - 00075 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 0007e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00081 2b c8 sub ecx, eax + 00083 8b c1 mov eax, ecx + 00085 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00088 d1 e1 shl ecx, 1 + 0008a 2b c1 sub eax, ecx + 0008c 89 45 44 mov DWORD PTR OneByte$[rbp], eax ; 103 : ; 104 : PUCHAR Buffer = Link->RawData; - 00078 48 8b 85 60 01 + 0008f 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0007f 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00083 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 00096 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0009a 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax $LN2@JitMutateI: ; 105 : while (FourByte) - 00087 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 - 0008b 74 3a je SHORT $LN3@JitMutateI + 0009e 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 + 000a2 74 3a je SHORT $LN3@JitMutateI ; 106 : { ; 107 : *(PULONG)Buffer ^= JitData->Data[2 - FourByte]; - 0008d b8 02 00 00 00 mov eax, 2 - 00092 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] - 00095 8b c0 mov eax, eax - 00097 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 0009b 48 8b 95 68 01 + 000a4 b8 02 00 00 00 mov eax, 2 + 000a9 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] + 000ac 8b c0 mov eax, eax + 000ae 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000b2 48 8b 95 68 01 00 00 mov rdx, QWORD PTR JitData$[rbp] - 000a2 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] - 000a5 8b 09 mov ecx, DWORD PTR [rcx] - 000a7 33 c8 xor ecx, eax - 000a9 8b c1 mov eax, ecx - 000ab 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000af 89 01 mov DWORD PTR [rcx], eax + 000b9 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] + 000bc 8b 09 mov ecx, DWORD PTR [rcx] + 000be 33 c8 xor ecx, eax + 000c0 8b c1 mov eax, ecx + 000c2 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000c6 89 01 mov DWORD PTR [rcx], eax ; 108 : Buffer += 4; - 000b1 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 000b5 48 83 c0 04 add rax, 4 - 000b9 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 000c8 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] + 000cc 48 83 c0 04 add rax, 4 + 000d0 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax ; 109 : FourByte--; - 000bd 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 000c0 ff c8 dec eax - 000c2 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 000d4 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 000d7 ff c8 dec eax + 000d9 89 45 04 mov DWORD PTR FourByte$[rbp], eax ; 110 : } - 000c5 eb c0 jmp SHORT $LN2@JitMutateI + 000dc eb c0 jmp SHORT $LN2@JitMutateI $LN3@JitMutateI: ; 111 : ; 112 : if (TwoByte) - 000c7 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 000cb 74 32 je SHORT $LN4@JitMutateI + 000de 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 000e2 74 32 je SHORT $LN4@JitMutateI ; 113 : { ; 114 : *(PUSHORT)Buffer ^= (USHORT)JitData->Data[3]; - 000cd b8 04 00 00 00 mov eax, 4 - 000d2 48 6b c0 03 imul rax, rax, 3 - 000d6 48 8b 8d 68 01 + 000e4 b8 04 00 00 00 mov eax, 4 + 000e9 48 6b c0 03 imul rax, rax, 3 + 000ed 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR JitData$[rbp] - 000dd 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 000e1 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000e5 0f b7 09 movzx ecx, WORD PTR [rcx] - 000e8 33 c8 xor ecx, eax - 000ea 8b c1 mov eax, ecx - 000ec 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000f0 66 89 01 mov WORD PTR [rcx], ax + 000f4 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] + 000f8 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000fc 0f b7 09 movzx ecx, WORD PTR [rcx] + 000ff 33 c8 xor ecx, eax + 00101 8b c1 mov eax, ecx + 00103 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 00107 66 89 01 mov WORD PTR [rcx], ax ; 115 : Buffer += 2; - 000f3 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 000f7 48 83 c0 02 add rax, 2 - 000fb 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 0010a 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] + 0010e 48 83 c0 02 add rax, 2 + 00112 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax $LN4@JitMutateI: ; 116 : } ; 117 : ; 118 : if (OneByte) - 000ff 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00103 74 25 je SHORT $LN5@JitMutateI + 00116 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0011a 74 25 je SHORT $LN5@JitMutateI ; 119 : *(PUCHAR)Buffer ^= (UCHAR)JitData->Data[3]; - 00105 b8 04 00 00 00 mov eax, 4 - 0010a 48 6b c0 03 imul rax, rax, 3 - 0010e 48 8b 8d 68 01 + 0011c b8 04 00 00 00 mov eax, 4 + 00121 48 6b c0 03 imul rax, rax, 3 + 00125 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00115 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00119 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 0011d 0f b6 09 movzx ecx, BYTE PTR [rcx] - 00120 33 c8 xor ecx, eax - 00122 8b c1 mov eax, ecx - 00124 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 00128 88 01 mov BYTE PTR [rcx], al + 0012c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 00130 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 00134 0f b6 09 movzx ecx, BYTE PTR [rcx] + 00137 33 c8 xor ecx, eax + 00139 8b c1 mov eax, ecx + 0013b 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 0013f 88 01 mov BYTE PTR [rcx], al $LN5@JitMutateI: ; 120 : ; 121 : } - 0012a 48 8d a5 48 01 + 00141 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 00131 5f pop rdi - 00132 5d pop rbp - 00133 c3 ret 0 + 00148 5f pop rdi + 00149 5d pop rbp + 0014a c3 ret 0 ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForXor _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Ledger$ = 4 @@ -5142,176 +5275,176 @@ $LN9: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 a8 + 00013 48 8b fc mov rdi, rsp + 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 58 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 70 : XED_FLAG_SET Ledger; ; 71 : Ledger.s.zf = TRUE; - 00049 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0004c 83 c8 40 or eax, 64 ; 00000040H - 0004f 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00047 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0004a 83 c8 40 or eax, 64 ; 00000040H + 0004d 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 72 : Ledger.s.sf = TRUE; - 00052 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00055 0f ba e8 07 bts eax, 7 - 00059 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00050 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00053 0f ba e8 07 bts eax, 7 + 00057 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 73 : Ledger.s.pf = TRUE; - 0005c 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0005f 83 c8 04 or eax, 4 - 00062 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 0005a 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0005d 83 c8 04 or eax, 4 + 00060 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 74 : Ledger.s.of = TRUE; - 00065 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00068 0f ba e8 0b bts eax, 11 - 0006c 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00063 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00066 0f ba e8 0b bts eax, 11 + 0006a 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 75 : Ledger.s.cf = TRUE; - 0006f 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00072 83 c8 01 or eax, 1 - 00075 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 0006d 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00070 83 c8 01 or eax, 1 + 00073 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 76 : Ledger.s.af = TRUE; - 00078 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0007b 83 c8 10 or eax, 16 - 0007e 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 00076 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00079 83 c8 10 or eax, 16 + 0007c 89 45 04 mov DWORD PTR Ledger$[rbp], eax ; 77 : ; 78 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - 00081 48 8b 85 80 01 + 0007f 48 8b 85 80 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00088 48 8b 00 mov rax, QWORD PTR [rax] - 0008b 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0008f eb 0b jmp SHORT $LN4@JitAreFlag + 00086 48 8b 00 mov rax, QWORD PTR [rax] + 00089 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0008d eb 0b jmp SHORT $LN4@JitAreFlag $LN2@JitAreFlag: - 00091 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00095 48 8b 00 mov rax, QWORD PTR [rax] - 00098 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0008f 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00093 48 8b 00 mov rax, QWORD PTR [rax] + 00096 48 89 45 28 mov QWORD PTR T$4[rbp], rax $LN4@JitAreFlag: - 0009c 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 000a1 74 77 je SHORT $LN3@JitAreFlag + 0009a 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 0009f 74 77 je SHORT $LN3@JitAreFlag ; 79 : { ; 80 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000a3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000a7 8b 40 18 mov eax, DWORD PTR [rax+24] - 000aa 83 e0 01 and eax, 1 - 000ad 85 c0 test eax, eax - 000af 74 02 je SHORT $LN5@JitAreFlag + 000a1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000a5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000a8 83 e0 01 and eax, 1 + 000ab 85 c0 test eax, eax + 000ad 74 02 je SHORT $LN5@JitAreFlag ; 81 : continue; - 000b1 eb de jmp SHORT $LN2@JitAreFlag + 000af eb de jmp SHORT $LN2@JitAreFlag $LN5@JitAreFlag: ; 82 : ; 83 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); - 000b3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000b7 48 83 c0 30 add rax, 48 ; 00000030H - 000bb 48 8b c8 mov rcx, rax - 000be e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 000c3 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax + 000b1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000b5 48 83 c0 30 add rax, 48 ; 00000030H + 000b9 48 8b c8 mov rcx, rax + 000bc e8 00 00 00 00 call xed_decoded_inst_get_rflags_info + 000c1 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax ; 84 : CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags); - 000c7 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000cb e8 00 00 00 00 call xed_simple_flag_get_read_flag_set - 000d0 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax + 000c5 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] + 000c9 e8 00 00 00 00 call xed_simple_flag_get_read_flag_set + 000ce 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax ; 85 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - 000d4 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000d8 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 000dd 48 89 85 88 00 + 000d2 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] + 000d6 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set + 000db 48 89 85 88 00 00 00 mov QWORD PTR FlagsWritten$7[rbp], rax ; 86 : ; 87 : if (JitCheckFlagCollisions(FlagsRead, Ledger)) - 000e4 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] - 000e7 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] - 000eb e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions - 000f0 85 c0 test eax, eax - 000f2 74 04 je SHORT $LN6@JitAreFlag + 000e2 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] + 000e5 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] + 000e9 e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions + 000ee 85 c0 test eax, eax + 000f0 74 04 je SHORT $LN6@JitAreFlag ; 88 : return FALSE; - 000f4 33 c0 xor eax, eax - 000f6 eb 24 jmp SHORT $LN1@JitAreFlag + 000f2 33 c0 xor eax, eax + 000f4 eb 24 jmp SHORT $LN1@JitAreFlag $LN6@JitAreFlag: ; 89 : ; 90 : JitUpdateConFlagsLedger(FlagsWritten, &Ledger); - 000f8 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] - 000fc 48 8b 8d 88 00 + 000f6 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] + 000fa 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR FlagsWritten$7[rbp] - 00103 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger + 00101 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger ; 91 : ; 92 : if (Ledger.flat == 0) - 00108 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 - 0010c 75 07 jne SHORT $LN7@JitAreFlag + 00106 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 + 0010a 75 07 jne SHORT $LN7@JitAreFlag ; 93 : return TRUE; - 0010e b8 01 00 00 00 mov eax, 1 - 00113 eb 07 jmp SHORT $LN1@JitAreFlag + 0010c b8 01 00 00 00 mov eax, 1 + 00111 eb 07 jmp SHORT $LN1@JitAreFlag $LN7@JitAreFlag: ; 94 : } - 00115 e9 77 ff ff ff jmp $LN2@JitAreFlag + 00113 e9 77 ff ff ff jmp $LN2@JitAreFlag $LN3@JitAreFlag: ; 95 : return FALSE; - 0011a 33 c0 xor eax, eax + 00118 33 c0 xor eax, eax $LN1@JitAreFlag: ; 96 : } - 0011c 48 8b f8 mov rdi, rax - 0011f 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00123 48 8d 15 00 00 + 0011a 48 8b f8 mov rdi, rax + 0011d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00121 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcFrameData - 0012a e8 00 00 00 00 call _RTC_CheckStackVars - 0012f 48 8b c7 mov rax, rdi - 00132 48 8b 8d 58 01 + 00128 e8 00 00 00 00 call _RTC_CheckStackVars + 0012d 48 8b c7 mov rax, rdi + 00130 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00139 48 33 cd xor rcx, rbp - 0013c e8 00 00 00 00 call __security_check_cookie - 00141 48 8d a5 68 01 + 00137 48 33 cd xor rcx, rbp + 0013a e8 00 00 00 00 call __security_check_cookie + 0013f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00148 5f pop rdi - 00149 5d pop rbp - 0014a c3 ret 0 + 00146 5f pop rdi + 00147 5d pop rbp + 00148 c3 ret 0 ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitAreFlagsClobberedBeforeUse _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT SimpleFlags$ = 8 @@ -5330,77 +5463,83 @@ $LN5: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 55 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction); - 0001f 48 8b 85 40 01 + 00036 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00026 48 83 c0 30 add rax, 48 ; 00000030H - 0002a 48 8b c8 mov rcx, rax - 0002d e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 00032 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax + 0003d 48 83 c0 30 add rax, 48 ; 00000030H + 00041 48 8b c8 mov rcx, rax + 00044 e8 00 00 00 00 call xed_decoded_inst_get_rflags_info + 00049 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax ; 56 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - 00036 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 0003a e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 0003f 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax + 0004d 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] + 00051 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set + 00056 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax ; 57 : CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); - 00043 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 00047 e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set - 0004c 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax + 0005a 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] + 0005e e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set + 00063 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax ; 58 : ; 59 : return (FlagsWritten->s.zf && - 00050 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00054 8b 00 mov eax, DWORD PTR [rax] - 00056 c1 e8 06 shr eax, 6 - 00059 83 e0 01 and eax, 1 - 0005c 85 c0 test eax, eax - 0005e 74 59 je SHORT $LN3@JitDoesIns - 00060 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00064 8b 00 mov eax, DWORD PTR [rax] - 00066 c1 e8 07 shr eax, 7 - 00069 83 e0 01 and eax, 1 - 0006c 85 c0 test eax, eax - 0006e 74 49 je SHORT $LN3@JitDoesIns - 00070 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00074 8b 00 mov eax, DWORD PTR [rax] - 00076 c1 e8 02 shr eax, 2 - 00079 83 e0 01 and eax, 1 - 0007c 85 c0 test eax, eax - 0007e 74 39 je SHORT $LN3@JitDoesIns - 00080 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00084 8b 00 mov eax, DWORD PTR [rax] - 00086 c1 e8 0b shr eax, 11 - 00089 83 e0 01 and eax, 1 - 0008c 85 c0 test eax, eax - 0008e 74 29 je SHORT $LN3@JitDoesIns - 00090 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00094 8b 00 mov eax, DWORD PTR [rax] - 00096 83 e0 01 and eax, 1 - 00099 85 c0 test eax, eax - 0009b 74 1c je SHORT $LN3@JitDoesIns - 0009d 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] - 000a1 8b 00 mov eax, DWORD PTR [rax] - 000a3 c1 e8 04 shr eax, 4 - 000a6 83 e0 01 and eax, 1 - 000a9 85 c0 test eax, eax - 000ab 74 0c je SHORT $LN3@JitDoesIns - 000ad c7 85 14 01 00 + 00067 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0006b 8b 00 mov eax, DWORD PTR [rax] + 0006d c1 e8 06 shr eax, 6 + 00070 83 e0 01 and eax, 1 + 00073 85 c0 test eax, eax + 00075 74 59 je SHORT $LN3@JitDoesIns + 00077 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0007b 8b 00 mov eax, DWORD PTR [rax] + 0007d c1 e8 07 shr eax, 7 + 00080 83 e0 01 and eax, 1 + 00083 85 c0 test eax, eax + 00085 74 49 je SHORT $LN3@JitDoesIns + 00087 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0008b 8b 00 mov eax, DWORD PTR [rax] + 0008d c1 e8 02 shr eax, 2 + 00090 83 e0 01 and eax, 1 + 00093 85 c0 test eax, eax + 00095 74 39 je SHORT $LN3@JitDoesIns + 00097 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0009b 8b 00 mov eax, DWORD PTR [rax] + 0009d c1 e8 0b shr eax, 11 + 000a0 83 e0 01 and eax, 1 + 000a3 85 c0 test eax, eax + 000a5 74 29 je SHORT $LN3@JitDoesIns + 000a7 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 000ab 8b 00 mov eax, DWORD PTR [rax] + 000ad 83 e0 01 and eax, 1 + 000b0 85 c0 test eax, eax + 000b2 74 1c je SHORT $LN3@JitDoesIns + 000b4 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] + 000b8 8b 00 mov eax, DWORD PTR [rax] + 000ba c1 e8 04 shr eax, 4 + 000bd 83 e0 01 and eax, 1 + 000c0 85 c0 test eax, eax + 000c2 74 0c je SHORT $LN3@JitDoesIns + 000c4 c7 85 14 01 00 00 01 00 00 00 mov DWORD PTR tv132[rbp], 1 - 000b7 eb 0a jmp SHORT $LN4@JitDoesIns + 000ce eb 0a jmp SHORT $LN4@JitDoesIns $LN3@JitDoesIns: - 000b9 c7 85 14 01 00 + 000d0 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv132[rbp], 0 $LN4@JitDoesIns: - 000c3 8b 85 14 01 00 + 000da 8b 85 14 01 00 00 mov eax, DWORD PTR tv132[rbp] ; 60 : FlagsWritten->s.sf && @@ -5411,15 +5550,15 @@ $LN4@JitDoesIns: ; 65 : ); ; 66 : } - 000c9 48 8d a5 28 01 + 000e0 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000d0 5f pop rdi - 000d1 5d pop rbp - 000d2 c3 ret 0 + 000e7 5f pop rdi + 000e8 5d pop rbp + 000e9 c3 ret 0 ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitDoesInstOverriteConditionFlags _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z _TEXT SEGMENT FlagsWritten$ = 224 @@ -5436,146 +5575,152 @@ $LN9: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 39 : if (FlagsWritten->s.zf) - 00024 48 8b 85 e0 00 + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 0002b 8b 00 mov eax, DWORD PTR [rax] - 0002d c1 e8 06 shr eax, 6 - 00030 83 e0 01 and eax, 1 - 00033 85 c0 test eax, eax - 00035 74 15 je SHORT $LN2@JitUpdateC + 00042 8b 00 mov eax, DWORD PTR [rax] + 00044 c1 e8 06 shr eax, 6 + 00047 83 e0 01 and eax, 1 + 0004a 85 c0 test eax, eax + 0004c 74 15 je SHORT $LN2@JitUpdateC ; 40 : Ledger->s.zf = FALSE; - 00037 48 8b 85 e8 00 + 0004e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0003e 8b 00 mov eax, DWORD PTR [rax] - 00040 83 e0 bf and eax, -65 ; ffffffbfH - 00043 48 8b 8d e8 00 + 00055 8b 00 mov eax, DWORD PTR [rax] + 00057 83 e0 bf and eax, -65 ; ffffffbfH + 0005a 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 0004a 89 01 mov DWORD PTR [rcx], eax + 00061 89 01 mov DWORD PTR [rcx], eax $LN2@JitUpdateC: ; 41 : if (FlagsWritten->s.sf) - 0004c 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00053 8b 00 mov eax, DWORD PTR [rax] - 00055 c1 e8 07 shr eax, 7 - 00058 83 e0 01 and eax, 1 - 0005b 85 c0 test eax, eax - 0005d 74 16 je SHORT $LN3@JitUpdateC + 0006a 8b 00 mov eax, DWORD PTR [rax] + 0006c c1 e8 07 shr eax, 7 + 0006f 83 e0 01 and eax, 1 + 00072 85 c0 test eax, eax + 00074 74 16 je SHORT $LN3@JitUpdateC ; 42 : Ledger->s.sf = FALSE; - 0005f 48 8b 85 e8 00 + 00076 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 00066 8b 00 mov eax, DWORD PTR [rax] - 00068 0f ba f0 07 btr eax, 7 - 0006c 48 8b 8d e8 00 + 0007d 8b 00 mov eax, DWORD PTR [rax] + 0007f 0f ba f0 07 btr eax, 7 + 00083 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00073 89 01 mov DWORD PTR [rcx], eax + 0008a 89 01 mov DWORD PTR [rcx], eax $LN3@JitUpdateC: ; 43 : if (FlagsWritten->s.pf) - 00075 48 8b 85 e0 00 + 0008c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 0007c 8b 00 mov eax, DWORD PTR [rax] - 0007e c1 e8 02 shr eax, 2 - 00081 83 e0 01 and eax, 1 - 00084 85 c0 test eax, eax - 00086 74 15 je SHORT $LN4@JitUpdateC + 00093 8b 00 mov eax, DWORD PTR [rax] + 00095 c1 e8 02 shr eax, 2 + 00098 83 e0 01 and eax, 1 + 0009b 85 c0 test eax, eax + 0009d 74 15 je SHORT $LN4@JitUpdateC ; 44 : Ledger->s.pf = FALSE; - 00088 48 8b 85 e8 00 + 0009f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0008f 8b 00 mov eax, DWORD PTR [rax] - 00091 83 e0 fb and eax, -5 ; fffffffbH - 00094 48 8b 8d e8 00 + 000a6 8b 00 mov eax, DWORD PTR [rax] + 000a8 83 e0 fb and eax, -5 ; fffffffbH + 000ab 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 0009b 89 01 mov DWORD PTR [rcx], eax + 000b2 89 01 mov DWORD PTR [rcx], eax $LN4@JitUpdateC: ; 45 : if (FlagsWritten->s.of) - 0009d 48 8b 85 e0 00 + 000b4 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000a4 8b 00 mov eax, DWORD PTR [rax] - 000a6 c1 e8 0b shr eax, 11 - 000a9 83 e0 01 and eax, 1 - 000ac 85 c0 test eax, eax - 000ae 74 16 je SHORT $LN5@JitUpdateC + 000bb 8b 00 mov eax, DWORD PTR [rax] + 000bd c1 e8 0b shr eax, 11 + 000c0 83 e0 01 and eax, 1 + 000c3 85 c0 test eax, eax + 000c5 74 16 je SHORT $LN5@JitUpdateC ; 46 : Ledger->s.of = FALSE; - 000b0 48 8b 85 e8 00 + 000c7 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000b7 8b 00 mov eax, DWORD PTR [rax] - 000b9 0f ba f0 0b btr eax, 11 - 000bd 48 8b 8d e8 00 + 000ce 8b 00 mov eax, DWORD PTR [rax] + 000d0 0f ba f0 0b btr eax, 11 + 000d4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 000c4 89 01 mov DWORD PTR [rcx], eax + 000db 89 01 mov DWORD PTR [rcx], eax $LN5@JitUpdateC: ; 47 : if (FlagsWritten->s.cf) - 000c6 48 8b 85 e0 00 + 000dd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000cd 8b 00 mov eax, DWORD PTR [rax] - 000cf 83 e0 01 and eax, 1 - 000d2 85 c0 test eax, eax - 000d4 74 15 je SHORT $LN6@JitUpdateC + 000e4 8b 00 mov eax, DWORD PTR [rax] + 000e6 83 e0 01 and eax, 1 + 000e9 85 c0 test eax, eax + 000eb 74 15 je SHORT $LN6@JitUpdateC ; 48 : Ledger->s.cf = FALSE; - 000d6 48 8b 85 e8 00 + 000ed 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000dd 8b 00 mov eax, DWORD PTR [rax] - 000df 83 e0 fe and eax, -2 ; fffffffeH - 000e2 48 8b 8d e8 00 + 000f4 8b 00 mov eax, DWORD PTR [rax] + 000f6 83 e0 fe and eax, -2 ; fffffffeH + 000f9 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 000e9 89 01 mov DWORD PTR [rcx], eax + 00100 89 01 mov DWORD PTR [rcx], eax $LN6@JitUpdateC: ; 49 : if (FlagsWritten->s.af) - 000eb 48 8b 85 e0 00 + 00102 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000f2 8b 00 mov eax, DWORD PTR [rax] - 000f4 c1 e8 04 shr eax, 4 - 000f7 83 e0 01 and eax, 1 - 000fa 85 c0 test eax, eax - 000fc 74 15 je SHORT $LN7@JitUpdateC + 00109 8b 00 mov eax, DWORD PTR [rax] + 0010b c1 e8 04 shr eax, 4 + 0010e 83 e0 01 and eax, 1 + 00111 85 c0 test eax, eax + 00113 74 15 je SHORT $LN7@JitUpdateC ; 50 : Ledger->s.af = FALSE; - 000fe 48 8b 85 e8 00 + 00115 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 00105 8b 00 mov eax, DWORD PTR [rax] - 00107 83 e0 ef and eax, -17 ; ffffffefH - 0010a 48 8b 8d e8 00 + 0011c 8b 00 mov eax, DWORD PTR [rax] + 0011e 83 e0 ef and eax, -17 ; ffffffefH + 00121 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00111 89 01 mov DWORD PTR [rcx], eax + 00128 89 01 mov DWORD PTR [rcx], eax $LN7@JitUpdateC: ; 51 : } - 00113 48 8d a5 c8 00 + 0012a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0011a 5f pop rdi - 0011b 5d pop rbp - 0011c c3 ret 0 + 00131 5f pop rdi + 00132 5d pop rbp + 00133 c3 ret 0 ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ENDP ; JitUpdateConFlagsLedger _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z _TEXT SEGMENT tv165 = 192 @@ -5593,134 +5738,140 @@ $LN11: 0000b 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 28 : return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) || - 00023 48 8b 85 f0 00 + 0003a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0002a 8b 00 mov eax, DWORD PTR [rax] - 0002c c1 e8 06 shr eax, 6 - 0002f 83 e0 01 and eax, 1 - 00032 85 c0 test eax, eax - 00034 74 23 je SHORT $LN3@JitCheckFl - 00036 48 8b 85 f0 00 + 00041 8b 00 mov eax, DWORD PTR [rax] + 00043 c1 e8 06 shr eax, 6 + 00046 83 e0 01 and eax, 1 + 00049 85 c0 test eax, eax + 0004b 74 23 je SHORT $LN3@JitCheckFl + 0004d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0003d 8b 00 mov eax, DWORD PTR [rax] - 0003f c1 e8 06 shr eax, 6 - 00042 83 e0 01 and eax, 1 - 00045 8b 8d f8 00 00 + 00054 8b 00 mov eax, DWORD PTR [rax] + 00056 c1 e8 06 shr eax, 6 + 00059 83 e0 01 and eax, 1 + 0005c 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 0004b c1 e9 06 shr ecx, 6 - 0004e 83 e1 01 and ecx, 1 - 00051 3b c1 cmp eax, ecx - 00053 0f 84 05 01 00 + 00062 c1 e9 06 shr ecx, 6 + 00065 83 e1 01 and ecx, 1 + 00068 3b c1 cmp eax, ecx + 0006a 0f 84 05 01 00 00 je $LN5@JitCheckFl $LN3@JitCheckFl: - 00059 48 8b 85 f0 00 + 00070 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00060 8b 00 mov eax, DWORD PTR [rax] - 00062 c1 e8 07 shr eax, 7 - 00065 83 e0 01 and eax, 1 - 00068 85 c0 test eax, eax - 0006a 74 23 je SHORT $LN4@JitCheckFl - 0006c 48 8b 85 f0 00 + 00077 8b 00 mov eax, DWORD PTR [rax] + 00079 c1 e8 07 shr eax, 7 + 0007c 83 e0 01 and eax, 1 + 0007f 85 c0 test eax, eax + 00081 74 23 je SHORT $LN4@JitCheckFl + 00083 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00073 8b 00 mov eax, DWORD PTR [rax] - 00075 c1 e8 07 shr eax, 7 - 00078 83 e0 01 and eax, 1 - 0007b 8b 8d f8 00 00 + 0008a 8b 00 mov eax, DWORD PTR [rax] + 0008c c1 e8 07 shr eax, 7 + 0008f 83 e0 01 and eax, 1 + 00092 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00081 c1 e9 07 shr ecx, 7 - 00084 83 e1 01 and ecx, 1 - 00087 3b c1 cmp eax, ecx - 00089 0f 84 cf 00 00 + 00098 c1 e9 07 shr ecx, 7 + 0009b 83 e1 01 and ecx, 1 + 0009e 3b c1 cmp eax, ecx + 000a0 0f 84 cf 00 00 00 je $LN5@JitCheckFl $LN4@JitCheckFl: - 0008f 48 8b 85 f0 00 + 000a6 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00096 8b 00 mov eax, DWORD PTR [rax] - 00098 c1 e8 02 shr eax, 2 - 0009b 83 e0 01 and eax, 1 - 0009e 85 c0 test eax, eax - 000a0 74 23 je SHORT $LN6@JitCheckFl - 000a2 48 8b 85 f0 00 + 000ad 8b 00 mov eax, DWORD PTR [rax] + 000af c1 e8 02 shr eax, 2 + 000b2 83 e0 01 and eax, 1 + 000b5 85 c0 test eax, eax + 000b7 74 23 je SHORT $LN6@JitCheckFl + 000b9 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000a9 8b 00 mov eax, DWORD PTR [rax] - 000ab c1 e8 02 shr eax, 2 - 000ae 83 e0 01 and eax, 1 - 000b1 8b 8d f8 00 00 + 000c0 8b 00 mov eax, DWORD PTR [rax] + 000c2 c1 e8 02 shr eax, 2 + 000c5 83 e0 01 and eax, 1 + 000c8 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 000b7 c1 e9 02 shr ecx, 2 - 000ba 83 e1 01 and ecx, 1 - 000bd 3b c1 cmp eax, ecx - 000bf 0f 84 99 00 00 + 000ce c1 e9 02 shr ecx, 2 + 000d1 83 e1 01 and ecx, 1 + 000d4 3b c1 cmp eax, ecx + 000d6 0f 84 99 00 00 00 je $LN5@JitCheckFl $LN6@JitCheckFl: - 000c5 48 8b 85 f0 00 + 000dc 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000cc 8b 00 mov eax, DWORD PTR [rax] - 000ce c1 e8 0b shr eax, 11 - 000d1 83 e0 01 and eax, 1 - 000d4 85 c0 test eax, eax - 000d6 74 1f je SHORT $LN7@JitCheckFl - 000d8 48 8b 85 f0 00 + 000e3 8b 00 mov eax, DWORD PTR [rax] + 000e5 c1 e8 0b shr eax, 11 + 000e8 83 e0 01 and eax, 1 + 000eb 85 c0 test eax, eax + 000ed 74 1f je SHORT $LN7@JitCheckFl + 000ef 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000df 8b 00 mov eax, DWORD PTR [rax] - 000e1 c1 e8 0b shr eax, 11 - 000e4 83 e0 01 and eax, 1 - 000e7 8b 8d f8 00 00 + 000f6 8b 00 mov eax, DWORD PTR [rax] + 000f8 c1 e8 0b shr eax, 11 + 000fb 83 e0 01 and eax, 1 + 000fe 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 000ed c1 e9 0b shr ecx, 11 - 000f0 83 e1 01 and ecx, 1 - 000f3 3b c1 cmp eax, ecx - 000f5 74 67 je SHORT $LN5@JitCheckFl + 00104 c1 e9 0b shr ecx, 11 + 00107 83 e1 01 and ecx, 1 + 0010a 3b c1 cmp eax, ecx + 0010c 74 67 je SHORT $LN5@JitCheckFl $LN7@JitCheckFl: - 000f7 48 8b 85 f0 00 + 0010e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000fe 8b 00 mov eax, DWORD PTR [rax] - 00100 83 e0 01 and eax, 1 - 00103 85 c0 test eax, eax - 00105 74 19 je SHORT $LN8@JitCheckFl - 00107 48 8b 85 f0 00 + 00115 8b 00 mov eax, DWORD PTR [rax] + 00117 83 e0 01 and eax, 1 + 0011a 85 c0 test eax, eax + 0011c 74 19 je SHORT $LN8@JitCheckFl + 0011e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0010e 8b 00 mov eax, DWORD PTR [rax] - 00110 83 e0 01 and eax, 1 - 00113 8b 8d f8 00 00 + 00125 8b 00 mov eax, DWORD PTR [rax] + 00127 83 e0 01 and eax, 1 + 0012a 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00119 83 e1 01 and ecx, 1 - 0011c 3b c1 cmp eax, ecx - 0011e 74 3e je SHORT $LN5@JitCheckFl + 00130 83 e1 01 and ecx, 1 + 00133 3b c1 cmp eax, ecx + 00135 74 3e je SHORT $LN5@JitCheckFl $LN8@JitCheckFl: - 00120 48 8b 85 f0 00 + 00137 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00127 8b 00 mov eax, DWORD PTR [rax] - 00129 c1 e8 04 shr eax, 4 - 0012c 83 e0 01 and eax, 1 - 0012f 85 c0 test eax, eax - 00131 74 1f je SHORT $LN9@JitCheckFl - 00133 48 8b 85 f0 00 + 0013e 8b 00 mov eax, DWORD PTR [rax] + 00140 c1 e8 04 shr eax, 4 + 00143 83 e0 01 and eax, 1 + 00146 85 c0 test eax, eax + 00148 74 1f je SHORT $LN9@JitCheckFl + 0014a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0013a 8b 00 mov eax, DWORD PTR [rax] - 0013c c1 e8 04 shr eax, 4 - 0013f 83 e0 01 and eax, 1 - 00142 8b 8d f8 00 00 + 00151 8b 00 mov eax, DWORD PTR [rax] + 00153 c1 e8 04 shr eax, 4 + 00156 83 e0 01 and eax, 1 + 00159 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00148 c1 e9 04 shr ecx, 4 - 0014b 83 e1 01 and ecx, 1 - 0014e 3b c1 cmp eax, ecx - 00150 74 0c je SHORT $LN5@JitCheckFl + 0015f c1 e9 04 shr ecx, 4 + 00162 83 e1 01 and ecx, 1 + 00165 3b c1 cmp eax, ecx + 00167 74 0c je SHORT $LN5@JitCheckFl $LN9@JitCheckFl: - 00152 c7 85 c0 00 00 + 00169 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 - 0015c eb 0a jmp SHORT $LN10@JitCheckFl + 00173 eb 0a jmp SHORT $LN10@JitCheckFl $LN5@JitCheckFl: - 0015e c7 85 c0 00 00 + 00175 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 $LN10@JitCheckFl: - 00168 8b 85 c0 00 00 + 0017f 8b 85 c0 00 00 00 mov eax, DWORD PTR tv165[rbp] ; 29 : (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || @@ -5731,15 +5882,15 @@ $LN10@JitCheckFl: ; 34 : ); ; 35 : } - 0016e 48 8d a5 d8 00 + 00185 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00175 5f pop rdi - 00176 5d pop rbp - 00177 c3 ret 0 + 0018c 5f pop rdi + 0018d 5d pop rbp + 0018e c3 ret 0 ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ENDP ; JitCheckFlagCollisions _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -5760,98 +5911,98 @@ $LN6: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00018 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 a8 + 00013 48 8b fc mov rdi, rsp + 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 40 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 19 : UCHAR RawData[] = { 0x9D }; - 00049 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH + 00047 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH ; 20 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, 1); - 0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00057 48 89 85 28 01 + 0004b b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00055 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0005e 48 83 bd 28 01 + 0005c 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00066 74 2c je SHORT $LN3@JitEmitPop - 00068 c7 44 24 20 00 + 00064 74 2c je SHORT $LN3@JitEmitPop + 00066 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00070 41 b9 01 00 00 + 0006e 41 b9 01 00 00 00 mov r9d, 1 - 00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0007a ba 0c 00 00 00 mov edx, 12 - 0007f 48 8b 8d 28 01 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0008b 48 89 85 38 01 + 00084 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00089 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00092 eb 0b jmp SHORT $LN4@JitEmitPop + 00090 eb 0b jmp SHORT $LN4@JitEmitPop $LN3@JitEmitPop: - 00094 48 c7 85 38 01 + 00092 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPop: - 0009f 48 8b 85 38 01 + 0009d 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a6 48 89 85 08 01 + 000a4 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ad 48 8b 85 08 01 + 000ab 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 21 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000bc 48 83 c0 30 add rax, 48 ; 00000030H - 000c0 41 b8 01 00 00 + 000b6 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000ba 48 83 c0 30 add rax, 48 ; 00000030H + 000be 41 b8 01 00 00 00 mov r8d, 1 - 000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000ce 48 8b c8 mov rcx, rax - 000d1 e8 00 00 00 00 call xed_decode + 000c4 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000c8 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000cc 48 8b c8 mov rcx, rax + 000cf e8 00 00 00 00 call xed_decode ; 22 : NcAppendToBlock(Block, Link); - 000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000da 48 8b 8d 70 01 + 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000d8 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 23 : return TRUE; - 000e6 b8 01 00 00 00 mov eax, 1 + 000e4 b8 01 00 00 00 mov eax, 1 ; 24 : } - 000eb 8b f8 mov edi, eax - 000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000f1 48 8d 15 00 00 + 000e9 8b f8 mov edi, eax + 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000ef 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 000f8 e8 00 00 00 00 call _RTC_CheckStackVars - 000fd 8b c7 mov eax, edi - 000ff 48 8b 8d 40 01 + 000f6 e8 00 00 00 00 call _RTC_CheckStackVars + 000fb 8b c7 mov eax, edi + 000fd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00106 48 33 cd xor rcx, rbp - 00109 e8 00 00 00 00 call __security_check_cookie - 0010e 48 8d a5 58 01 + 00104 48 33 cd xor rcx, rbp + 00107 e8 00 00 00 00 call __security_check_cookie + 0010c 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 00113 5f pop rdi + 00114 5d pop rbp + 00115 c3 ret 0 ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPopfqInst _TEXT ENDS ; COMDAT text$x @@ -5870,7 +6021,7 @@ Block$ = 368 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -5897,7 +6048,7 @@ Block$ = 368 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -5908,7 +6059,7 @@ Block$ = 368 ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPopfqInst'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -5929,98 +6080,98 @@ $LN6: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00018 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 a8 + 00013 48 8b fc mov rdi, rsp + 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 40 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 10 : UCHAR RawData[] = { 0x9C }; - 00049 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH + 00047 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH ; 11 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, 1); - 0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00057 48 89 85 28 01 + 0004b b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00055 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0005e 48 83 bd 28 01 + 0005c 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00066 74 2c je SHORT $LN3@JitEmitPus - 00068 c7 44 24 20 00 + 00064 74 2c je SHORT $LN3@JitEmitPus + 00066 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00070 41 b9 01 00 00 + 0006e 41 b9 01 00 00 00 mov r9d, 1 - 00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0007a ba 0c 00 00 00 mov edx, 12 - 0007f 48 8b 8d 28 01 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0008b 48 89 85 38 01 + 00084 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00089 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00092 eb 0b jmp SHORT $LN4@JitEmitPus + 00090 eb 0b jmp SHORT $LN4@JitEmitPus $LN3@JitEmitPus: - 00094 48 c7 85 38 01 + 00092 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPus: - 0009f 48 8b 85 38 01 + 0009d 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a6 48 89 85 08 01 + 000a4 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ad 48 8b 85 08 01 + 000ab 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 12 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000bc 48 83 c0 30 add rax, 48 ; 00000030H - 000c0 41 b8 01 00 00 + 000b6 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000ba 48 83 c0 30 add rax, 48 ; 00000030H + 000be 41 b8 01 00 00 00 mov r8d, 1 - 000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000ce 48 8b c8 mov rcx, rax - 000d1 e8 00 00 00 00 call xed_decode + 000c4 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000c8 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000cc 48 8b c8 mov rcx, rax + 000cf e8 00 00 00 00 call xed_decode ; 13 : NcAppendToBlock(Block, Link); - 000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000da 48 8b 8d 70 01 + 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000d8 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 14 : return TRUE; - 000e6 b8 01 00 00 00 mov eax, 1 + 000e4 b8 01 00 00 00 mov eax, 1 ; 15 : } - 000eb 8b f8 mov edi, eax - 000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000f1 48 8d 15 00 00 + 000e9 8b f8 mov edi, eax + 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000ef 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 000f8 e8 00 00 00 00 call _RTC_CheckStackVars - 000fd 8b c7 mov eax, edi - 000ff 48 8b 8d 40 01 + 000f6 e8 00 00 00 00 call _RTC_CheckStackVars + 000fb 8b c7 mov eax, edi + 000fd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00106 48 33 cd xor rcx, rbp - 00109 e8 00 00 00 00 call __security_check_cookie - 0010e 48 8d a5 58 01 + 00104 48 33 cd xor rcx, rbp + 00107 e8 00 00 00 00 call __security_check_cookie + 0010c 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 00113 5f pop rdi + 00114 5d pop rbp + 00115 c3 ret 0 ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPushfqInst _TEXT ENDS ; COMDAT text$x @@ -6039,7 +6190,7 @@ Block$ = 368 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -6066,7 +6217,7 @@ Block$ = 368 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -6090,26 +6241,32 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 30 00 00 00 mov edx, 48 ; 00000030H - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 30 00 00 00 mov edx, 48 ; 00000030H + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6124,26 +6281,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0001a 48 83 c0 10 add rax, 16 - 0001e 48 8b c8 mov rcx, rax - 00021 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > - 00026 48 8d a5 c8 00 + 00031 48 83 c0 10 add rax, 16 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6152,32 +6315,38 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1378 : return *this; - - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1379 : } +; 1345 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { +; 1731 : _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6186,28 +6355,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1818 : return _Mypair._Get_first(); - - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 -; 1819 : } +; 1733 : } - 0002e 48 8d a5 c8 00 + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -6220,7 +6396,7 @@ tv86 = 328 this$ = 368 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage +; 1685 : void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6229,117 +6405,123 @@ $LN4: 00007 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1756 : auto& _My_data = _Mypair._Myval2; - - 0001f 48 8b 85 70 01 + 00013 48 8b fc mov rdi, rsp + 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1686 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1757 : pointer& _Myfirst = _My_data._Myfirst; +; 1687 : pointer& _Myfirst = _My_data._Myfirst; - 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0002e 48 83 c0 08 add rax, 8 - 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1758 : pointer& _Mylast = _My_data._Mylast; +; 1688 : pointer& _Mylast = _My_data._Mylast; - 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0003a 48 83 c0 10 add rax, 16 - 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00051 48 83 c0 10 add rax, 16 + 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1759 : pointer& _Myend = _My_data._Myend; +; 1689 : pointer& _Myend = _My_data._Myend; - 00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00046 48 83 c0 18 add rax, 24 - 0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005d 48 83 c0 18 add rax, 24 + 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1760 : -; 1761 : _My_data._Orphan_all(); +; 1690 : +; 1691 : _My_data._Orphan_all(); - 0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1762 : -; 1763 : if (_Myfirst) { // destroy and deallocate old array +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array - 00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0005b 48 83 38 00 cmp QWORD PTR [rax], 0 - 0005f 0f 84 92 00 00 + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 00 je $LN2@Tidy -; 1764 : _Destroy(_Myfirst, _Mylast); +; 1694 : _Destroy(_Myfirst, _Mylast); - 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00069 4c 8b 00 mov r8, QWORD PTR [rax] - 0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00070 48 8b 10 mov rdx, QWORD PTR [rax] - 00073 48 8b 8d 70 01 + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0007f 48 8b 8d 70 01 + 00096 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0008b 48 89 85 38 01 + 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000a2 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0009d 48 8b 00 mov rax, QWORD PTR [rax] - 000a0 48 2b c1 sub rax, rcx - 000a3 48 c1 f8 02 sar rax, 2 - 000a7 48 89 85 40 01 + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 02 sar rax, 2 + 000be 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000b2 48 8b 00 mov rax, QWORD PTR [rax] - 000b5 48 89 85 48 01 + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000bc 4c 8b 85 40 01 + 000d3 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000c3 48 8b 95 48 01 + 000da 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000ca 48 8b 8d 38 01 + 000e1 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1766 : -; 1767 : _Myfirst = nullptr; +; 1696 : +; 1697 : _Myfirst = pointer(); - 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000da 48 c7 00 00 00 + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1768 : _Mylast = nullptr; +; 1698 : _Mylast = pointer(); - 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000e5 48 c7 00 00 00 + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1769 : _Myend = nullptr; +; 1699 : _Myend = pointer(); - 000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000f0 48 c7 00 00 00 + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN2@Tidy: -; 1770 : } -; 1771 : } +; 1700 : } +; 1701 : } - 000f7 48 8d a5 58 01 + 0010e 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 000fe 5f pop rdi - 000ff 5d pop rbp - 00100 c3 ret 0 + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -6347,7 +6529,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6358,34 +6540,39 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1679 : // destroy [_First, _Last) using allocator -; 1680 : _Destroy_range(_First, _Last, _Getal()); - - 00029 48 8b 8d e0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00035 4c 8b c0 mov r8, rax - 00038 48 8b 95 f0 00 + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d e8 00 + 00056 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1681 : } +; 1613 : } - 0004b 48 8d a5 c8 00 + 00062 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -6395,7 +6582,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { +; 672 : ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6404,74 +6591,75 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 1a 00 00 00 mov ecx, 26 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 68 + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 18 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 712 : _Tidy(); +; 673 : _Tidy(); - 00049 48 8b 8d 40 01 + 00047 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00055 48 8b 8d 40 01 + 00053 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00061 48 8b d0 mov rdx, rax - 00064 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] - 00068 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] - 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00075 48 c7 85 04 01 + 00073 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 00080 48 8b 85 40 01 + 0007e 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00087 48 8d 95 04 01 + 00085 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008e 48 8b c8 mov rcx, rax - 00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00096 48 8b d0 mov rdx, rax - 00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 717 : } +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } - 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a6 48 8d 15 00 00 + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData - 000ad e8 00 00 00 00 call _RTC_CheckStackVars - 000b2 48 8b 8d 18 01 + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b9 48 33 cd xor rcx, rbp - 000bc e8 00 00 00 00 call __security_check_cookie - 000c1 48 8d a5 28 01 + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c8 5f pop rdi - 000c9 5d pop rbp - 000ca c3 ret 0 + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -6479,7 +6667,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6490,28 +6678,34 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 834 : // no overflow check on the following multiply; we assume _Allocate did that check -; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00029 48 8b 85 f0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Count$[rbp] - 00030 48 c1 e0 02 shl rax, 2 - 00034 48 8b d0 mov rdx, rax - 00037 48 8b 8d e8 00 + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 836 : } +; 804 : } - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6528,30 +6722,36 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 10 01 00 00 mov edx, 272 ; 00000110H + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -6562,7 +6762,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6574,141 +6774,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -6719,7 +6925,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6731,141 +6937,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -6876,7 +7088,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6887,98 +7099,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -6995,73 +7213,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -7080,7 +7304,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7091,443 +7315,371 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1095 : void _Orphan_all_locked() noexcept { +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { -$LN3: +$LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8b 05 00 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1096 : _Lockit _Lock(_LOCK_DEBUG); - - 00049 ba 03 00 00 00 mov edx, 3 - 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00052 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it -; 1097 : _Orphan_all_unlocked(); - - 00058 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked - -; 1098 : } - - 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00068 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData - 00079 e8 00 00 00 00 call _RTC_CheckStackVars - 0007e 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00085 48 33 cd xor rcx, rbp - 00088 e8 00 00 00 00 call __security_check_cookie - 0008d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00094 5f pop rdi - 00095 5d pop rbp - 00096 c3 ret 0 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -_TEXT SEGMENT -_Pnext$1 = 8 -this$ = 256 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + 00047 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00052 74 6b je SHORT $LN5@Orphan_all -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 1208 : _Lockit _Lock(_LOCK_DEBUG); -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00054 ba 03 00 00 00 mov edx, 3 + 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { - 0001f 48 8b 85 00 01 + 00063 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 83 c0 08 add rax, 8 - 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax - 00031 eb 12 jmp SHORT $LN4@Orphan_all + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 83 c0 08 add rax, 8 + 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax + 00075 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] - 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00042 48 89 01 mov QWORD PTR [rcx], rax + 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] + 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00086 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00049 48 83 38 00 cmp QWORD PTR [rax], 0 - 0004d 74 10 je SHORT $LN3@Orphan_all + 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00091 74 10 je SHORT $LN3@Orphan_all -; 1222 : _Pnext->_Myproxy = nullptr; +; 1211 : (*_Pnext)->_Myproxy = nullptr; - 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 c7 00 00 00 + 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1223 : } +; 1212 : } - 0005d eb d4 jmp SHORT $LN2@Orphan_all + 000a1 eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1224 : _Myproxy->_Myfirstiter = nullptr; +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; - 0005f 48 8b 85 00 01 + 000a3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 00 mov rax, QWORD PTR [rax] - 00069 48 c7 40 08 00 + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1225 : } - - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ -_TEXT SEGMENT -this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT - -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1229 : if (_Myproxy) { // proxy allocated, drain it +; 1215 : } - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 0c je SHORT $LN2@Orphan_all - -; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1231 : if (_STD is_constant_evaluated()) { -; 1232 : _Orphan_all_unlocked(); -; 1233 : } else -; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1235 : { -; 1236 : _Orphan_all_locked(); - - 0002c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked -$LN2@Orphan_all: + 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000b9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN5@Orphan_all: -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } - 00038 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData + 000ca e8 00 00 00 00 call _RTC_CheckStackVars + 000cf 90 npad 1 + 000d0 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d7 48 33 cd xor rcx, rbp + 000da e8 00 00 00 00 call __security_check_cookie + 000df 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e6 5f pop rdi + 000e7 5d pop rbp + 000e8 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -7538,7 +7690,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7548,186 +7700,192 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 155 : _Bytes += _Non_user_size; - - 00024 48 8b 85 68 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; + + 0003b 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 83 c0 2f add rax, 47 ; 0000002fH - 00032 48 8b 8d 68 01 + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00039 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 89 01 mov QWORD PTR [rcx], rax -; 156 : -; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 0003c 48 8b 85 60 01 + 00053 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 0004a b8 08 00 00 00 mov eax, 8 - 0004f 48 6b c0 ff imul rax, rax, -1 - 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 00061 b8 08 00 00 00 mov eax, 8 + 00066 48 6b c0 ff imul rax, rax, -1 + 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 159 : -; 160 : // If the following asserts, it likely means that we are performing -; 161 : // an aligned delete on memory coming from an unaligned allocation. -; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - - 0005f b8 08 00 00 00 mov eax, 8 - 00064 48 6b c0 fe imul rax, rax, -2 - 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006c 48 ba fa fa fa +; 138 : +; 139 : // If the following asserts, it likely means that we are performing +; 140 : // an aligned delete on memory coming from an unaligned allocation. +; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); + + 00076 b8 08 00 00 00 mov eax, 8 + 0007b 48 6b c0 fe imul rax, rax, -2 + 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00083 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 0007a 75 02 jne SHORT $LN14@Adjust_man - 0007c eb 77 jmp SHORT $LN15@Adjust_man + 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 00091 75 02 jne SHORT $LN14@Adjust_man + 00093 eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 0007e 8b 05 00 00 00 + 00095 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00084 83 c0 09 add eax, 9 - 00087 48 8d 0d 00 00 + 0009b 83 c0 09 add eax, 9 + 0009e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00093 48 8d 0d 00 00 + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0009f 45 33 c9 xor r9d, r9d - 000a2 44 8b c0 mov r8d, eax - 000a5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000ac b9 02 00 00 00 mov ecx, 2 - 000b1 ff 15 00 00 00 + 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 000b6 45 33 c9 xor r9d, r9d + 000b9 44 8b c0 mov r8d, eax + 000bc 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000c3 b9 02 00 00 00 mov ecx, 2 + 000c8 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000b7 83 f8 01 cmp eax, 1 - 000ba 75 03 jne SHORT $LN19@Adjust_man - 000bc cc int 3 - 000bd 33 c0 xor eax, eax + 000ce 83 f8 01 cmp eax, 1 + 000d1 75 03 jne SHORT $LN19@Adjust_man + 000d3 cc int 3 + 000d4 33 c0 xor eax, eax $LN19@Adjust_man: - 000bf 8b 05 00 00 00 + 000d6 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000c5 83 c0 09 add eax, 9 - 000c8 48 c7 44 24 20 + 000dc 83 c0 09 add eax, 9 + 000df 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000d1 44 8b c8 mov r9d, eax - 000d4 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000db 48 8d 15 00 00 + 000e8 44 8b c8 mov r9d, eax + 000eb 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000f2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000e2 48 8d 0d 00 00 + 000f9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000e9 ff 15 00 00 00 + 00100 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000ef 33 c0 xor eax, eax - 000f1 85 c0 test eax, eax - 000f3 75 89 jne SHORT $LN7@Adjust_man + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 000f5 33 c0 xor eax, eax - 000f7 85 c0 test eax, eax - 000f9 0f 85 60 ff ff + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 163 : -; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 165 : // in range [_Min_back_shift, _Non_user_size] -; 166 : #ifdef _DEBUG -; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 142 : +; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 144 : // in range [_Min_back_shift, _Non_user_size] +; 145 : #ifdef _DEBUG +; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 000ff 48 c7 45 48 10 + 00116 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 170 : #endif // _DEBUG -; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 149 : #endif // _DEBUG +; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 00107 48 8b 85 60 01 + 0011e 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00112 48 8b 00 mov rax, QWORD PTR [rax] - 00115 48 2b c1 sub rax, rcx - 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00129 48 8b 00 mov rax, QWORD PTR [rax] + 0012c 48 2b c1 sub rax, rcx + 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00121 72 09 jb SHORT $LN16@Adjust_man - 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 00128 77 02 ja SHORT $LN16@Adjust_man - 0012a eb 77 jmp SHORT $LN17@Adjust_man + 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00138 72 09 jb SHORT $LN16@Adjust_man + 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 0013f 77 02 ja SHORT $LN16@Adjust_man + 00141 eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 0012c 8b 05 00 00 00 + 00143 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00132 83 c0 13 add eax, 19 - 00135 48 8d 0d 00 00 + 00149 83 c0 13 add eax, 19 + 0014c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00141 48 8d 0d 00 00 + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0014d 45 33 c9 xor r9d, r9d - 00150 44 8b c0 mov r8d, eax - 00153 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0015a b9 02 00 00 00 mov ecx, 2 - 0015f ff 15 00 00 00 + 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00164 45 33 c9 xor r9d, r9d + 00167 44 8b c0 mov r8d, eax + 0016a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00171 b9 02 00 00 00 mov ecx, 2 + 00176 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 00165 83 f8 01 cmp eax, 1 - 00168 75 03 jne SHORT $LN20@Adjust_man - 0016a cc int 3 - 0016b 33 c0 xor eax, eax + 0017c 83 f8 01 cmp eax, 1 + 0017f 75 03 jne SHORT $LN20@Adjust_man + 00181 cc int 3 + 00182 33 c0 xor eax, eax $LN20@Adjust_man: - 0016d 8b 05 00 00 00 + 00184 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00173 83 c0 13 add eax, 19 - 00176 48 c7 44 24 20 + 0018a 83 c0 13 add eax, 19 + 0018d 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0017f 44 8b c8 mov r9d, eax - 00182 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00189 48 8d 15 00 00 + 00196 44 8b c8 mov r9d, eax + 00199 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 001a0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 00190 48 8d 0d 00 00 + 001a7 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00197 ff 15 00 00 00 + 001ae ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 0019d 33 c0 xor eax, eax - 0019f 85 c0 test eax, eax - 001a1 75 89 jne SHORT $LN13@Adjust_man + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001a3 33 c0 xor eax, eax - 001a5 85 c0 test eax, eax - 001a7 0f 85 6f ff ff + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 152 : _Ptr = reinterpret_cast(_Ptr_container); - 001ad 48 8b 85 60 01 + 001c4 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001b8 48 89 08 mov QWORD PTR [rax], rcx + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx -; 174 : } +; 153 : } - 001bb 48 8d a5 48 01 + 001d2 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001c2 5f pop rdi - 001c3 5d pop rbp - 001c4 c3 ret 0 + 001d9 5f pop rdi + 001da 5d pop rbp + 001db c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -7750,34 +7908,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7794,18 +7958,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7820,18 +7991,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -7846,18 +8024,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -7870,14 +8055,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Junk.cod b/CodeVirtualizer/x64/Debug/Junk.cod index 63c27c4..91469f3 100644 --- a/CodeVirtualizer/x64/Debug/Junk.cod +++ b/CodeVirtualizer/x64/Debug/Junk.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__74DFB793_Junk@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__0C803D80_Junk@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -95,9 +94,9 @@ PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -115,67 +114,68 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -196,58 +196,53 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -292,38 +287,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -333,7 +380,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -344,7 +391,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -356,141 +403,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -501,7 +554,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -513,141 +566,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -658,7 +717,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -669,98 +728,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -777,73 +842,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -862,7 +933,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -873,251 +944,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1140,34 +1211,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1184,18 +1261,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1210,18 +1294,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1236,18 +1327,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1260,14 +1358,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Main.cod b/CodeVirtualizer/x64/Debug/Main.cod index 666c8c0..2bb9921 100644 --- a/CodeVirtualizer/x64/Debug/Main.cod +++ b/CodeVirtualizer/x64/Debug/Main.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -31,66 +31,64 @@ __A118E6DC_stralign@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__6D66DEAE_cmath DB 01H +__F8119FB4_cstdlib DB 01H +__0A4FAB91_cmath DB 01H __C6E16F6F_corecrt_wconio@h DB 01H __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H -__D1154D4E_type_traits DB 01H -__7CE971A6_xutility DB 01H +__5DDA4519_cstddef DB 01H +__85A9AA98_type_traits DB 01H +__4324C6B3_xutility DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__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 +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__F2870A2C_limits DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__88EC1446_fstream DB 01H +__3AFA803E_string DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__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 +__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 msvcjmc ENDS _DATA SEGMENT ?TestBuffer@@3PAEA DB 048H ; TestBuffer @@ -242,14 +240,12 @@ 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@?$_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 ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy +PUBLIC ?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::move PUBLIC ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign PUBLIC ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type PUBLIC ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type @@ -269,8 +265,7 @@ 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_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 ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::erase PUBLIC ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ; std::basic_string,std::allocator >::push_back PUBLIC ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ; std::basic_string,std::allocator >::front PUBLIC ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data @@ -313,11 +308,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 > @@ -369,7 +364,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@@QEBA@QEADQEBD_KD@Z ; ::operator() +PUBLIC ??R@@QEBAXQEADQEBD_KD@Z ; ::operator() PUBLIC ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> PUBLIC ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ; std::_Construct_in_place PUBLIC ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy @@ -380,7 +375,6 @@ 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 > @@ -390,10 +384,9 @@ PUBLIC ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Face PUBLIC ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ; std::unique_ptr >::unique_ptr >,0> PUBLIC ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > PUBLIC ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ; std::addressof -PUBLIC ??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z ; std::_Voidify_iter PUBLIC ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward PUBLIC ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned -PUBLIC ??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z ; std::exchange +PUBLIC ??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z ; std::exchange PUBLIC ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1> PUBLIC ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate PUBLIC ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ; std::forward @@ -416,8 +409,8 @@ PUBLIC _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' PUBLIC ??_C@_0BA@JFNIOLAK@string?5too?5long@ ; `string' @@ -427,20 +420,19 @@ PUBLIC _TI2?AVbad_cast@std@@ PUBLIC _CTA2?AVbad_cast@std@@ PUBLIC ??_R0?AVbad_cast@std@@@8 ; std::bad_cast `RTTI Type Descriptor' PUBLIC _CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf >::`vftable' PUBLIC ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ofstream >::`vftable' PUBLIC ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_ofstream >::`vbtable' -PUBLIC ??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ ; `string' -PUBLIC ??_C@_05PDJBBECF@pause@ ; `string' -PUBLIC ??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ ; `string' +PUBLIC ??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ ; `string' PUBLIC ??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ ; `string' +PUBLIC ??_C@_05PDJBBECF@pause@ ; `string' PUBLIC ??_C@_0DC@MEGCPGB@?6?6Size?3?5?$CFu?5?5?5Obfuscated?3?5?$CFllu?5?5@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' -PUBLIC ??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@LAIGCHJK@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4U_Mbstatet@@A ; `std::basic_filebuf >::_Init'::`2'::_Stinit PUBLIC ??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ ; `string' PUBLIC ??_C@_1LC@BJDDPGPA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi@ ; `string' @@ -499,6 +491,7 @@ PUBLIC ??_R4bad_cast@std@@6B@ ; std::bad_cast::`RTTI Complete Object Locator' PUBLIC ??_R3bad_cast@std@@8 ; std::bad_cast::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2bad_cast@std@@8 ; std::bad_cast::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@bad_cast@std@@8 ; std::bad_cast::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC __real@3fa66666 EXTRN ??2@YAPEAX_K@Z:PROC ; operator new EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete EXTRN __imp__invalid_parameter:PROC @@ -538,7 +531,6 @@ EXTRN __std_exception_destroy:PROC EXTRN ??_Eexception@std@@UEAAPEAXI@Z:PROC ; std::exception::`vector deleting destructor' EXTRN ??_Ebad_alloc@std@@UEAAPEAXI@Z:PROC ; std::bad_alloc::`vector deleting destructor' EXTRN ??_Ebad_array_new_length@std@@UEAAPEAXI@Z:PROC ; std::bad_array_new_length::`vector deleting destructor' -EXTRN __imp__time64:PROC EXTRN ??_Ebad_cast@std@@UEAAPEAXI@Z:PROC ; std::bad_cast::`vector deleting destructor' EXTRN ?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z:PROC ; std::_Facet_Register EXTRN _Mbrtowc:PROC @@ -596,6 +588,7 @@ EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z:PROC EXTRN __imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z:PROC EXTRN __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ:PROC EXTRN ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z:PROC ; std::_Fiopen +EXTRN __imp__time64:PROC EXTRN ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z:PROC ; std::setw EXTRN xed_tables_init:PROC EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK @@ -603,8 +596,8 @@ EXTRN ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcCountInstruc EXTRN ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z:PROC ; NcDisassemble EXTRN ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z:PROC ; NcAssemble EXTRN ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDeleteBlock -EXTRN ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDebugPrint -EXTRN ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z:PROC ; ObfObfuscate1 +EXTRN ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z:PROC ; ObfGenerateOpaqueBranches +EXTRN ?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; ObfMutateInstructions EXTRN ??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z:PROC ; std::basic_filebuf >::`vector deleting destructor' EXTRN ??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z:PROC ; std::basic_ofstream >::`vector deleting destructor' EXTRN RetNum:PROC @@ -622,6 +615,7 @@ EXTRN ??_7type_info@@6B@:BYTE ; type_info::`vftable' EXTRN __imp_?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A:QWORD EXTRN __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A:BYTE EXTRN __security_cookie:QWORD +EXTRN _fltused:DWORD ; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA _BSS SEGMENT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage @@ -637,661 +631,643 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+44 + DD imagerel $LN3+59 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+103 + DD imagerel $LN3+126 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+216 + DD imagerel $LN3+214 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 - DD imagerel $LN3+116 + DD imagerel $LN3+139 DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+123 + DD imagerel $LN3+146 DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+101 DD imagerel $unwind$??1exception@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 - DD imagerel $LN5+96 + DD imagerel $LN5+119 DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+118 DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+84 + DD imagerel $LN3+107 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+68 + DD imagerel $LN3+83 DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 - DD imagerel $LN3+47 + DD imagerel $LN3+62 DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+453 + DD imagerel $LN21+476 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+85 DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+66 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 - DD imagerel $LN6+123 - DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+151 - DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD imagerel $LN3 - DD imagerel $LN3+127 + DD imagerel $LN3+143 DD imagerel $unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$allocator@D@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??0?$allocator@D@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD imagerel $LN3 - DD imagerel $LN3+70 + DD imagerel $LN3+93 DD imagerel $unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+89 DD imagerel $unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 - DD imagerel $LN3+84 - DD imagerel $unwind$?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z +$pdata$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 - DD imagerel $LN3+84 - DD imagerel $unwind$?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z +$pdata$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+88 DD imagerel $unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+74 DD imagerel $unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+74 DD imagerel $unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 - DD imagerel $LN5+95 + DD imagerel $LN5+118 DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD imagerel $LN7 - DD imagerel $LN7+123 + DD imagerel $LN7+146 DD imagerel $unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 - DD imagerel $LN3+42 + DD imagerel $LN3+57 DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xlen_string@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+49 + DD imagerel $LN3+64 DD imagerel $unwind$?_Xlen_string@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+109 +$pdata$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+132 DD imagerel $unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD imagerel $LN4 - DD imagerel $LN4+99 + DD imagerel $LN4+122 DD imagerel $unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD imagerel $LN5 - DD imagerel $LN5+84 + DD imagerel $LN5+107 DD imagerel $unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+71 + DD imagerel $LN4+94 DD imagerel $unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD imagerel $LN3 - DD imagerel $LN3+49 + DD imagerel $LN3+64 DD imagerel $unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DD imagerel $LN3 - DD imagerel $LN3+101 + DD imagerel $LN3+124 DD imagerel $unwind$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+71 DD imagerel $unwind$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+149 + DD imagerel $LN3+172 DD imagerel $unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+214 + DD imagerel $LN3+213 DD imagerel $unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z DD imagerel $LN3 - DD imagerel $LN3+248 - DD imagerel $unwind$?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z DD imagerel $LN3 - DD imagerel $LN3+110 - DD imagerel $unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z +$pdata$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z DD imagerel $LN3 + DD imagerel $LN3+304 + DD imagerel $unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z DD imagerel $LN4 - DD imagerel $LN4+232 + DD imagerel $LN4+255 DD imagerel $unwind$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DD imagerel $LN12 - DD imagerel $LN12+201 + DD imagerel $LN12+224 DD imagerel $unwind$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+52 + DD imagerel $LN3+75 DD imagerel $unwind$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+226 + DD imagerel $LN3+224 DD imagerel $unwind$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DD imagerel $LN5 - DD imagerel $LN5+271 + DD imagerel $LN5+269 DD imagerel $unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DD imagerel $LN3 - DD imagerel $LN3+109 + DD imagerel $LN3+133 DD imagerel $unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+116 + DD imagerel $LN3+138 DD imagerel $unwind$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+232 + DD imagerel $LN4+255 DD imagerel $unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+44 + DD imagerel $LN3+67 DD imagerel $unwind$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$time DD imagerel time - DD imagerel time+54 - DD imagerel $unwind$time -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??0bad_cast@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+90 + DD imagerel $LN3+113 DD imagerel $unwind$??0bad_cast@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_cast@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1bad_cast@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_cast@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$??0bad_cast@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_cast@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gbad_cast@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Throw_bad_cast@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+68 + DD imagerel $LN3+83 DD imagerel $unwind$?_Throw_bad_cast@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1locale@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+158 + DD imagerel $LN6+181 DD imagerel $unwind$??1locale@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD imagerel $LN8 - DD imagerel $LN8+208 + DD imagerel $LN8+231 DD imagerel $unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+131 DD imagerel $unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+131 DD imagerel $unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+97 DD imagerel $unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+85 DD imagerel $unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD imagerel $LN5 - DD imagerel $LN5+89 + DD imagerel $LN5+112 DD imagerel $unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD imagerel $LN5 - DD imagerel $LN5+101 + DD imagerel $LN5+124 DD imagerel $unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD imagerel $LN5 - DD imagerel $LN5+105 + DD imagerel $LN5+128 DD imagerel $unwind$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$time DD imagerel time + DD imagerel time+77 + DD imagerel $unwind$time +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+203 + DD imagerel $LN3+202 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+257 + DD imagerel $LN4+280 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?PrintByteArr@@YAXPEAXK@Z DD imagerel $LN6 - DD imagerel $LN6+255 + DD imagerel $LN6+278 DD imagerel $unwind$?PrintByteArr@@YAXPEAXK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 - DD imagerel $LN3+117 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 + DD imagerel $LN23+1095 + DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 - DD imagerel $LN3+71 - DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 - DD imagerel $LN3+68 - DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 + DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 - DD imagerel $LN3+110 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 + DD imagerel $LN3+140 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 - DD imagerel $LN23+1097 - DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 + DD imagerel $LN3+94 + DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 - DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 + DD imagerel $LN3+91 + DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 - DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 + DD imagerel $LN3+133 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD imagerel $LN4 - DD imagerel $LN4+113 + DD imagerel $LN4+136 DD imagerel $unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?PutToFile@@YAXPEAXK@Z DD imagerel $LN4 - DD imagerel $LN4+220 + DD imagerel $LN4+218 DD imagerel $unwind$?PutToFile@@YAXPEAXK@Z pdata ENDS ; COMDAT pdata @@ -1303,7 +1279,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN8 - DD imagerel $LN8+265 + DD imagerel $LN8+288 DD imagerel $unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata @@ -1321,25 +1297,25 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+180 + DD imagerel $LN3+204 DD imagerel $unwind$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z DD imagerel $LN5 - DD imagerel $LN5+226 + DD imagerel $LN5+249 DD imagerel $unwind$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+120 + DD imagerel $LN4+143 DD imagerel $unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+97 + DD imagerel $LN4+120 DD imagerel $unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata @@ -1351,13 +1327,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD imagerel $LN5 - DD imagerel $LN5+128 + DD imagerel $LN5+151 DD imagerel $unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DD imagerel $LN6 - DD imagerel $LN6+230 + DD imagerel $LN6+253 DD imagerel $unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z pdata ENDS ; COMDAT pdata @@ -1369,43 +1345,43 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ DD imagerel $LN7 - DD imagerel $LN7+162 + DD imagerel $LN7+185 DD imagerel $unwind$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+78 + DD imagerel $LN4+101 DD imagerel $unwind$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+78 + DD imagerel $LN4+101 DD imagerel $unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD imagerel $LN19 - DD imagerel $LN19+799 +$pdata$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD imagerel $LN18 + DD imagerel $LN18+801 DD imagerel $unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD imagerel $LN13 - DD imagerel $LN13+489 + DD imagerel $LN13+512 DD imagerel $unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN7 - DD imagerel $LN7+312 + DD imagerel $LN7+310 DD imagerel $unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN22 - DD imagerel $LN22+918 +$pdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN21 + DD imagerel $LN21+920 DD imagerel $unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ pdata ENDS ; COMDAT pdata @@ -1417,103 +1393,103 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD imagerel $LN11 - DD imagerel $LN11+629 + DD imagerel $LN11+627 DD imagerel $unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD imagerel $LN7 - DD imagerel $LN7+365 + DD imagerel $LN7+388 DD imagerel $unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z DD imagerel $LN8 - DD imagerel $LN8+399 + DD imagerel $LN8+397 DD imagerel $unwind$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z DD imagerel $LN5 - DD imagerel $LN5+322 + DD imagerel $LN5+320 DD imagerel $unwind$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z DD imagerel $LN7 - DD imagerel $LN7+197 + DD imagerel $LN7+220 DD imagerel $unwind$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN5 - DD imagerel $LN5+185 + DD imagerel $LN5+208 DD imagerel $unwind$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD imagerel $LN3 - DD imagerel $LN3+73 + DD imagerel $LN3+96 DD imagerel $unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD imagerel $LN6 - DD imagerel $LN6+376 + DD imagerel $LN6+374 DD imagerel $unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD imagerel $LN15 - DD imagerel $LN15+526 + DD imagerel $LN15+524 DD imagerel $unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+142 DD imagerel $unwind$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+125 + DD imagerel $LN4+148 DD imagerel $unwind$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+176 + DD imagerel $LN4+199 DD imagerel $unwind$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+50 + DD imagerel $LN3+73 DD imagerel $unwind$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+106 + DD imagerel $LN4+129 DD imagerel $unwind$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$main DD imagerel $LN7 - DD imagerel $LN7+592 + DD imagerel $LN7+559 DD imagerel $unwind$main pdata ENDS ; COMDAT pdata @@ -1525,7 +1501,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DD imagerel $LN11 - DD imagerel $LN11+395 + DD imagerel $LN11+393 DD imagerel $unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z pdata ENDS ; COMDAT pdata @@ -1543,55 +1519,55 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+142 DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+89 DD imagerel $unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+84 + DD imagerel $LN3+107 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+89 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 - DD imagerel $LN4+148 + DD imagerel $LN4+171 DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+120 + DD imagerel $LN4+143 DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 - DD imagerel $LN7+261 + DD imagerel $LN7+284 DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata @@ -1603,219 +1579,211 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+116 + DD imagerel $LN6+139 DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 - DD imagerel $LN3+52 + DD imagerel $LN3+75 DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD imagerel $LN3 - DD imagerel $LN3+133 + DD imagerel $LN3+156 DD imagerel $unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN3 - DD imagerel $LN3+79 +$pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN4 + DD imagerel $LN4+102 DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??R@@QEBA@QEADQEBD_KD@Z DD imagerel $LN3 - DD imagerel $LN3+158 - DD imagerel $unwind$??R@@QEBA@QEADQEBD_KD@Z +$pdata$??R@@QEBAXQEADQEBD_KD@Z DD imagerel $LN3 + DD imagerel $LN3+181 + DD imagerel $unwind$??R@@QEBAXQEADQEBD_KD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z DD imagerel $LN6 - DD imagerel $LN6+554 + DD imagerel $LN6+552 DD imagerel $unwind$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DD imagerel $LN3 - DD imagerel $LN3+111 + DD imagerel $LN3+126 DD imagerel $unwind$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@D@std@@YAPEADPEAD@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$_Unfancy@D@std@@YAPEADPEAD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$max@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+142 DD imagerel $unwind$??$max@_K@std@@YAAEB_KAEB_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+91 + DD imagerel $LN4+114 DD imagerel $unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 - DD imagerel $LN5+94 + DD imagerel $LN5+117 DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+98 + DD imagerel $LN4+121 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD imagerel $LN3 - DD imagerel $LN3+52 + DD imagerel $LN3+75 DD imagerel $unwind$??$_Get_size_of_n@$00@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD imagerel $LN5 - DD imagerel $LN5+128 + DD imagerel $LN5+151 DD imagerel $unwind$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+112 + DD imagerel $LN4+136 DD imagerel $unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+98 DD imagerel $unwind$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+50 + DD imagerel $LN3+73 DD imagerel $unwind$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DD imagerel $LN3 - DD imagerel $LN3+93 + DD imagerel $LN3+116 DD imagerel $unwind$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD imagerel $LN13 - DD imagerel $LN13+277 + DD imagerel $LN13+300 DD imagerel $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+84 - DD imagerel $unwind$??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z +$pdata$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DD imagerel $LN3 - DD imagerel $LN3+82 + DD imagerel $LN3+105 DD imagerel $unwind$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+97 DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z pdata ENDS +; COMDAT __real@3fa66666 +CONST SEGMENT +__real@3fa66666 DD 03fa66666r ; 1.3 +CONST ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown @@ -1995,11 +1963,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$_Iosb@H@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$_Iosb@H@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AV?$_Iosb@H@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::_Iosb `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AV?$_Iosb@H@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R17?0A@EA@?$_Iosb@H@std@@8 rdata$r SEGMENT ??_R17?0A@EA@?$_Iosb@H@std@@8 DD imagerel ??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (8,-1,0,64)' @@ -2024,11 +1992,11 @@ rdata$r SEGMENT DD imagerel ??_R2ios_base@std@@8 rdata$r ENDS ; COMDAT ??_R0?AVios_base@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AVios_base@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::ios_base `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AVios_base@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R1A@?0A@EA@ios_base@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@ios_base@std@@8 DD imagerel ??_R0?AVios_base@std@@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,-1,0,64)' @@ -2064,11 +2032,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_ios > `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AV?$basic_ios@DU?$char_traits@D@std@@@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 rdata$r SEGMENT ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios >::`RTTI Base Class Descriptor at (0,0,4,80)' @@ -2095,11 +2063,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$basic_ostream@DU?$char_traits@D@std@@@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_ostream > `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ostream >::`RTTI Base Class Descriptor at (0,-1,0,64)' @@ -2137,11 +2105,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_ofstream > `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ rdata$r SEGMENT ??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ DD 01H ; std::basic_ofstream >::`RTTI Complete Object Locator' @@ -2164,11 +2132,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_streambuf > `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_streambuf >::`RTTI Base Class Descriptor at (0,-1,0,64)' @@ -2203,11 +2171,11 @@ rdata$r SEGMENT DD imagerel ??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 rdata$r ENDS ; COMDAT ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 -data$rs SEGMENT +data$r SEGMENT ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_filebuf > `RTTI Type Descriptor' DQ 0000000000000000H DB '.?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@', 00H -data$rs ENDS +data$r ENDS ; COMDAT ??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ rdata$r SEGMENT ??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ DD 01H ; std::basic_filebuf >::`RTTI Complete Object Locator' @@ -2270,9 +2238,9 @@ CONST SEGMENT ??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ DB 'front() ' DB 'called on empty string', 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@LAIGCHJK@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@LAIGCHJK@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -2285,16 +2253,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 's', 00H DB 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xstring', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xstring', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ CONST SEGMENT @@ -2306,23 +2274,18 @@ CONST SEGMENT DB 0aH, 'Size: %u Obfuscated: %llu Original: %llu', 0aH, 0aH DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ -CONST SEGMENT -??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ DB 'failed to assemble', 0aH, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ -CONST SEGMENT -??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ DB 'Finished second pas.', 0aH - DB 00H ; `string' -CONST ENDS ; COMDAT ??_C@_05PDJBBECF@pause@ CONST SEGMENT ??_C@_05PDJBBECF@pause@ DB 'pause', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ +; COMDAT ??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ +CONST SEGMENT +??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ DB 'failed to assemble', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ CONST SEGMENT -??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ DB 'C:\Users\Ja' - DB 'mes\Desktop\fantern\Test.m', 00H ; `string' +??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ DB 'C:\Users\Ii' + DB 'zerd\Desktop\Leeg Hake\Test.m', 00H ; `string' CONST ENDS ; COMDAT ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ CONST SEGMENT @@ -2353,21 +2316,21 @@ CONST SEGMENT DQ FLAT:?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DQ FLAT:?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT _CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -2429,9 +2392,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -2444,16 +2407,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -2465,7 +2428,7 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -2557,59 +2520,117 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DD 025051301H +$ip2state$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DB 060H + DD imagerel $ip2state$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DD 025051c01H +$ip2state$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DB 060H + DD imagerel $ip2state$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DD 025053319H DD 0117231cH DD 07010001dH DD 0500fH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z DD 025051801H +$unwind$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035051301H +$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035052a01H DD 010e3313H DD 07007002bH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DB 060H + DD imagerel $ip2state$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z DD 025051301H +$unwind$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD 025051301H +$cppxdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DB 060H + DD imagerel $ip2state$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -2624,7 +2645,7 @@ $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@Y xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH @@ -2633,77 +2654,161 @@ $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAX xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$ip2state$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z DD 05051601H - DD 01130316H - DD 0700c0019H - DD 0500bH +$cppxdata$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DB 060H + DD imagerel $ip2state$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$unwind$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H +$unwind$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z DD 05052d01H + DD 01130316H + DD 0700c0019H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H +$ip2state$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD 025051801H - DD 01132318H - DD 0700c0023H - DD 0500bH +$cppxdata$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025051301H +$unwind$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DB 060H + DD imagerel $ip2state$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD 025051301H +$unwind$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H +$ip2state$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DB 060H + DD imagerel $ip2state$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD 025052f19H + DD 01132318H + DD 0700c0023H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 060H + DD imagerel $ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 060H + DD imagerel $ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD 025052a01H + DD 010e2313H + DD 070070021H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H DB 00H DB 00H xdata ENDS @@ -2714,7 +2819,7 @@ $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH @@ -2723,54 +2828,101 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H +$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025051301H +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025051301H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$max@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H +$ip2state$??$max@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$max@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$max@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$max@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$max@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@D@std@@YAPEADPEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Unfancy@D@std@@YAPEADPEAD@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@D@std@@YAPEADPEAD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@D@std@@YAPEADPEAD@Z DD 025051301H +$unwind$??$_Unfancy@D@std@@YAPEADPEAD@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@D@std@@YAPEADPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DB 060H + DD imagerel $ip2state$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DD 025051801H +$unwind$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0211H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z DD 035054c19H +$unwind$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z DD 035054a19H DD 011d3322H DD 070160043H DD 05015H @@ -2799,56 +2951,108 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??R@@QEBA@QEADQEBD_KD@Z DD 025052201H +$unwind$??R@@QEBAXQEADQEBD_KD@Z DD 025053901H DD 011d2322H DD 070160021H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DD 025051301H +$ip2state$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DB 060H + DD imagerel $ip2state$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DD 025051301H +$ip2state$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DB 060H + DD imagerel $ip2state$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025051301H +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025051701H +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD 025051801H +$ip2state$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DB 060H + DD imagerel $ip2state$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025051801H +$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025052f01H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025051301H +$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H @@ -2866,18 +3070,13 @@ $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H +$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H @@ -2889,7 +3088,7 @@ xdata SEGMENT $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H DB 00H DB 00H - DB 'p' + DB 09eH DB 02H DB 0f1H, 02H DB 00H @@ -2908,7 +3107,7 @@ $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051811H +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H DD 01132318H DD 0700c0021H DD 0500bH @@ -2928,7 +3127,7 @@ $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H @@ -2937,68 +3136,118 @@ $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051801H +$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H +$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H + DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025051801H +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DD 025051301H +$ip2state$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DB 060H + DD imagerel $ip2state$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H +$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0172H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA DD 031001H @@ -3016,7 +3265,7 @@ xdata SEGMENT $ip2state$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DB 0aH DB 00H DB 00H - DB 0acH + DB 0a8H DB 02H DB 'y', 02H DB 04H @@ -3041,7 +3290,7 @@ $cppxdata$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DD 025053d19H +$unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DD 025053b19H DD 010e2313H DD 070070039H DD 05006H @@ -3094,16 +3343,6 @@ CONST SEGMENT DD 00H DQ FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 02aH - DW 0237H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$main$dtor$0 DD 031001H @@ -3115,9 +3354,9 @@ xdata SEGMENT $ip2state$main DB 0aH DB 00H DB 00H - DB 0d0H + DB 0b2H DB 02H - DB 095H, 03H + DB 'M', 03H DB 00H DB '(' DB 02H @@ -3138,13 +3377,13 @@ $cppxdata$main DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$main DD 025053119H +$unwind$main DD 025052f19H DD 010a230fH - DD 070030043H + DD 070030047H DD 05002H DD imagerel __GSHandlerCheck_EH4 DD imagerel $cppxdata$main - DD 020aH + DD 022aH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -3164,7 +3403,13 @@ main$rtcName$1 DB 04fH DB 062H DB 066H DB 00H -main$rtcName$2 DB 041H +main$rtcName$2 DB 04fH + DB 062H + DB 066H + DB 032H + DB 00H + ORG $+3 +main$rtcName$3 DB 041H DB 073H DB 06dH DB 053H @@ -3172,9 +3417,11 @@ main$rtcName$2 DB 041H DB 07aH DB 065H DB 00H - ORG $+8 -main$rtcVarDesc DD 0b4H +main$rtcVarDesc DD 0d4H DD 04H + DQ FLAT:main$rtcName$3 + DD 0b8H + DD 08H DQ FLAT:main$rtcName$2 DD 078H DD 020H @@ -3182,68 +3429,63 @@ main$rtcVarDesc DD 0b4H DD 028H DD 030H DQ FLAT:main$rtcName$0 - ORG $+144 -main$rtcFrameData DD 03H + ORG $+192 +main$rtcFrameData DD 04H DD 00H DQ FLAT:main$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025051301H +$unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z DD 05051601H +$unwind$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z DD 05052d01H DD 01130316H DD 0700c0019H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025051301H +$unwind$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025051301H +$unwind$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z DD 025051801H +$unwind$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 01f5H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD 035053d19H +$unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD 035053b19H DD 010e3313H DD 07007003dH DD 05006H @@ -3276,14 +3518,9 @@ CONST SEGMENT DD 00H DQ FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 015fH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD 045054719H +$unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD 045054519H DD 0118431dH DD 070110031H DD 05010H @@ -3321,33 +3558,28 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD 025051801H +$unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025051301H +$unwind$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025052a01H DD 010e2313H DD 070070027H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z DD 025051d01H +$unwind$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z DD 025053401H DD 0118231dH DD 070110025H DD 05010H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0129H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z DD 025054c19H +$unwind$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z DD 025054a19H DD 011d2322H DD 070160025H DD 05015H @@ -3370,14 +3602,9 @@ CONST SEGMENT DD 00H DQ FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 0176H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z DD 025054c19H +$unwind$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z DD 025054a19H DD 011d2322H DD 070160021H DD 05015H @@ -3411,19 +3638,14 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD 025051d01H +$unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD 025053401H DD 0118231dH DD 070110025H DD 05010H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 025cH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD 025054719H +$unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD 025054519H DD 0118231dH DD 070110037H DD 05010H @@ -3465,16 +3687,6 @@ CONST SEGMENT DD 00H DQ FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 037dH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA DD 031001H @@ -3486,13 +3698,13 @@ xdata SEGMENT $ip2state$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 016H DB 00H DB 00H - DB 099H, 04H + DB 091H, 04H DB 02H DB '\' DB 00H DB '(' DB 02H - DB 0f5H, 05H + DB 05H, 06H DB 00H DB '"' DB 02H @@ -3521,7 +3733,7 @@ $cppxdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 045053d19H +$unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 045053b19H DD 010e4313H DD 070070057H DD 05006H @@ -3578,14 +3790,9 @@ CONST SEGMENT DD 00H DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 011fH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025053d19H +$unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025053b19H DD 010e2313H DD 070070027H DD 05006H @@ -3611,19 +3818,14 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 025051701H +$unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 025052e01H DD 01122317H DD 0700b002dH DD 0500aH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03aH - DW 0306H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 045054119H +$unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 045053f19H DD 01124317H DD 0700b0043H DD 0500aH @@ -3674,30 +3876,25 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025051301H +$unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025051301H +$unwind$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ DD 025051301H +$unwind$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ DD 025052a01H DD 010e2313H DD 070070021H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA DD 031001H @@ -3709,7 +3906,7 @@ xdata SEGMENT $ip2state$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DB 06H DB 00H DB 00H - DB 0b5H, 02H + DB 011H, 03H DB 02H DB '8' DB 00H @@ -3728,7 +3925,7 @@ $cppxdata$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DD 025052211H +$unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DD 025053911H DD 011d2322H DD 070160029H DD 05015H @@ -3748,18 +3945,13 @@ $cppxdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025051319H +$unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H @@ -3771,7 +3963,7 @@ xdata SEGMENT $ip2state$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 06H DB 00H DB 00H - DB 'Z' + DB 088H DB 02H DB 'F' DB 00H @@ -3790,7 +3982,7 @@ $cppxdata$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051311H +$unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a11H DD 010e2313H DD 07007001dH DD 05006H @@ -3799,35 +3991,38 @@ $unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051311H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025051301H +$unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025052a01H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z DD 025052201H +$unwind$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z DD 025053901H DD 011d2322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025051301H +$ip2state$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H @@ -3845,7 +4040,7 @@ xdata SEGMENT $ip2state$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 08H DB 00H DB 00H - DB 0bcH + DB 0eaH DB 02H DB 'r' DB 04H @@ -3868,23 +4063,13 @@ $cppxdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051711H +$unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052e11H DD 01122317H DD 0700b0021H DD 0500aH DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03aH - DB 0c3H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA DD 031001H @@ -3896,7 +4081,7 @@ xdata SEGMENT $ip2state$?PutToFile@@YAXPEAXK@Z DB 06H DB 00H DB 00H - DB 0d4H + DB 0d0H DB 02H DB 080H DB 00H @@ -3915,7 +4100,7 @@ $cppxdata$?PutToFile@@YAXPEAXK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?PutToFile@@YAXPEAXK@Z DD 025054119H +$unwind$?PutToFile@@YAXPEAXK@Z DD 025053f19H DD 01122317H DD 0700b0043H DD 0500aH @@ -3941,26 +4126,39 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025051701H +$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025052e01H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03aH - DW 0430H -voltbl ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H @@ -3978,7 +4176,7 @@ xdata SEGMENT $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH DB 00H DB 00H - DB 0caH + DB 0c6H DB 02H DB 011H, 02H DB 04H @@ -4019,7 +4217,7 @@ $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025054119H +$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H DD 01122317H DD 0700b004bH DD 0500aH @@ -4044,59 +4242,57 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025051701H +$unwind$?PrintByteArr@@YAXPEAXK@Z DD 025052e01H DD 01122317H - DD 0700b001dH + DD 0700b0031H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?PrintByteArr@@YAXPEAXK@Z DD 025051701H - DD 01122317H - DD 0700b0031H - DD 0500aH +$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$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_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 +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -4111,7 +4307,7 @@ $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H DD 010e2313H DD 07007002fH DD 05006H @@ -4120,24 +4316,31 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0b2H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H +$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck - DD 0138H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ + DD 013bH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4156,103 +4359,105 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD 025051801H +$unwind$time DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD 025052f01H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD 025051701H +$unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD 025052e01H DD 01122317H DD 0700b001fH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD 025051801H +$unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD 025052f01H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025051301H +$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD 025051301H +$unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD 025051801H +$unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z DD 025051d01H +$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD 025051801H +$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -4297,94 +4502,165 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD 025051801H +$unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD 025052f01H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1locale@std@@QEAA@XZ DD 025051301H +$ip2state$??1locale@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1locale@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1locale@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1locale@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070023H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1locale@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_cast@std@@YAXXZ DD 025050f01H +$unwind$?_Throw_bad_cast@std@@YAXXZ DD 025051e01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_cast@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_Gbad_cast@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_cast@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0bad_cast@std@@QEAA@AEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_cast@std@@UEAA@XZ DD 025051301H +$unwind$??1bad_cast@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_cast@std@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??0bad_cast@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_cast@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0bad_cast@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$time DD 025051301H +$unwind$??0bad_cast@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_cast@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ DD 025051301H +$unwind$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DD 025051301H +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DD 025051301H +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DD 025051301H +$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DD 025051301H +$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -4399,7 +4675,7 @@ $cppxdata$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025051319H +$unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025052a19H DD 010e2313H DD 070070029H DD 05006H @@ -4408,31 +4684,64 @@ $unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025051301H +$ip2state$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025052a19H DD 010e2313H - DD 070070025H + DD 070070021H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DB 060H + DD imagerel $ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DD 025051801H +$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DD 025052f19H DD 01132318H DD 0700c001fH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DB 060H + DD imagerel $ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 040H - DB 0f6H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DD 025054719H +$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DD 025054519H DD 0118231dH DD 070110025H DD 05010H - DD imagerel __GSHandlerCheck - DD 0118H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z + DD 011bH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4453,19 +4762,26 @@ CONST SEGMENT DD 00H DQ FLAT:?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0c9H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025053d19H +$ip2state$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025053b19H DD 010e2313H DD 070070031H DD 05006H - DD imagerel __GSHandlerCheck - DD 0178H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ + DD 017bH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4491,59 +4807,98 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025051301H +$ip2state$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DB 060H + DD imagerel $ip2state$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DD 025051301H +$unwind$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DB 060H + DD imagerel $ip2state$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DD 035051301H +$unwind$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DD 035052a19H DD 010e3313H DD 07007001fH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z DD 025051701H +$unwind$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z DD 025052e01H DD 01122317H DD 0700b002dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z DD 025051d01H +$unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z DD 025053401H DD 0118231dH - DD 07011001fH + DD 07011002dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z DD 025051d01H - DD 0118231dH - DD 07011002dH - DD 05010H +$ip2state$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0bdH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025053d19H +$unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025053b19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck - DD 0138H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ + DD 013bH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -4573,7 +4928,7 @@ $cppxdata$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@X xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025051319H +$unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070025H DD 05006H @@ -4582,365 +4937,665 @@ $unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H +$unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H +$ip2state$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H +$unwind$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DD 025051d01H +$ip2state$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DB 060H + DD imagerel $ip2state$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DD 025053419H DD 0118231dH DD 070110021H DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD 025050f01H +$unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD 025051801H +$unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD 025051301H +$ip2state$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DB 060H + DD imagerel $ip2state$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD 025052a19H DD 010e2313H DD 07007001fH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DB 060H + DD imagerel $ip2state$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD 025051301H +$unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025051301H +$unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DD 025051301H +$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DB 060H + DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Xlen_string@std@@YAXXZ DD 025050f01H +$unwind$?_Xlen_string@std@@YAXXZ DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025050f01H - DD 010a230fH - DD 07003001dH - DD 05002H +$ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H +$cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 060H + DD imagerel $ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH +$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025051e19H + DD 010a230fH + DD 07003001dH + DD 05002H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DB 060H + DD imagerel $ip2state$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 060H + DD imagerel $ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD 025051801H +$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025052f19H DD 01132318H - DD 0700c001dH + DD 0700c001fH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$ip2state$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DB 060H + DD imagerel $ip2state$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$allocator@D@std@@QEAA@XZ DD 025051301H +$unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$ip2state$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DB 060H + DD imagerel $ip2state$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H +$unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD 025052a19H DD 010e2313H - DD 070070021H + DD 07007001dH DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DB 060H + DD imagerel $ip2state$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 060H + DD imagerel $ip2state$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 060H + DD imagerel $ip2state$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$allocator@D@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$allocator@D@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$allocator@D@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$allocator@D@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$allocator@D@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DB 060H + DD imagerel $ip2state$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all DD 04H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all DD 00H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H +$ip2state$??0_Container_base12@std@@QEAA@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$??0_Container_base12@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0_Container_base12@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_base12@std@@QEAA@XZ DD 025051301H +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 060H + DD imagerel $ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025051801H +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025051301H +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025050f01H +$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ DB 060H + DD imagerel $ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H DD 010a230fH DD 07003001dH DD 05002H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025050f01H +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025051301H +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025051301H +$ip2state$??0bad_array_new_length@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_array_new_length@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0bad_array_new_length@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_array_new_length@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_alloc@std@@UEAA@XZ DD 025051301H +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025051801H +$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z DB 060H + DD imagerel $ip2state$??0bad_alloc@std@@AEAA@QEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?what@exception@std@@UEBAPEBDXZ DD 025051301H +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1exception@std@@UEAA@XZ DD 025051301H +$ip2state$??1exception@std@@UEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1exception@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1exception@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1exception@std@@UEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1exception@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025051801H +$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025051d01H +$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??2@YAPEAX_KPEAX@Z DD 025051801H +$ip2state$??2@YAPEAX_KPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H + DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0bfH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054c19H +$unwind$printf DD 025054a19H DD 011d2322H DD 07016002bH DD 05015H @@ -4969,45 +5624,97 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035052201H +$unwind$_vfprintf_l DD 035053901H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025050f01H +$unwind$__local_stdio_printf_options DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -5026,13 +5733,13 @@ _TEXT SEGMENT ??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@$4PPPPPPPM@A@EAAPEAXI@Z ENDP ; std::basic_ofstream >::`vector deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits ; COMDAT ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z _TEXT SEGMENT _Arg$ = 224 ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z PROC ; std::forward, COMDAT -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5041,34 +5748,40 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1444 : return static_cast<_Ty&&>(_Arg); + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1445 : } +; 1456 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z _TEXT SEGMENT -_Al$ = 224 +__formal$ = 224 _Ptr$ = 232 _Count$ = 240 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT -; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { +; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -5079,39 +5792,37 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 694 : // no overflow check on the following multiply; we assume _Allocate did that check -; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 696 : if (_STD is_constant_evaluated()) { -; 697 : _Al.deallocate(_Ptr, _Count); -; 698 : } else -; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 700 : { -; 701 : (void) _Al; -; 702 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00029 48 6b 85 f0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 688 : // no overflow check on the following multiply; we assume _Allocate did that check +; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00040 48 6b 85 f0 00 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00031 48 8b d0 mov rdx, rax - 00034 48 8b 8d e8 00 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 703 : } -; 704 : } +; 690 : } - 00040 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z _TEXT SEGMENT this$ = 224 @@ -5119,7 +5830,7 @@ __formal$ = 232 <_Val2_0>$ = 240 ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z PROC ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1>, COMDAT -; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -5130,35 +5841,41 @@ $LN3: 00010 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00028 48 8b 8d f0 00 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00033 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR <_Val2_0>$[rbp] - 0002f e8 00 00 00 00 call ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ; std::forward - 00034 48 8b 8d e0 00 + 00046 e8 00 00 00 00 call ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ; std::forward + 0004b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003b 48 8b 00 mov rax, QWORD PTR [rax] - 0003e 48 89 01 mov QWORD PTR [rcx], rax - 00041 48 8b 85 e0 00 + 00052 48 8b 00 mov rax, QWORD PTR [rax] + 00055 48 89 01 mov QWORD PTR [rcx], rax + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ENDP ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility -; COMDAT ??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z _TEXT SEGMENT _Old_val$ = 8 _Val$ = 256 _New_val$ = 264 -??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z PROC ; std::exchange, COMDAT +??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z PROC ; std::exchange, COMDAT -; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5168,42 +5885,48 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 615 : // assign _New_val to _Val, return previous _Val -; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 00024 48 8b 85 00 01 + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 617 : _Val = static_cast<_Other&&>(_New_val); +; 600 : _Val = static_cast<_Other&&>(_New_val); - 00032 48 8b 85 00 01 + 00049 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00039 48 8b 8d 08 01 + 00050 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00040 48 8b 09 mov rcx, QWORD PTR [rcx] - 00043 48 89 08 mov QWORD PTR [rax], rcx + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx -; 618 : return _Old_val; +; 601 : return _Old_val; - 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 619 : } +; 602 : } - 0004a 48 8d a5 e8 00 + 00061 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 -??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z ENDP ; std::exchange + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z _TEXT SEGMENT _Block_size$ = 8 @@ -5212,7 +5935,7 @@ _Ptr$ = 72 _Bytes$ = 320 ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT -; 134 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { +; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { $LN13: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5221,134 +5944,140 @@ $LN13: 00007 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 135 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment -; 136 : const size_t _Block_size = _Non_user_size + _Bytes; +; 114 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 115 : const size_t _Block_size = _Non_user_size + _Bytes; - 0001f 48 8b 85 40 01 + 00036 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00026 48 83 c0 2f add rax, 47 ; 0000002fH - 0002a 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax + 0003d 48 83 c0 2f add rax, 47 ; 0000002fH + 00041 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax -; 137 : if (_Block_size <= _Bytes) { +; 116 : if (_Block_size <= _Bytes) { - 0002e 48 8b 85 40 01 + 00045 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00035 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax - 00039 77 05 ja SHORT $LN8@Allocate_m + 0004c 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00050 77 05 ja SHORT $LN8@Allocate_m -; 138 : _Throw_bad_array_new_length(); // add overflow +; 117 : _Throw_bad_array_new_length(); // add overflow - 0003b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length + 00052 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length $LN8@Allocate_m: -; 139 : } -; 140 : -; 141 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); +; 118 : } +; 119 : +; 120 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); - 00040 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] - 00044 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate - 00049 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 00057 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] + 0005b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00060 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Allocate_m: -; 142 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] +; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] - 0004d 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 - 00052 74 02 je SHORT $LN9@Allocate_m - 00054 eb 6b jmp SHORT $LN10@Allocate_m + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 + 00069 74 02 je SHORT $LN9@Allocate_m + 0006b eb 6b jmp SHORT $LN10@Allocate_m $LN9@Allocate_m: $LN7@Allocate_m: - 00056 48 8d 05 00 00 + 0006d 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0005d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00062 48 8d 05 00 00 + 00074 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00079 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00069 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0006e 45 33 c9 xor r9d, r9d - 00071 41 b8 8e 00 00 - 00 mov r8d, 142 ; 0000008eH - 00077 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0007e b9 02 00 00 00 mov ecx, 2 - 00083 ff 15 00 00 00 + 00080 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00085 45 33 c9 xor r9d, r9d + 00088 41 b8 79 00 00 + 00 mov r8d, 121 ; 00000079H + 0008e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00095 b9 02 00 00 00 mov ecx, 2 + 0009a ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 00089 83 f8 01 cmp eax, 1 - 0008c 75 03 jne SHORT $LN12@Allocate_m - 0008e cc int 3 - 0008f 33 c0 xor eax, eax + 000a0 83 f8 01 cmp eax, 1 + 000a3 75 03 jne SHORT $LN12@Allocate_m + 000a5 cc int 3 + 000a6 33 c0 xor eax, eax $LN12@Allocate_m: - 00091 48 c7 44 24 20 + 000a8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0009a 41 b9 8e 00 00 - 00 mov r9d, 142 ; 0000008eH - 000a0 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000a7 48 8d 15 00 00 + 000b1 41 b9 79 00 00 + 00 mov r9d, 121 ; 00000079H + 000b7 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000be 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ - 000ae 48 8d 0d 00 00 + 000c5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000b5 ff 15 00 00 00 + 000cc ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000bb 33 c0 xor eax, eax - 000bd 85 c0 test eax, eax - 000bf 75 95 jne SHORT $LN7@Allocate_m + 000d2 33 c0 xor eax, eax + 000d4 85 c0 test eax, eax + 000d6 75 95 jne SHORT $LN7@Allocate_m $LN10@Allocate_m: - 000c1 33 c0 xor eax, eax - 000c3 85 c0 test eax, eax - 000c5 75 86 jne SHORT $LN4@Allocate_m + 000d8 33 c0 xor eax, eax + 000da 85 c0 test eax, eax + 000dc 75 86 jne SHORT $LN4@Allocate_m -; 143 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); +; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); - 000c7 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] - 000cb 48 83 c0 2f add rax, 47 ; 0000002fH - 000cf 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H - 000d3 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax + 000de 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] + 000e2 48 83 c0 2f add rax, 47 ; 0000002fH + 000e6 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H + 000ea 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax -; 144 : static_cast(_Ptr)[-1] = _Ptr_container; +; 123 : static_cast(_Ptr)[-1] = _Ptr_container; - 000d7 b8 08 00 00 00 mov eax, 8 - 000dc 48 6b c0 ff imul rax, rax, -1 - 000e0 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] - 000e4 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] - 000e8 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 000ee b8 08 00 00 00 mov eax, 8 + 000f3 48 6b c0 ff imul rax, rax, -1 + 000f7 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000fb 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] + 000ff 48 89 14 01 mov QWORD PTR [rcx+rax], rdx -; 145 : -; 146 : #ifdef _DEBUG -; 147 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; +; 124 : +; 125 : #ifdef _DEBUG +; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; - 000ec b8 08 00 00 00 mov eax, 8 - 000f1 48 6b c0 fe imul rax, rax, -2 - 000f5 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] - 000f9 48 ba fa fa fa + 00103 b8 08 00 00 00 mov eax, 8 + 00108 48 6b c0 fe imul rax, rax, -2 + 0010c 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 00110 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 00103 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx -; 148 : #endif // _DEBUG -; 149 : return _Ptr; +; 127 : #endif // _DEBUG +; 128 : return _Ptr; - 00107 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] + 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] $LN11@Allocate_m: -; 150 : } +; 129 : } - 0010b 48 8d a5 28 01 + 00122 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00112 5f pop rdi - 00113 5d pop rbp - 00114 c3 ret 0 + 00129 5f pop rdi + 0012a 5d pop rbp + 0012b c3 ret 0 ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ENDP ; std::_Allocate_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits ; COMDAT ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z _TEXT SEGMENT _Arg$ = 224 ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z PROC ; std::forward, COMDAT -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5357,64 +6086,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); -; 1444 : return static_cast<_Ty&&>(_Arg); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1445 : } +; 1456 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z -_TEXT SEGMENT -_It$ = 224 -??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z PROC ; std::_Voidify_iter, COMDAT - -; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 131 : if constexpr (is_pointer_v<_Iter>) { -; 132 : return const_cast(static_cast(_It)); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] - -; 133 : } else { -; 134 : return const_cast(static_cast(_STD addressof(*_It))); -; 135 : } -; 136 : } - - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z ENDP ; std::_Voidify_iter -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z _TEXT SEGMENT _Val$ = 224 @@ -5429,33 +6126,39 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ENDP ; std::addressof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT -; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5465,39 +6168,45 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 986 : // deallocate a plain pointer using an allocator -; 987 : using _Alloc_traits = allocator_traits<_Alloc>; -; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 00024 41 b8 01 00 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // deallocate a plain pointer using an allocator +; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; +; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 0003b 41 b8 01 00 00 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00031 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate - 0003d 90 npad 1 + 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 00054 90 npad 1 -; 990 : } else { -; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 993 : } -; 994 : } +; 1003 : } else { +; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 1006 : } +; 1007 : } - 0003e 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\memory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\memory ; COMDAT ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z _TEXT SEGMENT $T1 = 196 @@ -5506,7 +6215,7 @@ this$ = 256 _Ptr$ = 264 ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z PROC ; std::unique_ptr >::unique_ptr >,0>, COMDAT -; 3173 : explicit unique_ptr(pointer _Ptr) noexcept : _Mypair(_Zero_then_variadic_args_t{}, _Ptr) {} +; 2455 : explicit unique_ptr(pointer _Ptr) noexcept : _Mypair(_Zero_then_variadic_args_t{}, _Ptr) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5516,27 +6225,33 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 00 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4E2906A2_memory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 85 d8 00 + 00042 48 89 85 d8 00 00 00 mov QWORD PTR tv70[rbp], rax - 00032 4c 8d 85 08 01 + 00049 4c 8d 85 08 01 00 00 lea r8, QWORD PTR _Ptr$[rbp] - 00039 0f b6 95 c4 00 + 00050 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 00040 48 8b 8d d8 00 + 00057 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv70[rbp] - 00047 e8 00 00 00 00 call ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1> - 0004c 48 8b 85 00 01 + 0005e e8 00 00 00 00 call ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1> + 00063 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8d a5 e8 00 + 0006a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0005a 5f pop rdi - 0005b 5d pop rbp - 0005c c3 ret 0 + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ENDP ; std::unique_ptr >::unique_ptr >,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -5553,27 +6268,33 @@ $LN3: 0000c 48 81 ec c8 00 00 00 sub rsp, 200 ; 000000c8H 00013 48 8b ec mov rbp, rsp - 00016 48 8b bd e0 00 + 00016 48 8b fc mov rdi, rsp + 00019 b9 32 00 00 00 mov ecx, 50 ; 00000032H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 e8 + 00 00 00 mov rcx, QWORD PTR [rsp+232] + 0002d 48 8b bd e0 00 00 00 mov rdi, QWORD PTR this$[rbp] - 0001d 33 c0 xor eax, eax - 0001f 48 8b 8d e8 00 + 00034 33 c0 xor eax, eax + 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR classSize$[rbp] - 00026 f3 aa rep stosb - 00028 48 8d a5 c8 00 + 0003d f3 aa rep stosb + 0003f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002f 5f pop rdi - 00030 5d pop rbp - 00031 c3 ret 0 + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z ENDP ; std::unique_ptr >::__autoclassinit2 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ PROC ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first, COMDAT -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5582,33 +6303,39 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1378 : return *this; + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1379 : } +; 1345 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ ENDP ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\memory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\memory ; COMDAT ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ _TEXT SEGMENT -$T1 = 196 +$T1 = 200 this$ = 256 ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ PROC ; std::unique_ptr >::release, COMDAT -; 3258 : pointer release() noexcept { +; 2540 : pointer release() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5617,33 +6344,40 @@ $LN3: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4E2906A2_memory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3259 : return _STD exchange(_Mypair._Myval2, nullptr); +; 2541 : return _STD exchange(_Mypair._Myval2, pointer()); - 0001f 48 c7 85 c4 00 + 00036 48 c7 85 c8 00 00 00 00 00 00 00 mov QWORD PTR $T1[rbp], 0 - 0002a 48 8b 85 00 01 + 00041 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 8d 95 c4 00 + 00048 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00038 48 8b c8 mov rcx, rax - 0003b e8 00 00 00 00 call ??$exchange@PEAV_Facet_base@std@@$$T@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEA$$T@Z ; std::exchange + 0004f 48 8b c8 mov rcx, rax + 00052 e8 00 00 00 00 call ??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z ; std::exchange + 00057 90 npad 1 -; 3260 : } +; 2542 : } - 00040 48 8d a5 e8 00 + 00058 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ ENDP ; std::unique_ptr >::release _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\memory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\memory ; COMDAT ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ _TEXT SEGMENT tv77 = 192 @@ -5651,7 +6385,7 @@ tv75 = 200 this$ = 240 ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ PROC ; std::unique_ptr >::~unique_ptr >, COMDAT -; 3228 : ~unique_ptr() noexcept { +; 2510 : ~unique_ptr() noexcept { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5660,49 +6394,56 @@ $LN4: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 3229 : if (_Mypair._Myval2) { - - 0001f 48 8b 85 f0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4E2906A2_memory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2511 : if (_Mypair._Myval2) { + + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 3a je SHORT $LN2@unique_ptr + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 74 3b je SHORT $LN2@unique_ptr -; 3230 : _Mypair._Get_first()(_Mypair._Myval2); +; 2512 : _Mypair._Get_first()(_Mypair._Myval2); - 0002c 48 8b 85 f0 00 + 00043 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00033 48 8b c8 mov rcx, rax - 00036 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first - 0003b 48 89 85 c0 00 + 0004a 48 8b c8 mov rcx, rax + 0004d e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first + 00052 48 89 85 c0 00 00 00 mov QWORD PTR tv77[rbp], rax - 00042 48 8b 85 f0 00 + 00059 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8b 00 mov rax, QWORD PTR [rax] - 0004c 48 89 85 c8 00 + 00060 48 8b 00 mov rax, QWORD PTR [rax] + 00063 48 89 85 c8 00 00 00 mov QWORD PTR tv75[rbp], rax - 00053 48 8b 95 c8 00 + 0006a 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR tv75[rbp] - 0005a 48 8b 8d c0 00 + 00071 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv77[rbp] - 00061 e8 00 00 00 00 call ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ; std::default_delete::operator() + 00078 e8 00 00 00 00 call ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ; std::default_delete::operator() + 0007d 90 npad 1 $LN2@unique_ptr: -; 3231 : } -; 3232 : } +; 2513 : } +; 2514 : } - 00066 48 8d a5 d8 00 + 0007e 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0006d 5f pop rdi - 0006e 5d pop rbp - 0006f c3 ret 0 + 00085 5f pop rdi + 00086 5d pop rbp + 00087 c3 ret 0 ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ENDP ; std::unique_ptr >::~unique_ptr > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\memory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\memory ; COMDAT ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z _TEXT SEGMENT $T1 = 200 @@ -5712,7 +6453,7 @@ this$ = 272 _Ptr$ = 280 ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z PROC ; std::default_delete::operator(), COMDAT -; 3118 : void operator()(_Ty* _Ptr) const noexcept /* strengthened */ { // delete a pointer +; 2400 : void operator()(_Ty* _Ptr) const noexcept /* strengthened */ { // delete a pointer $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5722,57 +6463,63 @@ $LN5: 0000c 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F82802EA_memory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 3119 : static_assert(0 < sizeof(_Ty), "can't delete an incomplete type"); -; 3120 : delete _Ptr; - - 00024 48 8b 85 18 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4E2906A2_memory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2401 : static_assert(0 < sizeof(_Ty), "can't delete an incomplete type"); +; 2402 : delete _Ptr; + + 0003b 48 8b 85 18 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0002b 48 89 85 c8 00 + 00042 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00032 48 83 bd c8 00 + 00049 48 83 bd c8 00 00 00 00 cmp QWORD PTR $T1[rbp], 0 - 0003a 74 2f je SHORT $LN3@operator - 0003c 48 8b 85 c8 00 + 00051 74 2f je SHORT $LN3@operator + 00053 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 48 8b 00 mov rax, QWORD PTR [rax] - 00049 48 89 85 d8 00 + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 8b 00 mov rax, QWORD PTR [rax] + 00060 48 89 85 d8 00 00 00 mov QWORD PTR tv71[rbp], rax - 00050 ba 01 00 00 00 mov edx, 1 - 00055 48 8b 8d c8 00 + 00067 ba 01 00 00 00 mov edx, 1 + 0006c 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0005c ff 95 d8 00 00 + 00073 ff 95 d8 00 00 00 call QWORD PTR tv71[rbp] - 00062 48 89 85 e0 00 + 00079 48 89 85 e0 00 00 00 mov QWORD PTR tv72[rbp], rax - 00069 eb 0b jmp SHORT $LN4@operator + 00080 eb 0b jmp SHORT $LN4@operator $LN3@operator: - 0006b 48 c7 85 e0 00 + 00082 48 c7 85 e0 00 00 00 00 00 00 00 mov QWORD PTR tv72[rbp], 0 $LN4@operator: -; 3121 : } +; 2403 : } - 00076 48 8d a5 f8 00 + 0008d 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 0007d 5f pop rdi - 0007e 5d pop rbp - 0007f c3 ret 0 + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ENDP ; std::default_delete::operator() _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits ; COMDAT ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z _TEXT SEGMENT _Arg$ = 224 ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z PROC ; std::forward, COMDAT -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5781,64 +6528,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1444 : return static_cast<_Ty&&>(_Arg); + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1445 : } +; 1456 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z -_TEXT SEGMENT -_It$ = 224 -??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z PROC ; std::_Voidify_iter, COMDAT - -; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 131 : if constexpr (is_pointer_v<_Iter>) { -; 132 : return const_cast(static_cast(_It)); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] - -; 133 : } else { -; 134 : return const_cast(static_cast(_STD addressof(*_It))); -; 135 : } -; 136 : } - - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ENDP ; std::_Voidify_iter -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z _TEXT SEGMENT _Val$ = 224 @@ -5853,33 +6568,39 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ENDP ; std::addressof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Get_size_of_n@$00@std@@YA_K_K@Z _TEXT SEGMENT _Overflow_is_possible$ = 4 _Count$ = 256 ??$_Get_size_of_n@$00@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<1>, COMDAT -; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5888,45 +6609,51 @@ $LN3: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 0001f c6 45 04 00 mov BYTE PTR _Overflow_is_possible$[rbp], 0 + 00036 c6 45 04 00 mov BYTE PTR _Overflow_is_possible$[rbp], 0 -; 61 : -; 62 : if constexpr (_Overflow_is_possible) { -; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; -; 64 : if (_Count > _Max_possible) { -; 65 : _Throw_bad_array_new_length(); // multiply overflow -; 66 : } -; 67 : } -; 68 : -; 69 : return _Count * _Ty_size; +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; +; 60 : if (_Count > _Max_possible) { +; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; - 00023 48 8b 85 00 01 + 0003a 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Count$[rbp] -; 70 : } +; 66 : } - 0002a 48 8d a5 e8 00 + 00041 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ??$_Get_size_of_n@$00@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<1> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z _TEXT SEGMENT _Ptr$ = 224 _Bytes$ = 232 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5936,57 +6663,57 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 254 : if (_STD is_constant_evaluated()) { -; 255 : ::operator delete(_Ptr); -; 256 : } else -; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 258 : { -; 259 : #if defined(_M_IX86) || defined(_M_X64) -; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 00024 48 81 bd e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 215 : #if defined(_M_IX86) || defined(_M_X64) +; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0003b 48 81 bd e8 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 0002f 72 13 jb SHORT $LN2@Deallocate + 00046 72 13 jb SHORT $LN2@Deallocate -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00031 48 8d 95 e8 00 + 00048 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 00038 48 8d 8d e0 00 + 0004f 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 262 : } -; 263 : #endif // defined(_M_IX86) || defined(_M_X64) -; 264 : ::operator delete(_Ptr, _Bytes); +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); - 00044 48 8b 95 e8 00 + 0005b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 0004b 48 8b 8d e0 00 + 00062 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00057 90 npad 1 + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 -; 265 : } -; 266 : } +; 222 : } - 00058 48 8d a5 c8 00 + 0006f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT _First$ = 224 @@ -5994,7 +6721,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6005,34 +6732,41 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 947 : using _Ty = typename _Alloc::value_type; -; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 949 : for (; _First != _Last; ++_First) { -; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 951 : } -; 952 : } -; 953 : } - - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z _TEXT SEGMENT _Bytes$ = 224 ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z PROC ; std::_Allocate<16,std::_Default_allocate_traits,0>, COMDAT -; 230 : __declspec(allocator) _CONSTEXPR20_DYNALLOC void* _Allocate(const size_t _Bytes) { +; 197 : __declspec(allocator) void* _Allocate(const size_t _Bytes) { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6041,67 +6775,68 @@ $LN5: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 231 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 232 : #if defined(_M_IX86) || defined(_M_X64) -; 233 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 234 : if (!_STD is_constant_evaluated()) -; 235 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 236 : { -; 237 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0001f 48 81 bd e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 198 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 199 : #if defined(_M_IX86) || defined(_M_X64) +; 200 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00036 48 81 bd e0 00 00 00 00 10 00 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 0002a 72 0e jb SHORT $LN2@Allocate + 00041 72 0e jb SHORT $LN2@Allocate -; 238 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); +; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); - 0002c 48 8b 8d e0 00 + 00043 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00033 e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned - 00038 eb 1a jmp SHORT $LN1@Allocate + 0004a e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned + 0004f eb 1a jmp SHORT $LN1@Allocate $LN2@Allocate: -; 239 : } -; 240 : } -; 241 : #endif // defined(_M_IX86) || defined(_M_X64) -; 242 : -; 243 : if (_Bytes != 0) { +; 202 : } +; 203 : #endif // defined(_M_IX86) || defined(_M_X64) +; 204 : +; 205 : if (_Bytes != 0) { - 0003a 48 83 bd e0 00 + 00051 48 83 bd e0 00 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 - 00042 74 0e je SHORT $LN3@Allocate + 00059 74 0e je SHORT $LN3@Allocate -; 244 : return _Traits::_Allocate(_Bytes); +; 206 : return _Traits::_Allocate(_Bytes); - 00044 48 8b 8d e0 00 + 0005b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 0004b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate - 00050 eb 02 jmp SHORT $LN1@Allocate + 00062 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00067 eb 02 jmp SHORT $LN1@Allocate $LN3@Allocate: -; 245 : } -; 246 : -; 247 : return nullptr; +; 207 : } +; 208 : +; 209 : return nullptr; - 00052 33 c0 xor eax, eax + 00069 33 c0 xor eax, eax $LN1@Allocate: -; 248 : } +; 210 : } - 00054 48 8d a5 c8 00 + 0006b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ENDP ; std::_Allocate<16,std::_Default_allocate_traits,0> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z _TEXT SEGMENT _Overflow_is_possible$ = 4 @@ -6109,7 +6844,7 @@ _Max_possible$1 = 40 _Count$ = 288 ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<16>, COMDAT -; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6118,55 +6853,61 @@ $LN4: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 -; 61 : -; 62 : if constexpr (_Overflow_is_possible) { -; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 00023 48 b8 ff ff ff + 0003a 48 b8 ff ff ff ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 64 : if (_Count > _Max_possible) { +; 60 : if (_Count > _Max_possible) { - 00031 48 b8 ff ff ff + 00048 48 b8 ff ff ff ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 0003b 48 39 85 20 01 + 00052 48 39 85 20 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 00042 76 05 jbe SHORT $LN2@Get_size_o + 00059 76 05 jbe SHORT $LN2@Get_size_o -; 65 : _Throw_bad_array_new_length(); // multiply overflow +; 61 : _Throw_bad_array_new_length(); // multiply overflow - 00044 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length + 0005b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length $LN2@Get_size_o: -; 66 : } -; 67 : } -; 68 : -; 69 : return _Count * _Ty_size; +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; - 00049 48 6b 85 20 01 + 00060 48 6b 85 20 01 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 $LN3@Get_size_o: -; 70 : } +; 66 : } - 00051 48 8d a5 08 01 + 00068 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00058 5f pop rdi - 00059 5d pop rbp - 0005a c3 ret 0 + 0006f 5f pop rdi + 00070 5d pop rbp + 00071 c3 ret 0 ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility ; COMDAT ??$max@_K@std@@YAAEB_KAEB_K0@Z _TEXT SEGMENT $T1 = 200 @@ -6185,49 +6926,55 @@ $LN5: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 43 : // return larger of _Left and _Right ; 44 : return _Left < _Right ? _Right : _Left; - 00024 48 8b 85 00 01 + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 0002b 48 8b 8d 08 01 + 00042 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00032 48 8b 09 mov rcx, QWORD PTR [rcx] - 00035 48 39 08 cmp QWORD PTR [rax], rcx - 00038 73 10 jae SHORT $LN3@max - 0003a 48 8b 85 08 01 + 00049 48 8b 09 mov rcx, QWORD PTR [rcx] + 0004c 48 39 08 cmp QWORD PTR [rax], rcx + 0004f 73 10 jae SHORT $LN3@max + 00051 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00041 48 89 85 d8 00 + 00058 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax - 00048 eb 0e jmp SHORT $LN4@max + 0005f eb 0e jmp SHORT $LN4@max $LN3@max: - 0004a 48 8b 85 00 01 + 00061 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00051 48 89 85 d8 00 + 00068 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax $LN4@max: - 00058 48 8b 85 d8 00 + 0006f 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv65[rbp] - 0005f 48 89 85 c8 00 + 00076 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8b 85 c8 00 + 0007d 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] ; 45 : } - 0006d 48 8d a5 e8 00 + 00084 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ??$max@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$_Unfancy@D@std@@YAPEADPEAD@Z _TEXT SEGMENT _Ptr$ = 224 @@ -6242,26 +6989,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$_Unfancy@D@std@@YAPEADPEAD@Z ENDP ; std::_Unfancy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z _TEXT SEGMENT $T1 = 200 @@ -6269,7 +7022,7 @@ _Obj$ = 256 <_Args_0>$ = 264 ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z PROC ; std::_Construct_in_place, COMDAT -; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6279,46 +7032,44 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 8d 00 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 0002b e8 00 00 00 00 call ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ; std::addressof - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAPEAD@std@@YAPEAXPEAPEAD@Z ; std::_Voidify_iter - 00038 48 8b d0 mov rdx, rax - 0003b b9 08 00 00 00 mov ecx, 8 - 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00045 48 89 85 c8 00 + 00042 e8 00 00 00 00 call ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ; std::addressof + 00047 48 8b d0 mov rdx, rax + 0004a b9 08 00 00 00 mov ecx, 8 + 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00054 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0004c 48 8b 8d 08 01 + 0005b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00053 e8 00 00 00 00 call ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward - 00058 48 8b 8d c8 00 + 00062 e8 00 00 00 00 call ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward + 00067 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0005f 48 8b 00 mov rax, QWORD PTR [rax] - 00062 48 89 01 mov QWORD PTR [rcx], rax - -; 152 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 153 : if (_STD is_constant_evaluated()) { -; 154 : _STD construct_at(_STD addressof(_Obj), _STD forward<_Types>(_Args)...); -; 155 : } else -; 156 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 157 : { -; 158 : ::new (_Voidify_iter(_STD addressof(_Obj))) _Ty(_STD forward<_Types>(_Args)...); -; 159 : } -; 160 : } - - 00065 48 8d a5 e8 00 + 0006e 48 8b 00 mov rax, QWORD PTR [rax] + 00071 48 89 01 mov QWORD PTR [rcx], rax + +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 00074 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0006c 5f pop rdi - 0006d 5d pop rbp - 0006e c3 ret 0 + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ENDP ; std::_Construct_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z _TEXT SEGMENT _My_data$ = 8 @@ -6337,7 +7088,7 @@ _Fn$ = 528 <_Args_0>$ = 536 ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z PROC ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char>, COMDAT -; 4538 : const size_type _Size_increase, _Fty _Fn, _ArgTys... _Args) { +; 4244 : basic_string& _Reallocate_grow_by(const size_type _Size_increase, _Fty _Fn, _ArgTys... _Args) { $LN6: 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b @@ -6349,237 +7100,231 @@ $LN6: 00016 48 81 ec 18 02 00 00 sub rsp, 536 ; 00000218H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00027 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 38 + 00022 48 8b fc mov rdi, rsp + 00025 b9 86 00 00 00 mov ecx, 134 ; 00000086H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 d8 01 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 d8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4539 : // reallocate to increase size by _Size_increase elements, new buffer prepared by -; 4540 : // _Fn(_New_ptr, _Old_ptr, _Old_size, _Args...) -; 4541 : auto& _My_data = _Mypair._Myval2; +; 4245 : // reallocate to increase size by _Size_increase elements, new buffer prepared by +; 4246 : // _Fn(_New_ptr, _Old_ptr, _Old_size, _Args...) +; 4247 : auto& _My_data = _Mypair._Myval2; - 00058 48 8b 85 00 02 + 00056 48 8b 85 00 02 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0005d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 4542 : const size_type _Old_size = _My_data._Mysize; +; 4248 : const size_type _Old_size = _My_data._Mysize; - 00063 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00067 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0006b 48 89 45 28 mov QWORD PTR _Old_size$[rbp], rax + 00061 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00065 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00069 48 89 45 28 mov QWORD PTR _Old_size$[rbp], rax -; 4543 : if (max_size() - _Old_size < _Size_increase) { +; 4249 : if (max_size() - _Old_size < _Size_increase) { - 0006f 48 8b 8d 00 02 + 0006d 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 e8 00 00 00 00 call ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size - 0007b 48 2b 45 28 sub rax, QWORD PTR _Old_size$[rbp] - 0007f 48 3b 85 08 02 + 00074 e8 00 00 00 00 call ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size + 00079 48 2b 45 28 sub rax, QWORD PTR _Old_size$[rbp] + 0007d 48 3b 85 08 02 00 00 cmp rax, QWORD PTR _Size_increase$[rbp] - 00086 73 05 jae SHORT $LN2@Reallocate + 00084 73 05 jae SHORT $LN2@Reallocate -; 4544 : _Xlen_string(); // result too long +; 4250 : _Xlen_string(); // result too long - 00088 e8 00 00 00 00 call ?_Xlen_string@std@@YAXXZ ; std::_Xlen_string + 00086 e8 00 00 00 00 call ?_Xlen_string@std@@YAXXZ ; std::_Xlen_string $LN2@Reallocate: -; 4545 : } -; 4546 : -; 4547 : const size_type _New_size = _Old_size + _Size_increase; +; 4251 : } +; 4252 : +; 4253 : const size_type _New_size = _Old_size + _Size_increase; - 0008d 48 8b 85 08 02 + 0008b 48 8b 85 08 02 00 00 mov rax, QWORD PTR _Size_increase$[rbp] - 00094 48 8b 4d 28 mov rcx, QWORD PTR _Old_size$[rbp] - 00098 48 03 c8 add rcx, rax - 0009b 48 8b c1 mov rax, rcx - 0009e 48 89 45 48 mov QWORD PTR _New_size$[rbp], rax + 00092 48 8b 4d 28 mov rcx, QWORD PTR _Old_size$[rbp] + 00096 48 03 c8 add rcx, rax + 00099 48 8b c1 mov rax, rcx + 0009c 48 89 45 48 mov QWORD PTR _New_size$[rbp], rax -; 4548 : const size_type _Old_capacity = _My_data._Myres; +; 4254 : const size_type _Old_capacity = _My_data._Myres; - 000a2 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 000a6 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 000aa 48 89 45 68 mov QWORD PTR _Old_capacity$[rbp], rax + 000a0 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 000a4 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 000a8 48 89 45 68 mov QWORD PTR _Old_capacity$[rbp], rax -; 4549 : const size_type _New_capacity = _Calculate_growth(_New_size); +; 4255 : const size_type _New_capacity = _Calculate_growth(_New_size); - 000ae 48 8b 55 48 mov rdx, QWORD PTR _New_size$[rbp] - 000b2 48 8b 8d 00 02 + 000ac 48 8b 55 48 mov rdx, QWORD PTR _New_size$[rbp] + 000b0 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000b9 e8 00 00 00 00 call ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z ; std::basic_string,std::allocator >::_Calculate_growth - 000be 48 89 85 88 00 + 000b7 e8 00 00 00 00 call ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z ; std::basic_string,std::allocator >::_Calculate_growth + 000bc 48 89 85 88 00 00 00 mov QWORD PTR _New_capacity$[rbp], rax -; 4550 : auto& _Al = _Getal(); +; 4256 : auto& _Al = _Getal(); - 000c5 48 8b 8d 00 02 + 000c3 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000cc e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal - 000d1 48 89 85 a8 00 + 000ca e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 000cf 48 89 85 a8 00 00 00 mov QWORD PTR _Al$[rbp], rax -; 4551 : const pointer _New_ptr = _Al.allocate(_New_capacity + 1); // throws +; 4257 : const pointer _New_ptr = _Al.allocate(_New_capacity + 1); // throws - 000d8 48 8b 85 88 00 + 000d6 48 8b 85 88 00 00 00 mov rax, QWORD PTR _New_capacity$[rbp] - 000df 48 83 c0 01 add rax, 1 - 000e3 48 c7 c1 ff ff + 000dd 48 83 c0 01 add rax, 1 + 000e1 48 c7 c1 ff ff ff ff mov rcx, -1 - 000ea 48 0f 42 c1 cmovb rax, rcx - 000ee 48 8b d0 mov rdx, rax - 000f1 48 8b 8d a8 00 + 000e8 48 0f 42 c1 cmovb rax, rcx + 000ec 48 8b d0 mov rdx, rax + 000ef 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 000f8 e8 00 00 00 00 call ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z ; std::allocator::allocate - 000fd 48 89 85 c8 00 + 000f6 e8 00 00 00 00 call ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z ; std::allocator::allocate + 000fb 48 89 85 c8 00 00 00 mov QWORD PTR _New_ptr$[rbp], rax -; 4552 : -; 4553 : #ifdef __cpp_lib_constexpr_string -; 4554 : if (_STD is_constant_evaluated()) { // Begin the lifetimes of the objects before copying to avoid UB -; 4555 : _Traits::assign(_Unfancy(_New_ptr), _New_capacity + 1, _Elem()); -; 4556 : } -; 4557 : #endif // __cpp_lib_constexpr_string -; 4558 : _My_data._Orphan_all(); +; 4258 : _My_data._Orphan_all(); - 00104 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00108 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 00102 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00106 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 4559 : _My_data._Mysize = _New_size; +; 4259 : _My_data._Mysize = _New_size; - 0010d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00111 48 8b 4d 48 mov rcx, QWORD PTR _New_size$[rbp] - 00115 48 89 48 18 mov QWORD PTR [rax+24], rcx + 0010b 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0010f 48 8b 4d 48 mov rcx, QWORD PTR _New_size$[rbp] + 00113 48 89 48 18 mov QWORD PTR [rax+24], rcx -; 4560 : _My_data._Myres = _New_capacity; +; 4260 : _My_data._Myres = _New_capacity; - 00119 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0011d 48 8b 8d 88 00 + 00117 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0011b 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _New_capacity$[rbp] - 00124 48 89 48 20 mov QWORD PTR [rax+32], rcx + 00122 48 89 48 20 mov QWORD PTR [rax+32], rcx -; 4561 : _Elem* const _Raw_new = _Unfancy(_New_ptr); +; 4261 : _Elem* const _Raw_new = _Unfancy(_New_ptr); - 00128 48 8b 8d c8 00 + 00126 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] - 0012f e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy - 00134 48 89 85 e8 00 + 0012d e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 00132 48 89 85 e8 00 00 00 mov QWORD PTR _Raw_new$[rbp], rax -; 4562 : if (_BUF_SIZE <= _Old_capacity) { +; 4262 : if (_BUF_SIZE <= _Old_capacity) { - 0013b 48 83 7d 68 10 cmp QWORD PTR _Old_capacity$[rbp], 16 - 00140 72 6e jb SHORT $LN3@Reallocate + 00139 48 83 7d 68 10 cmp QWORD PTR _Old_capacity$[rbp], 16 + 0013e 72 6e jb SHORT $LN3@Reallocate -; 4563 : const pointer _Old_ptr = _My_data._Bx._Ptr; +; 4263 : const pointer _Old_ptr = _My_data._Bx._Ptr; - 00142 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00146 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0014a 48 89 85 08 01 + 00140 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00144 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00148 48 89 85 08 01 00 00 mov QWORD PTR _Old_ptr$4[rbp], rax -; 4564 : _Fn(_Raw_new, _Unfancy(_Old_ptr), _Old_size, _Args...); +; 4264 : _Fn(_Raw_new, _Unfancy(_Old_ptr), _Old_size, _Args...); - 00151 48 8b 8d 08 01 + 0014f 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Old_ptr$4[rbp] - 00158 e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy - 0015d 0f b6 8d 18 02 + 00156 e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 0015b 0f b6 8d 18 02 00 00 movzx ecx, BYTE PTR <_Args_0>$[rbp] - 00164 88 4c 24 20 mov BYTE PTR [rsp+32], cl - 00168 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] - 0016c 4c 8b c0 mov r8, rax - 0016f 48 8b 95 e8 00 + 00162 88 4c 24 20 mov BYTE PTR [rsp+32], cl + 00166 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] + 0016a 4c 8b c0 mov r8, rax + 0016d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Raw_new$[rbp] - 00176 48 8d 8d 10 02 + 00174 48 8d 8d 10 02 00 00 lea rcx, QWORD PTR _Fn$[rbp] - 0017d e8 00 00 00 00 call ??R@@QEBA@QEADQEBD_KD@Z ; ::operator() + 0017b e8 00 00 00 00 call ??R@@QEBAXQEADQEBD_KD@Z ; ::operator() -; 4565 : _Al.deallocate(_Old_ptr, _Old_capacity + 1); +; 4265 : _Al.deallocate(_Old_ptr, _Old_capacity + 1); - 00182 48 8b 45 68 mov rax, QWORD PTR _Old_capacity$[rbp] - 00186 48 ff c0 inc rax - 00189 4c 8b c0 mov r8, rax - 0018c 48 8b 95 08 01 + 00180 48 8b 45 68 mov rax, QWORD PTR _Old_capacity$[rbp] + 00184 48 ff c0 inc rax + 00187 4c 8b c0 mov r8, rax + 0018a 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Old_ptr$4[rbp] - 00193 48 8b 8d a8 00 + 00191 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 0019a e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate + 00198 e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate -; 4566 : _My_data._Bx._Ptr = _New_ptr; +; 4266 : _My_data._Bx._Ptr = _New_ptr; - 0019f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 001a3 48 8b 8d c8 00 + 0019d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001a1 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] - 001aa 48 89 48 08 mov QWORD PTR [rax+8], rcx + 001a8 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 4567 : } else { +; 4267 : } else { - 001ae eb 44 jmp SHORT $LN4@Reallocate + 001ac eb 44 jmp SHORT $LN4@Reallocate $LN3@Reallocate: -; 4568 : _Fn(_Raw_new, _My_data._Bx._Buf, _Old_size, _Args...); +; 4268 : _Fn(_Raw_new, _My_data._Bx._Buf, _Old_size, _Args...); - 001b0 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 001b4 48 83 c0 08 add rax, 8 - 001b8 0f b6 8d 18 02 + 001ae 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001b2 48 83 c0 08 add rax, 8 + 001b6 0f b6 8d 18 02 00 00 movzx ecx, BYTE PTR <_Args_0>$[rbp] - 001bf 88 4c 24 20 mov BYTE PTR [rsp+32], cl - 001c3 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] - 001c7 4c 8b c0 mov r8, rax - 001ca 48 8b 95 e8 00 + 001bd 88 4c 24 20 mov BYTE PTR [rsp+32], cl + 001c1 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] + 001c5 4c 8b c0 mov r8, rax + 001c8 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Raw_new$[rbp] - 001d1 48 8d 8d 10 02 + 001cf 48 8d 8d 10 02 00 00 lea rcx, QWORD PTR _Fn$[rbp] - 001d8 e8 00 00 00 00 call ??R@@QEBA@QEADQEBD_KD@Z ; ::operator() + 001d6 e8 00 00 00 00 call ??R@@QEBAXQEADQEBD_KD@Z ; ::operator() -; 4569 : _Construct_in_place(_My_data._Bx._Ptr, _New_ptr); +; 4269 : _Construct_in_place(_My_data._Bx._Ptr, _New_ptr); - 001dd 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 001e1 48 83 c0 08 add rax, 8 - 001e5 48 8d 95 c8 00 + 001db 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001df 48 83 c0 08 add rax, 8 + 001e3 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR _New_ptr$[rbp] - 001ec 48 8b c8 mov rcx, rax - 001ef e8 00 00 00 00 call ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ; std::_Construct_in_place + 001ea 48 8b c8 mov rcx, rax + 001ed e8 00 00 00 00 call ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ; std::_Construct_in_place $LN4@Reallocate: -; 4570 : } -; 4571 : -; 4572 : return *this; +; 4270 : } +; 4271 : +; 4272 : return *this; - 001f4 48 8b 85 00 02 + 001f2 48 8b 85 00 02 00 00 mov rax, QWORD PTR this$[rbp] $LN5@Reallocate: -; 4573 : } +; 4273 : } - 001fb 48 8b f8 mov rdi, rax - 001fe 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00202 48 8d 15 00 00 + 001f9 48 8b f8 mov rdi, rax + 001fc 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00200 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcFrameData - 00209 e8 00 00 00 00 call _RTC_CheckStackVars - 0020e 48 8b c7 mov rax, rdi - 00211 48 8b 8d d8 01 + 00207 e8 00 00 00 00 call _RTC_CheckStackVars + 0020c 48 8b c7 mov rax, rdi + 0020f 48 8b 8d d8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00218 48 33 cd xor rcx, rbp - 0021b e8 00 00 00 00 call __security_check_cookie - 00220 48 8d a5 e8 01 + 00216 48 33 cd xor rcx, rbp + 00219 e8 00 00 00 00 call __security_check_cookie + 0021e 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] - 00227 5f pop rdi - 00228 5d pop rbp - 00229 c3 ret 0 + 00225 5f pop rdi + 00226 5d pop rbp + 00227 c3 ret 0 ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ENDP ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring -; COMDAT ??R@@QEBA@QEADQEBD_KD@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ??R@@QEBAXQEADQEBD_KD@Z _TEXT SEGMENT $T1 = 196 this$ = 256 @@ -6587,9 +7332,9 @@ _New_ptr$ = 264 _Old_ptr$ = 272 _Old_size$ = 280 _Ch$ = 288 -??R@@QEBA@QEADQEBD_KD@Z PROC ; ::operator(), COMDAT +??R@@QEBAXQEADQEBD_KD@Z PROC ; ::operator(), COMDAT -; 3873 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { +; 3619 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -6601,64 +7346,70 @@ $LN3: 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3874 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); +; 3620 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); - 0002e 4c 8b 85 18 01 + 00045 4c 8b 85 18 01 00 00 mov r8, QWORD PTR _Old_size$[rbp] - 00035 48 8b 95 10 01 + 0004c 48 8b 95 10 01 00 00 mov rdx, QWORD PTR _Old_ptr$[rbp] - 0003c 48 8b 8d 08 01 + 00053 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] - 00043 e8 00 00 00 00 call ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy + 0005a e8 00 00 00 00 call ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy -; 3875 : _Traits::assign(_New_ptr[_Old_size], _Ch); +; 3621 : _Traits::assign(_New_ptr[_Old_size], _Ch); - 00048 48 8b 85 18 01 + 0005f 48 8b 85 18 01 00 00 mov rax, QWORD PTR _Old_size$[rbp] - 0004f 48 8b 8d 08 01 + 00066 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] - 00056 48 03 c8 add rcx, rax - 00059 48 8b c1 mov rax, rcx - 0005c 48 8d 95 20 01 + 0006d 48 03 c8 add rcx, rax + 00070 48 8b c1 mov rax, rcx + 00073 48 8d 95 20 01 00 00 lea rdx, QWORD PTR _Ch$[rbp] - 00063 48 8b c8 mov rcx, rax - 00066 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 0007a 48 8b c8 mov rcx, rax + 0007d e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 3876 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); +; 3622 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); - 0006b c6 85 c4 00 00 + 00082 c6 85 c4 00 00 00 00 mov BYTE PTR $T1[rbp], 0 - 00072 48 8b 85 08 01 + 00089 48 8b 85 08 01 00 00 mov rax, QWORD PTR _New_ptr$[rbp] - 00079 48 8b 8d 18 01 + 00090 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR _Old_size$[rbp] - 00080 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] - 00085 48 8d 95 c4 00 + 00097 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] + 0009c 48 8d 95 c4 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 000a3 48 8b c8 mov rcx, rax + 000a6 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 3877 : }, +; 3623 : }, - 00094 48 8d a5 e8 00 + 000ab 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0009b 5f pop rdi - 0009c 5d pop rbp - 0009d c3 ret 0 -??R@@QEBA@QEADQEBD_KD@Z ENDP ; ::operator() + 000b2 5f pop rdi + 000b3 5d pop rbp + 000b4 c3 ret 0 +??R@@QEBAXQEADQEBD_KD@Z ENDP ; ::operator() _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z _TEXT SEGMENT _Obj$ = 224 ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z PROC ; std::_Destroy_in_place, COMDAT -; 307 : _CONSTEXPR20_DYNALLOC void _Destroy_in_place(_Ty& _Obj) noexcept { +; 267 : void _Destroy_in_place(_Ty& _Obj) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6667,26 +7418,29 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 308 : if constexpr (is_array_v<_Ty>) { -; 309 : _Destroy_range(_Obj, _Obj + extent_v<_Ty>); -; 310 : } else { -; 311 : _Obj.~_Ty(); -; 312 : } -; 313 : } - - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + +; 268 : _Obj.~_Ty(); +; 269 : } + + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ENDP ; std::_Destroy_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z _TEXT SEGMENT _Val$ = 224 @@ -6701,26 +7455,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ENDP ; std::addressof const > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z _TEXT SEGMENT _Ptr$ = 224 @@ -6735,35 +7495,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ENDP ; std::_Unfancy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><>, COMDAT -; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} -$LN3: +$LN4: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp @@ -6771,34 +7537,40 @@ $LN3: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002a e8 00 00 00 00 call ??0?$allocator@D@std@@QEAA@XZ ; std::allocator::allocator - 0002f 48 8b 85 e0 00 + 00041 e8 00 00 00 00 call ??0?$allocator@D@std@@QEAA@XZ ; std::allocator::allocator + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00036 48 8b c8 mov rcx, rax - 00039 e8 00 00 00 00 call ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_String_val > - 0003e 48 8b 85 e0 00 + 0004d 48 8b c8 mov rcx, rax + 00050 e8 00 00 00 00 call ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_String_val > + 00055 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00045 48 8d a5 c8 00 + 0005c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004c 5f pop rdi - 0004d 5d pop rbp - 0004e c3 ret 0 + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z PROC ; std::allocator::allocator, COMDAT -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6808,20 +7580,26 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z _TEXT SEGMENT _New_proxy$ = 8 @@ -6830,7 +7608,7 @@ this$ = 288 _Al$ = 296 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT -; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { +; 1101 : void _Alloc_proxy(_Alloc&& _Al) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6840,62 +7618,68 @@ $LN3: 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); +; 1102 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); - 00024 ba 01 00 00 00 mov edx, 1 - 00029 48 8b 8d 28 01 + 0003b ba 01 00 00 00 mov edx, 1 + 00040 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00030 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy - 0003d 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax + 00047 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate + 0004c 48 8b c8 mov rcx, rax + 0004f e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy + 00054 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax -; 1075 : _Construct_in_place(*_New_proxy, this); +; 1103 : _Construct_in_place(*_New_proxy, this); - 00041 48 8b 85 20 01 + 00058 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 89 85 e8 00 + 0005f 48 89 85 e8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0004f 48 8d 95 e8 00 + 00066 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00056 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 0005a e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00071 e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place -; 1076 : _Myproxy = _New_proxy; +; 1104 : _Myproxy = _New_proxy; - 0005f 48 8b 85 20 01 + 00076 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 0006a 48 89 08 mov QWORD PTR [rax], rcx + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00081 48 89 08 mov QWORD PTR [rax], rcx -; 1077 : _New_proxy->_Mycont = this; +; 1105 : _New_proxy->_Mycont = this; - 0006d 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] - 00071 48 8b 8d 20 01 + 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00088 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00078 48 89 08 mov QWORD PTR [rax], rcx + 0008f 48 89 08 mov QWORD PTR [rax], rcx -; 1078 : } +; 1106 : } - 0007b 48 8d a5 08 01 + 00092 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00082 5f pop rdi - 00083 5d pop rbp - 00084 c3 ret 0 + 00099 5f pop rdi + 0009a 5d pop rbp + 0009b c3 ret 0 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream ; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ _TEXT SEGMENT this$ = 224 ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT -; 124 : explicit __CLR_OR_THIS_CALL operator bool() const { +; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6904,27 +7688,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 125 : return _Ok; + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 126 : return _Ok; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 0f b6 40 08 movzx eax, BYTE PTR [rax+8] + 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] -; 126 : } +; 127 : } - 0002a 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ENDP ; std::basic_ostream >::sentry::operator bool _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream ; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Zero_uncaught_exceptions$ = 4 @@ -6932,7 +7722,7 @@ tv72 = 212 this$ = 256 ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT -; 109 : __CLR_OR_THIS_CALL ~sentry() noexcept { +; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { $LN6: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6941,65 +7731,71 @@ $LN6: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 110 : #if !_HAS_EXCEPTIONS -; 111 : const bool _Zero_uncaught_exceptions = true; -; 112 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 113 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 - - 0001f e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception - 00024 0f b6 c0 movzx eax, al - 00027 85 c0 test eax, eax - 00029 75 09 jne SHORT $LN4@sentry - 0002b c6 85 d4 00 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 111 : #if !_HAS_EXCEPTIONS +; 112 : const bool _Zero_uncaught_exceptions = true; +; 113 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 114 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 + + 00036 e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception + 0003b 0f b6 c0 movzx eax, al + 0003e 85 c0 test eax, eax + 00040 75 09 jne SHORT $LN4@sentry + 00042 c6 85 d4 00 00 00 01 mov BYTE PTR tv72[rbp], 1 - 00032 eb 07 jmp SHORT $LN5@sentry + 00049 eb 07 jmp SHORT $LN5@sentry $LN4@sentry: - 00034 c6 85 d4 00 00 + 0004b c6 85 d4 00 00 00 00 mov BYTE PTR tv72[rbp], 0 $LN5@sentry: - 0003b 0f b6 85 d4 00 + 00052 0f b6 85 d4 00 00 00 movzx eax, BYTE PTR tv72[rbp] - 00042 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al + 00059 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al -; 114 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv -; 115 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; -; 116 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 117 : -; 118 : if (_Zero_uncaught_exceptions) { +; 115 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv +; 116 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; +; 117 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 118 : +; 119 : if (_Zero_uncaught_exceptions) { - 00045 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] - 00049 85 c0 test eax, eax - 0004b 74 10 je SHORT $LN2@sentry + 0005c 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] + 00060 85 c0 test eax, eax + 00062 74 10 je SHORT $LN2@sentry -; 119 : this->_Myostr._Osfx(); +; 120 : this->_Myostr._Osfx(); - 0004d 48 8b 85 00 01 + 00064 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ $LN2@sentry: -; 120 : } -; 121 : } +; 121 : } +; 122 : } - 0005d 48 8b 8d 00 01 + 00074 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00064 e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00069 90 npad 1 - 0006a 48 8d a5 e8 00 + 0007b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00080 90 npad 1 + 00081 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 00088 5f pop rdi + 00089 5d pop rbp + 0008a c3 ret 0 ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream ; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Tied$ = 8 @@ -7017,117 +7813,124 @@ $LN7: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 95 08 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 0002b 48 8b 8d 00 01 + 00042 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base - 00037 90 npad 1 + 00049 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base + 0004e 90 npad 1 ; 93 : if (!_Ostr.good()) { - 00038 48 8b 85 08 01 + 0004f 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0003f 48 8b 00 mov rax, QWORD PTR [rax] - 00042 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00046 48 8b 8d 08 01 + 00056 48 8b 00 mov rax, QWORD PTR [rax] + 00059 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005d 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0004d 48 03 c8 add rcx, rax - 00050 48 8b c1 mov rax, rcx - 00053 48 8b c8 mov rcx, rax - 00056 ff 15 00 00 00 + 00064 48 03 c8 add rcx, rax + 00067 48 8b c1 mov rax, rcx + 0006a 48 8b c8 mov rcx, rax + 0006d ff 15 00 00 00 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 0005c 0f b6 c0 movzx eax, al - 0005f 85 c0 test eax, eax - 00061 75 10 jne SHORT $LN2@sentry + 00073 0f b6 c0 movzx eax, al + 00076 85 c0 test eax, eax + 00078 75 10 jne SHORT $LN2@sentry ; 94 : _Ok = false; - 00063 48 8b 85 00 01 + 0007a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a c6 40 08 00 mov BYTE PTR [rax+8], 0 + 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 ; 95 : return; - 0006e e9 81 00 00 00 jmp $LN1@sentry + 00085 e9 81 00 00 00 jmp $LN1@sentry $LN2@sentry: ; 96 : } ; 97 : ; 98 : const auto _Tied = _Ostr.tie(); - 00073 48 8b 85 08 01 + 0008a 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00081 48 8b 8d 08 01 + 00091 48 8b 00 mov rax, QWORD PTR [rax] + 00094 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00098 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00088 48 03 c8 add rcx, rax - 0008b 48 8b c1 mov rax, rcx - 0008e 48 8b c8 mov rcx, rax - 00091 ff 15 00 00 00 + 0009f 48 03 c8 add rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 8b c8 mov rcx, rax + 000a8 ff 15 00 00 00 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ - 00097 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax + 000ae 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax ; 99 : if (!_Tied || _Tied == &_Ostr) { - 0009b 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 - 000a0 74 0d je SHORT $LN4@sentry - 000a2 48 8b 85 08 01 + 000b2 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 + 000b7 74 0d je SHORT $LN4@sentry + 000b9 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000a9 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000ad 75 0d jne SHORT $LN3@sentry + 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax + 000c4 75 0d jne SHORT $LN3@sentry $LN4@sentry: ; 100 : _Ok = true; - 000af 48 8b 85 00 01 + 000c6 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000b6 c6 40 08 01 mov BYTE PTR [rax+8], 1 + 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 ; 101 : return; - 000ba eb 38 jmp SHORT $LN1@sentry + 000d1 eb 38 jmp SHORT $LN1@sentry $LN3@sentry: ; 102 : } ; 103 : -; 104 : _Tied->flush(); +; 104 : +; 105 : _Tied->flush(); - 000bc 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000c0 ff 15 00 00 00 + 000d3 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] + 000d7 ff 15 00 00 00 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ -; 105 : _Ok = _Ostr.good(); // store test only after flushing tie +; 106 : _Ok = _Ostr.good(); // store test only after flushing tie - 000c6 48 8b 85 08 01 + 000dd 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000cd 48 8b 00 mov rax, QWORD PTR [rax] - 000d0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000d4 48 8b 8d 08 01 + 000e4 48 8b 00 mov rax, QWORD PTR [rax] + 000e7 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000eb 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000db 48 03 c8 add rcx, rax - 000de 48 8b c1 mov rax, rcx - 000e1 48 8b c8 mov rcx, rax - 000e4 ff 15 00 00 00 + 000f2 48 03 c8 add rcx, rax + 000f5 48 8b c1 mov rax, rcx + 000f8 48 8b c8 mov rcx, rax + 000fb ff 15 00 00 00 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 000ea 48 8b 8d 00 01 + 00101 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f1 88 41 08 mov BYTE PTR [rcx+8], al + 00108 88 41 08 mov BYTE PTR [rcx+8], al $LN1@sentry: -; 106 : } +; 107 : } - 000f4 48 8b 85 00 01 + 0010b 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 8d a5 e8 00 + 00112 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00102 5f pop rdi - 00103 5d pop rbp - 00104 c3 ret 0 + 00119 5f pop rdi + 0011a 5d pop rbp + 0011b c3 ret 0 ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry _TEXT ENDS ; COMDAT text$x @@ -7174,7 +7977,7 @@ _Ostr$ = 264 ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream ; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Rdbuf$ = 8 @@ -7191,56 +7994,62 @@ $LN4: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 79 : const auto _Rdbuf = _Myostr.rdbuf(); - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 89 85 d8 00 + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 85 d8 00 00 00 mov QWORD PTR tv72[rbp], rax - 00030 48 8b 85 d8 00 + 00047 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv72[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0003e 48 8b 8d d8 00 + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00055 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv72[rbp] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b 48 8b c8 mov rcx, rax - 0004e ff 15 00 00 00 + 0005c 48 03 c8 add rcx, rax + 0005f 48 8b c1 mov rax, rcx + 00062 48 8b c8 mov rcx, rax + 00065 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00054 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 80 : if (_Rdbuf) { - 00058 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0005d 74 0f je SHORT $LN2@Sentry_bas + 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00074 74 0f je SHORT $LN2@Sentry_bas ; 81 : _Rdbuf->_Unlock(); - 0005f 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00063 48 8b 00 mov rax, QWORD PTR [rax] - 00066 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 0006a ff 50 10 call QWORD PTR [rax+16] - 0006d 90 npad 1 + 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00081 ff 50 10 call QWORD PTR [rax+16] + 00084 90 npad 1 $LN2@Sentry_bas: ; 82 : } ; 83 : } - 0006e 48 8d a5 e8 00 + 00085 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream ; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Rdbuf$ = 8 @@ -7259,69 +8068,75 @@ $LN4: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 00 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d 08 01 + 00042 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00032 48 89 08 mov QWORD PTR [rax], rcx + 00049 48 89 08 mov QWORD PTR [rax], rcx ; 72 : const auto _Rdbuf = _Myostr.rdbuf(); - 00035 48 8b 85 00 01 + 0004c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 8b 00 mov rax, QWORD PTR [rax] - 0003f 48 89 85 d8 00 + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 89 85 d8 00 00 00 mov QWORD PTR tv73[rbp], rax - 00046 48 8b 85 d8 00 + 0005d 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv73[rbp] - 0004d 48 8b 00 mov rax, QWORD PTR [rax] - 00050 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00054 48 8b 8d d8 00 + 00064 48 8b 00 mov rax, QWORD PTR [rax] + 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0006b 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv73[rbp] - 0005b 48 03 c8 add rcx, rax - 0005e 48 8b c1 mov rax, rcx - 00061 48 8b c8 mov rcx, rax - 00064 ff 15 00 00 00 + 00072 48 03 c8 add rcx, rax + 00075 48 8b c1 mov rax, rcx + 00078 48 8b c8 mov rcx, rax + 0007b ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0006a 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 73 : if (_Rdbuf) { - 0006e 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00073 74 0e je SHORT $LN2@Sentry_bas + 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0008a 74 0e je SHORT $LN2@Sentry_bas ; 74 : _Rdbuf->_Lock(); - 00075 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00079 48 8b 00 mov rax, QWORD PTR [rax] - 0007c 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00080 ff 50 08 call QWORD PTR [rax+8] + 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00090 48 8b 00 mov rax, QWORD PTR [rax] + 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00097 ff 50 08 call QWORD PTR [rax+8] $LN2@Sentry_bas: ; 75 : } ; 76 : } - 00083 48 8b 85 00 01 + 0009a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008a 48 8d a5 e8 00 + 000a1 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 + 000a8 5f pop rdi + 000a9 5d pop rbp + 000aa c3 ret 0 ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z _TEXT SEGMENT _Al$ = 224 _Ptr$ = 232 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT -; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7331,32 +8146,39 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1000 : using _Ty = typename _Alloc::value_type; -; 1001 : _Ptr->~_Ty(); -; 1002 : _Deallocate_plain(_Al, _Ptr); - - 00024 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1028 : using _Ty = typename _Alloc::value_type; +; 1029 : _Ptr->~_Ty(); +; 1030 : _Deallocate_plain(_Al, _Ptr); + + 0003b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0002b 48 8b 8d e0 00 + 00042 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0004e 90 npad 1 -; 1003 : } +; 1031 : } - 00037 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility ; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT _Old_val$ = 8 @@ -7364,7 +8186,7 @@ _Val$ = 256 _New_val$ = 264 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7374,49 +8196,55 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 615 : // assign _New_val to _Val, return previous _Val -; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 00024 48 8b 85 00 01 + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 617 : _Val = static_cast<_Other&&>(_New_val); +; 600 : _Val = static_cast<_Other&&>(_New_val); - 00032 48 8b 85 00 01 + 00049 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00039 48 8b 8d 08 01 + 00050 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00040 48 8b 09 mov rcx, QWORD PTR [rcx] - 00043 48 89 08 mov QWORD PTR [rax], rcx + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx -; 618 : return _Old_val; +; 601 : return _Old_val; - 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 619 : } +; 602 : } - 0004a 48 8d a5 e8 00 + 00061 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7426,27 +8254,33 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT -; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7456,29 +8290,35 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 00024 48 8b 8d e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 840 : } +; 808 : } - 00038 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z _TEXT SEGMENT _Val$ = 224 @@ -7493,26 +8333,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 275 : return __builtin_addressof(_Val); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z ENDP ; std::addressof > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility ; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z _TEXT SEGMENT $T1 = 200 @@ -7521,7 +8367,7 @@ _Left$ = 256 _Right$ = 264 ??$min@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::min, COMDAT -; 66 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { +; 67 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7531,49 +8377,55 @@ $LN5: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 67 : // return smaller of _Left and _Right -; 68 : return _Right < _Left ? _Right : _Left; +; 68 : // return smaller of _Left and _Right +; 69 : return _Right < _Left ? _Right : _Left; - 00024 48 8b 85 08 01 + 0003b 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d 00 01 + 00042 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Left$[rbp] - 00032 48 8b 09 mov rcx, QWORD PTR [rcx] - 00035 48 39 08 cmp QWORD PTR [rax], rcx - 00038 73 10 jae SHORT $LN3@min - 0003a 48 8b 85 08 01 + 00049 48 8b 09 mov rcx, QWORD PTR [rcx] + 0004c 48 39 08 cmp QWORD PTR [rax], rcx + 0004f 73 10 jae SHORT $LN3@min + 00051 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00041 48 89 85 d8 00 + 00058 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax - 00048 eb 0e jmp SHORT $LN4@min + 0005f eb 0e jmp SHORT $LN4@min $LN3@min: - 0004a 48 8b 85 00 01 + 00061 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00051 48 89 85 d8 00 + 00068 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax $LN4@min: - 00058 48 8b 85 d8 00 + 0006f 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv65[rbp] - 0005f 48 89 85 c8 00 + 00076 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8b 85 c8 00 + 0007d 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] -; 69 : } +; 70 : } - 0006d 48 8d a5 e8 00 + 00084 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ??$min@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::min _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z _TEXT SEGMENT _Lock$6 = 4 @@ -7587,7 +8439,7 @@ __$ArrayPad$ = 408 _Loc$ = 448 ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z PROC ; std::use_facet >, COMDAT -; 428 : const _Facet& __CRTDECL use_facet(const locale& _Loc) { // get facet reference from locale +; 426 : const _Facet& __CRTDECL use_facet(const locale& _Loc) { // get facet reference from locale $LN11: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -7596,192 +8448,192 @@ $LN11: 00007 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 e8 + 00013 48 8b fc mov rdi, rsp + 00016 b9 72 00 00 00 mov ecx, 114 ; 00000072H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 e8 01 00 00 mov rcx, QWORD PTR [rsp+488] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 98 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 98 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 429 : _BEGIN_LOCK(_LOCK_LOCALE) // the thread lock, make get atomic +; 427 : _BEGIN_LOCK(_LOCK_LOCALE) // the thread lock, make get atomic - 00049 33 d2 xor edx, edx - 0004b 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] - 0004f ff 15 00 00 00 + 00047 33 d2 xor edx, edx + 00049 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] + 0004d ff 15 00 00 00 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - 00055 90 npad 1 + 00053 90 npad 1 -; 430 : const locale::facet* _Psave = _Facetptr<_Facet>::_Psave; // static pointer to lazy facet +; 428 : const locale::facet* _Psave = _Facetptr<_Facet>::_Psave; // static pointer to lazy facet - 00056 48 8b 05 00 00 + 00054 48 8b 05 00 00 00 00 mov rax, QWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB ; std::_Facetptr >::_Psave - 0005d 48 89 45 28 mov QWORD PTR _Psave$7[rbp], rax + 0005b 48 89 45 28 mov QWORD PTR _Psave$7[rbp], rax -; 431 : -; 432 : const size_t _Id = _Facet::id; +; 429 : +; 430 : const size_t _Id = _Facet::id; - 00061 48 8b 0d 00 00 + 0005f 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR __imp_?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A - 00068 ff 15 00 00 00 + 00066 ff 15 00 00 00 00 call QWORD PTR __imp_??Bid@locale@std@@QEAA_KXZ - 0006e 48 89 45 48 mov QWORD PTR _Id$8[rbp], rax + 0006c 48 89 45 48 mov QWORD PTR _Id$8[rbp], rax -; 433 : const locale::facet* _Pf = _Loc._Getfacet(_Id); +; 431 : const locale::facet* _Pf = _Loc._Getfacet(_Id); - 00072 48 8b 55 48 mov rdx, QWORD PTR _Id$8[rbp] - 00076 48 8b 8d c0 01 + 00070 48 8b 55 48 mov rdx, QWORD PTR _Id$8[rbp] + 00074 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR _Loc$[rbp] - 0007d e8 00 00 00 00 call ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ; std::locale::_Getfacet - 00082 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + 0007b e8 00 00 00 00 call ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ; std::locale::_Getfacet + 00080 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax -; 434 : -; 435 : if (!_Pf) { +; 432 : +; 433 : if (!_Pf) { - 00086 48 83 7d 68 00 cmp QWORD PTR _Pf$9[rbp], 0 - 0008b 0f 85 af 00 00 + 00084 48 83 7d 68 00 cmp QWORD PTR _Pf$9[rbp], 0 + 00089 0f 85 af 00 00 00 jne $LN2@use_facet -; 436 : if (_Psave) { +; 434 : if (_Psave) { - 00091 48 83 7d 28 00 cmp QWORD PTR _Psave$7[rbp], 0 - 00096 74 0d je SHORT $LN3@use_facet + 0008f 48 83 7d 28 00 cmp QWORD PTR _Psave$7[rbp], 0 + 00094 74 0d je SHORT $LN3@use_facet -; 437 : _Pf = _Psave; // lazy facet already allocated +; 435 : _Pf = _Psave; // lazy facet already allocated - 00098 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] - 0009c 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax - 000a0 e9 9b 00 00 00 jmp $LN2@use_facet + 00096 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 0009a 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + 0009e e9 9b 00 00 00 jmp $LN2@use_facet $LN3@use_facet: -; 438 : } else if (_Facet::_Getcat(&_Psave, &_Loc) == static_cast(-1)) { +; 436 : } else if (_Facet::_Getcat(&_Psave, &_Loc) == static_cast(-1)) { - 000a5 48 8b 95 c0 01 + 000a3 48 8b 95 c0 01 00 00 mov rdx, QWORD PTR _Loc$[rbp] - 000ac 48 8d 4d 28 lea rcx, QWORD PTR _Psave$7[rbp] - 000b0 ff 15 00 00 00 + 000aa 48 8d 4d 28 lea rcx, QWORD PTR _Psave$7[rbp] + 000ae ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z - 000b6 48 83 f8 ff cmp rax, -1 - 000ba 75 08 jne SHORT $LN5@use_facet + 000b4 48 83 f8 ff cmp rax, -1 + 000b8 75 08 jne SHORT $LN5@use_facet -; 439 : #if _HAS_EXCEPTIONS -; 440 : _Throw_bad_cast(); // lazy disallowed +; 437 : #if _HAS_EXCEPTIONS +; 438 : _Throw_bad_cast(); // lazy disallowed - 000bc e8 00 00 00 00 call ?_Throw_bad_cast@std@@YAXXZ ; std::_Throw_bad_cast - 000c1 90 npad 1 + 000ba e8 00 00 00 00 call ?_Throw_bad_cast@std@@YAXXZ ; std::_Throw_bad_cast + 000bf 90 npad 1 -; 441 : #else // _HAS_EXCEPTIONS -; 442 : _CSTD abort(); // lazy disallowed -; 443 : #endif // _HAS_EXCEPTIONS -; 444 : } else { // queue up lazy facet for destruction +; 439 : #else // _HAS_EXCEPTIONS +; 440 : _CSTD abort(); // lazy disallowed +; 441 : #endif // _HAS_EXCEPTIONS +; 442 : } else { // queue up lazy facet for destruction - 000c2 eb 7c jmp SHORT $LN2@use_facet + 000c0 eb 7c jmp SHORT $LN2@use_facet $LN5@use_facet: -; 445 : auto _Pfmod = const_cast(_Psave); +; 443 : auto _Pfmod = const_cast(_Psave); - 000c4 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] - 000c8 48 89 85 88 00 + 000c2 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 000c6 48 89 85 88 00 00 00 mov QWORD PTR _Pfmod$10[rbp], rax -; 446 : unique_ptr<_Facet_base> _Psave_guard(static_cast<_Facet_base*>(_Pfmod)); +; 444 : unique_ptr<_Facet_base> _Psave_guard(static_cast<_Facet_base*>(_Pfmod)); - 000cf ba 08 00 00 00 mov edx, 8 - 000d4 48 8d 8d a8 00 + 000cd ba 08 00 00 00 mov edx, 8 + 000d2 48 8d 8d a8 00 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] - 000db e8 00 00 00 00 call ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z - 000e0 48 8b 95 88 00 + 000d9 e8 00 00 00 00 call ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z + 000de 48 8b 95 88 00 00 00 mov rdx, QWORD PTR _Pfmod$10[rbp] - 000e7 48 8d 8d a8 00 + 000e5 48 8d 8d a8 00 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] - 000ee e8 00 00 00 00 call ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ; std::unique_ptr >::unique_ptr >,0> - 000f3 90 npad 1 + 000ec e8 00 00 00 00 call ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ; std::unique_ptr >::unique_ptr >,0> + 000f1 90 npad 1 -; 447 : -; 448 : #if defined(_M_CEE) -; 449 : _Facet_Register_m(_Pfmod); -; 450 : #else // defined(_M_CEE) -; 451 : _Facet_Register(_Pfmod); +; 445 : +; 446 : #if defined(_M_CEE) +; 447 : _Facet_Register_m(_Pfmod); +; 448 : #else // defined(_M_CEE) +; 449 : _Facet_Register(_Pfmod); - 000f4 48 8b 8d 88 00 + 000f2 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Pfmod$10[rbp] - 000fb e8 00 00 00 00 call ?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z ; std::_Facet_Register + 000f9 e8 00 00 00 00 call ?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z ; std::_Facet_Register -; 452 : #endif // defined(_M_CEE) -; 453 : -; 454 : _Pfmod->_Incref(); +; 450 : #endif // defined(_M_CEE) +; 451 : +; 452 : _Pfmod->_Incref(); - 00100 48 8b 85 88 00 + 000fe 48 8b 85 88 00 00 00 mov rax, QWORD PTR _Pfmod$10[rbp] - 00107 48 8b 00 mov rax, QWORD PTR [rax] - 0010a 48 8b 8d 88 00 + 00105 48 8b 00 mov rax, QWORD PTR [rax] + 00108 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Pfmod$10[rbp] - 00111 ff 50 08 call QWORD PTR [rax+8] + 0010f ff 50 08 call QWORD PTR [rax+8] -; 455 : _Facetptr<_Facet>::_Psave = _Psave; +; 453 : _Facetptr<_Facet>::_Psave = _Psave; - 00114 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] - 00118 48 89 05 00 00 + 00112 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 00116 48 89 05 00 00 00 00 mov QWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB, rax ; std::_Facetptr >::_Psave -; 456 : _Pf = _Psave; +; 454 : _Pf = _Psave; - 0011f 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] - 00123 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + 0011d 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 00121 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax -; 457 : -; 458 : (void) _Psave_guard.release(); +; 455 : +; 456 : (void) _Psave_guard.release(); - 00127 48 8d 8d a8 00 + 00125 48 8d 8d a8 00 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] - 0012e e8 00 00 00 00 call ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ ; std::unique_ptr >::release - 00133 90 npad 1 + 0012c e8 00 00 00 00 call ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ ; std::unique_ptr >::release + 00131 90 npad 1 -; 459 : } +; 457 : } - 00134 48 8d 8d a8 00 + 00132 48 8d 8d a8 00 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] - 0013b e8 00 00 00 00 call ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ; std::unique_ptr >::~unique_ptr > + 00139 e8 00 00 00 00 call ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ; std::unique_ptr >::~unique_ptr > $LN2@use_facet: -; 460 : } -; 461 : -; 462 : return static_cast(*_Pf); // should be dynamic_cast +; 458 : } +; 459 : +; 460 : return static_cast(*_Pf); // should be dynamic_cast - 00140 48 8b 45 68 mov rax, QWORD PTR _Pf$9[rbp] - 00144 48 89 85 88 01 + 0013e 48 8b 45 68 mov rax, QWORD PTR _Pf$9[rbp] + 00142 48 89 85 88 01 00 00 mov QWORD PTR $T12[rbp], rax - 0014b 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] - 0014f ff 15 00 00 00 + 00149 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] + 0014d ff 15 00 00 00 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 00155 48 8b 85 88 01 + 00153 48 8b 85 88 01 00 00 mov rax, QWORD PTR $T12[rbp] -; 463 : _END_LOCK() -; 464 : } // end of use_facet body +; 461 : _END_LOCK() +; 462 : } // end of use_facet body - 0015c 48 8b f8 mov rdi, rax - 0015f 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00163 48 8d 15 00 00 + 0015a 48 8b f8 mov rdi, rax + 0015d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00161 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcFrameData - 0016a e8 00 00 00 00 call _RTC_CheckStackVars - 0016f 48 8b c7 mov rax, rdi - 00172 48 8b 8d 98 01 + 00168 e8 00 00 00 00 call _RTC_CheckStackVars + 0016d 48 8b c7 mov rax, rdi + 00170 48 8b 8d 98 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00179 48 33 cd xor rcx, rbp - 0017c e8 00 00 00 00 call __security_check_cookie - 00181 48 8d a5 a8 01 + 00177 48 33 cd xor rcx, rbp + 0017a e8 00 00 00 00 call __security_check_cookie + 0017f 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 00188 5f pop rdi - 00189 5d pop rbp - 0018a c3 ret 0 + 00186 5f pop rdi + 00187 5d pop rbp + 00188 c3 ret 0 $LN10@use_facet: ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ENDP ; std::use_facet > _TEXT ENDS @@ -7896,20 +8748,21 @@ _Loc$ = 448 ?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA ENDP ; `std::use_facet >'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT main _TEXT SEGMENT RetNumBlock$ = 8 Obf$ = 88 -AsmSize$ = 148 -Asm$ = 184 -Exec$ = 216 -$T6 = 436 -tv149 = 456 -tv137 = 464 -tv147 = 472 -tv145 = 480 -__$ArrayPad$ = 488 +Obf2$ = 152 +AsmSize$ = 180 +Asm$ = 216 +Exec$ = 248 +$T7 = 468 +tv145 = 488 +tv133 = 496 +tv143 = 504 +tv141 = 512 +__$ArrayPad$ = 520 main PROC ; COMDAT ; 92 : { @@ -7917,427 +8770,402 @@ main PROC ; COMDAT $LN7: 00000 40 55 push rbp 00002 57 push rdi - 00003 48 81 ec 18 02 - 00 00 sub rsp, 536 ; 00000218H + 00003 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00014 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001e f3 ab rep stosd - 00020 48 8b 05 00 00 + 0000f 48 8b fc mov rdi, rsp + 00012 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00027 48 33 c5 xor rax, rbp - 0002a 48 89 85 e8 01 + 00025 48 33 c5 xor rax, rbp + 00028 48 89 85 08 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00031 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 93 : XedTablesInit(); - 0003d e8 00 00 00 00 call xed_tables_init + 0003b e8 00 00 00 00 call xed_tables_init ; 94 : srand(time(NULL)); - 00042 33 c9 xor ecx, ecx - 00044 e8 00 00 00 00 call time - 00049 8b c8 mov ecx, eax - 0004b ff 15 00 00 00 + 00040 33 c9 xor ecx, ecx + 00042 e8 00 00 00 00 call time + 00047 8b c8 mov ecx, eax + 00049 ff 15 00 00 00 00 call QWORD PTR __imp_srand ; 95 : -; 96 : system("pause"); - - 00051 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 00058 ff 15 00 00 00 - 00 call QWORD PTR __imp_system - +; 96 : //system("pause"); ; 97 : ; 98 : NATIVE_CODE_BLOCK RetNumBlock; - 0005e 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00062 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 00067 90 npad 1 + 0004f 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00053 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00058 90 npad 1 ; 99 : NcDisassemble(&RetNumBlock, RetNumCode, sizeof(RetNumCode)); - 00068 41 b8 1d 00 00 + 00059 41 b8 1d 00 00 00 mov r8d, 29 - 0006e 48 8d 15 00 00 + 0005f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?RetNumCode@@3PAEA ; RetNumCode - 00075 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00079 e8 00 00 00 00 call ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble + 00066 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 0006a e8 00 00 00 00 call ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble -; 100 : OBFUSCATOR Obf; +; 100 : OPBR_SETS Obf; ; 101 : Obf.Flags = 0; - 0007e c7 45 64 00 00 + 0006f c7 45 64 00 00 00 00 mov DWORD PTR Obf$[rbp+12], 0 -; 102 : Obf.MinSizeForOpaqueBranch = 1; - - 00085 c7 45 5c 01 00 - 00 00 mov DWORD PTR Obf$[rbp+4], 1 - -; 103 : Obf.InstructionMutateChance = 100; +; 102 : Obf.ParentBlock = &RetNumBlock; - 0008c c6 45 61 64 mov BYTE PTR Obf$[rbp+9], 100 ; 00000064H + 00076 48 8d 45 08 lea rax, QWORD PTR RetNumBlock$[rbp] + 0007a 48 89 45 70 mov QWORD PTR Obf$[rbp+24], rax -; 104 : Obf.OpaqueBranchChance = 100; +; 103 : Obf.Divisor = 1.3F; - 00090 c6 45 60 64 mov BYTE PTR Obf$[rbp+8], 100 ; 00000064H + 0007e f3 0f 10 05 00 + 00 00 00 movss xmm0, DWORD PTR __real@3fa66666 + 00086 f3 0f 11 45 60 movss DWORD PTR Obf$[rbp+8], xmm0 -; 105 : Obf.MinDepthForRandomOpaqueBranch = 0; +; 104 : Obf.MaxDepth = 10; - 00094 c7 45 58 00 00 - 00 00 mov DWORD PTR Obf$[rbp], 0 + 0008b c7 45 58 0a 00 + 00 00 mov DWORD PTR Obf$[rbp], 10 -; 106 : Obf.GlobalBlock = &RetNumBlock; +; 105 : Obf.MinBranchSize = 1; - 0009b 48 8d 45 08 lea rax, QWORD PTR RetNumBlock$[rbp] - 0009f 48 89 45 68 mov QWORD PTR Obf$[rbp+16], rax - -; 107 : Obf.BlockDivisionFactor = 2; - - 000a3 c6 45 62 02 mov BYTE PTR Obf$[rbp+10], 2 - -; 108 : Obf.MaxDepth = 800000; - - 000a7 c7 45 70 00 35 - 0c 00 mov DWORD PTR Obf$[rbp+24], 800000 ; 000c3500H - -; 109 : ObfObfuscate1(&Obf, &RetNumBlock); - - 000ae 45 33 c0 xor r8d, r8d - 000b1 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] - 000b5 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] - 000b9 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - -; 110 : Obf.MinSizeForOpaqueBranch = 5; - - 000be c7 45 5c 05 00 - 00 00 mov DWORD PTR Obf$[rbp+4], 5 + 00092 c7 45 5c 01 00 + 00 00 mov DWORD PTR Obf$[rbp+4], 1 -; 111 : Obf.InstructionMutateChance = 0; +; 106 : Obf.ChanceForBranch = 50; - 000c5 c6 45 61 00 mov BYTE PTR Obf$[rbp+9], 0 + 00099 c7 45 6c 32 00 + 00 00 mov DWORD PTR Obf$[rbp+20], 50 ; 00000032H -; 112 : Obf.OpaqueBranchChance = 100; +; 107 : Obf.MinDepthForBranch = 0; - 000c9 c6 45 60 64 mov BYTE PTR Obf$[rbp+8], 100 ; 00000064H + 000a0 c7 45 68 00 00 + 00 00 mov DWORD PTR Obf$[rbp+16], 0 -; 113 : ObfObfuscate1(&Obf, &RetNumBlock, 0); +; 108 : ObfGenerateOpaqueBranches(&Obf, &RetNumBlock); - 000cd 45 33 c0 xor r8d, r8d - 000d0 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] - 000d4 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] - 000d8 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 + 000a7 45 33 c0 xor r8d, r8d + 000aa 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] + 000ae 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 000b2 e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches -; 114 : Obf.MinSizeForOpaqueBranch = 50; +; 109 : INSTMUT_SETS Obf2; +; 110 : Obf2.MutateChance = 100; - 000dd c7 45 5c 32 00 - 00 00 mov DWORD PTR Obf$[rbp+4], 50 ; 00000032H + 000b7 c7 85 9c 00 00 + 00 64 00 00 00 mov DWORD PTR Obf2$[rbp+4], 100 ; 00000064H -; 115 : ObfObfuscate1(&Obf, &RetNumBlock, 0); +; 111 : ObfMutateInstructions(&Obf2, &RetNumBlock); - 000e4 45 33 c0 xor r8d, r8d - 000e7 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] - 000eb 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] - 000ef e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 + 000c1 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] + 000c5 48 8d 8d 98 00 + 00 00 lea rcx, QWORD PTR Obf2$[rbp] + 000cc e8 00 00 00 00 call ?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfMutateInstructions -; 116 : -; 117 : -; 118 : printf("Finished second pas.\n"); +; 112 : +; 113 : Obf.MinBranchSize = 27; - 000f4 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@KBAIGCC@Finished?5second?5pas?4?6@ - 000fb e8 00 00 00 00 call printf + 000d1 c7 45 5c 1b 00 + 00 00 mov DWORD PTR Obf$[rbp+4], 27 -; 119 : //Obf.MinSizeForOpaqueBranch = 200; -; 120 : //ObfObfuscate1(&Obf, &RetNumBlock); -; 121 : //Obf.MinSizeForOpaqueBranch = 30; -; 122 : //ObfObfuscate(&Obf, &RetNumBlock); -; 123 : -; 124 : NcDebugPrint(&RetNumBlock); +; 114 : ObfGenerateOpaqueBranches(&Obf, &RetNumBlock); - 00100 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00104 e8 00 00 00 00 call ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint + 000d8 45 33 c0 xor r8d, r8d + 000db 48 8d 55 08 lea rdx, QWORD PTR RetNumBlock$[rbp] + 000df 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 000e3 e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches -; 125 : -; 126 : ULONG AsmSize; -; 127 : PVOID Asm = NcAssemble(&RetNumBlock, &AsmSize); +; 115 : /*Obf.MinBranchSize = 27; +; 116 : ObfGenerateOpaqueBranches(&Obf, &RetNumBlock); +; 117 : Obf.MinBranchSize = 27; +; 118 : ObfGenerateOpaqueBranches(&Obf, &RetNumBlock);*/ +; 119 : //NcDebugPrint(&RetNumBlock); +; 120 : +; 121 : ULONG AsmSize; +; 122 : PVOID Asm = NcAssemble(&RetNumBlock, &AsmSize); - 00109 48 8d 95 94 00 + 000e8 48 8d 95 b4 00 00 00 lea rdx, QWORD PTR AsmSize$[rbp] - 00110 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00114 e8 00 00 00 00 call ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble - 00119 48 89 85 b8 00 + 000ef 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 000f3 e8 00 00 00 00 call ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble + 000f8 48 89 85 d8 00 00 00 mov QWORD PTR Asm$[rbp], rax -; 128 : if (!Asm) +; 123 : if (!Asm) - 00120 48 83 bd b8 00 + 000ff 48 83 bd d8 00 00 00 00 cmp QWORD PTR Asm$[rbp], 0 - 00128 75 37 jne SHORT $LN2@main + 00107 75 37 jne SHORT $LN2@main -; 129 : { -; 130 : printf("failed to assemble\n"); +; 124 : { +; 125 : printf("failed to assemble\n"); - 0012a 48 8d 0d 00 00 + 00109 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@GALOGKHF@failed?5to?5assemble?6@ - 00131 e8 00 00 00 00 call printf + 00110 e8 00 00 00 00 call printf -; 131 : system("pause"); +; 126 : system("pause"); - 00136 48 8d 0d 00 00 + 00115 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 0013d ff 15 00 00 00 + 0011c ff 15 00 00 00 00 call QWORD PTR __imp_system -; 132 : return 1; +; 127 : return 1; - 00143 c7 85 b4 01 00 - 00 01 00 00 00 mov DWORD PTR $T6[rbp], 1 - 0014d 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00151 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00156 8b 85 b4 01 00 - 00 mov eax, DWORD PTR $T6[rbp] - 0015c e9 c0 00 00 00 jmp $LN5@main + 00122 c7 85 d4 01 00 + 00 01 00 00 00 mov DWORD PTR $T7[rbp], 1 + 0012c 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 00130 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00135 8b 85 d4 01 00 + 00 mov eax, DWORD PTR $T7[rbp] + 0013b e9 c0 00 00 00 jmp $LN5@main $LN2@main: -; 133 : } -; 134 : PutToFile(Asm, AsmSize); +; 128 : } +; 129 : PutToFile(Asm, AsmSize); - 00161 8b 95 94 00 00 + 00140 8b 95 b4 00 00 00 mov edx, DWORD PTR AsmSize$[rbp] - 00167 48 8b 8d b8 00 + 00146 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR Asm$[rbp] - 0016e e8 00 00 00 00 call ?PutToFile@@YAXPEAXK@Z ; PutToFile + 0014d e8 00 00 00 00 call ?PutToFile@@YAXPEAXK@Z ; PutToFile -; 135 : system("pause"); +; 130 : system("pause"); - 00173 48 8d 0d 00 00 + 00152 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 0017a ff 15 00 00 00 + 00159 ff 15 00 00 00 00 call QWORD PTR __imp_system -; 136 : -; 137 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); +; 131 : +; 132 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); - 00180 8b 95 94 00 00 + 0015f 8b 95 b4 00 00 00 mov edx, DWORD PTR AsmSize$[rbp] - 00186 48 8b 8d b8 00 + 00165 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR Asm$[rbp] - 0018d e8 00 00 00 00 call ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer - 00192 48 89 85 d8 00 + 0016c e8 00 00 00 00 call ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer + 00171 48 89 85 f8 00 00 00 mov QWORD PTR Exec$[rbp], rax -; 138 : typedef ULONG64(*FnRetNum)(ULONG Num); -; 139 : printf("\n\nSize: %u Obfuscated: %llu Original: %llu\n\n", NcCountInstructions(&RetNumBlock), ((FnRetNum)Exec)(1776), RetNum(1776)); +; 133 : typedef ULONG64(*FnRetNum)(ULONG Num); +; 134 : printf("\n\nSize: %u Obfuscated: %llu Original: %llu\n\n", NcCountInstructions(&RetNumBlock), ((FnRetNum)Exec)(1776), RetNum(1776)); - 00199 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H - 0019e e8 00 00 00 00 call RetNum - 001a3 48 89 85 c8 01 - 00 00 mov QWORD PTR tv149[rbp], rax - 001aa 48 8b 85 d8 00 + 00178 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H + 0017d e8 00 00 00 00 call RetNum + 00182 48 89 85 e8 01 + 00 00 mov QWORD PTR tv145[rbp], rax + 00189 48 8b 85 f8 00 00 00 mov rax, QWORD PTR Exec$[rbp] - 001b1 48 89 85 d0 01 - 00 00 mov QWORD PTR tv137[rbp], rax - 001b8 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H - 001bd ff 95 d0 01 00 - 00 call QWORD PTR tv137[rbp] - 001c3 48 89 85 d8 01 - 00 00 mov QWORD PTR tv147[rbp], rax - 001ca 33 d2 xor edx, edx - 001cc 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 001d0 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ; NcCountInstructions - 001d5 89 85 e0 01 00 - 00 mov DWORD PTR tv145[rbp], eax - 001db 4c 8b 8d c8 01 - 00 00 mov r9, QWORD PTR tv149[rbp] - 001e2 4c 8b 85 d8 01 - 00 00 mov r8, QWORD PTR tv147[rbp] - 001e9 8b 95 e0 01 00 - 00 mov edx, DWORD PTR tv145[rbp] - 001ef 48 8d 0d 00 00 + 00190 48 89 85 f0 01 + 00 00 mov QWORD PTR tv133[rbp], rax + 00197 b9 f0 06 00 00 mov ecx, 1776 ; 000006f0H + 0019c ff 95 f0 01 00 + 00 call QWORD PTR tv133[rbp] + 001a2 48 89 85 f8 01 + 00 00 mov QWORD PTR tv143[rbp], rax + 001a9 33 d2 xor edx, edx + 001ab 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 001af e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ; NcCountInstructions + 001b4 89 85 00 02 00 + 00 mov DWORD PTR tv141[rbp], eax + 001ba 4c 8b 8d e8 01 + 00 00 mov r9, QWORD PTR tv145[rbp] + 001c1 4c 8b 85 f8 01 + 00 00 mov r8, QWORD PTR tv143[rbp] + 001c8 8b 95 00 02 00 + 00 mov edx, DWORD PTR tv141[rbp] + 001ce 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0DC@MEGCPGB@?6?6Size?3?5?$CFu?5?5?5Obfuscated?3?5?$CFllu?5?5@ - 001f6 e8 00 00 00 00 call printf + 001d5 e8 00 00 00 00 call printf -; 140 : NcDeleteBlock(&RetNumBlock); +; 135 : NcDeleteBlock(&RetNumBlock); - 001fb 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 001ff e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001da 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 001de e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 141 : system("pause"); +; 136 : system("pause"); - 00204 48 8d 0d 00 00 + 001e3 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 0020b ff 15 00 00 00 + 001ea ff 15 00 00 00 00 call QWORD PTR __imp_system - 00211 90 npad 1 - -; 142 : -; 143 : -; 144 : /*NATIVE_CODE_BLOCK Block; -; 145 : NcDisassemble(&Block, meme1, sizeof(meme1)); -; 146 : OBFUSCATOR Obf; -; 147 : Obf.Flags = 0; -; 148 : Obf.MinSizeForOpaqueBranch = 12; -; 149 : Obf.GlobalBlock = &Block; -; 150 : ObfObfuscate(&Obf, &Block); -; 151 : Obf.MinSizeForOpaqueBranch = 4; -; 152 : ObfObfuscate(&Obf, &Block); -; 153 : NcDebugPrint(&Block); + 001f0 90 npad 1 + +; 137 : +; 138 : +; 139 : /*NATIVE_CODE_BLOCK Block; +; 140 : NcDisassemble(&Block, meme1, sizeof(meme1)); +; 141 : OBFUSCATOR Obf; +; 142 : Obf.Flags = 0; +; 143 : Obf.MinSizeForOpaqueBranch = 12; +; 144 : Obf.GlobalBlock = &Block; +; 145 : ObfObfuscate(&Obf, &Block); +; 146 : Obf.MinSizeForOpaqueBranch = 4; +; 147 : ObfObfuscate(&Obf, &Block); +; 148 : NcDebugPrint(&Block); +; 149 : +; 150 : ULONG ByteSize = NcCalcBlockSizeInBytes(&Block); +; 151 : ULONG InstSize = NcCountInstructions(&Block); +; 152 : +; 153 : printf("Bytes: %u, Insts: %u, FlagsMeme: %u.\n", ByteSize, InstSize, Obf.Flags); ; 154 : -; 155 : ULONG ByteSize = NcCalcBlockSizeInBytes(&Block); -; 156 : ULONG InstSize = NcCountInstructions(&Block); -; 157 : -; 158 : printf("Bytes: %u, Insts: %u, FlagsMeme: %u.\n", ByteSize, InstSize, Obf.Flags); -; 159 : -; 160 : ULONG AsmSize; -; 161 : PVOID Asm = NcAssemble(&Block, &AsmSize); -; 162 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); -; 163 : typedef ULONG(*FnGetFour)(); -; 164 : printf("numba is: %u size is %u\n\n", ((FnGetFour)Exec)(), AsmSize); -; 165 : PutToFile(Asm, AsmSize);*/ -; 166 : -; 167 : -; 168 : //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); -; 169 : //PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); -; 170 : //PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); -; 171 : //PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); -; 172 : //PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); -; 173 : //PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); -; 174 : -; 175 : //NcAppendToBlock(Pre1, Return1776); -; 176 : //NcInsertBlockAfter(Pre1->End, Post1, 0); -; 177 : //Pre1->End = Post1->End; -; 178 : //NcInsertBlockAfter(Pre1->End, Pre2, 0); -; 179 : //Pre1->End = Pre2->End; -; 180 : //NcAppendToBlock(Pre1, RetInst); -; 181 : //NcInsertBlockAfter(Pre1->End, Post2, 0); -; 182 : //Pre1->End = Post2->End; -; 183 : -; 184 : ///*Pre->Start = Return1776; -; 185 : //Pre->End = Return1776;*/ +; 155 : ULONG AsmSize; +; 156 : PVOID Asm = NcAssemble(&Block, &AsmSize); +; 157 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); +; 158 : typedef ULONG(*FnGetFour)(); +; 159 : printf("numba is: %u size is %u\n\n", ((FnGetFour)Exec)(), AsmSize); +; 160 : PutToFile(Asm, AsmSize);*/ +; 161 : +; 162 : +; 163 : //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 164 : //PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); +; 165 : //PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); +; 166 : //PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); +; 167 : //PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); +; 168 : //PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); +; 169 : +; 170 : //NcAppendToBlock(Pre1, Return1776); +; 171 : //NcInsertBlockAfter(Pre1->End, Post1, 0); +; 172 : //Pre1->End = Post1->End; +; 173 : //NcInsertBlockAfter(Pre1->End, Pre2, 0); +; 174 : //Pre1->End = Pre2->End; +; 175 : //NcAppendToBlock(Pre1, RetInst); +; 176 : //NcInsertBlockAfter(Pre1->End, Post2, 0); +; 177 : //Pre1->End = Post2->End; +; 178 : +; 179 : ///*Pre->Start = Return1776; +; 180 : //Pre->End = Return1776;*/ +; 181 : +; 182 : //for (ULONG i = 0; i < Return1776->RawDataSize; i++) +; 183 : // Return1776->RawData[i] = (UCHAR)rand(); +; 184 : //for (ULONG i = 0; i < RetInst->RawDataSize; i++) +; 185 : // RetInst->RawData[i] = (UCHAR)rand(); ; 186 : -; 187 : //for (ULONG i = 0; i < Return1776->RawDataSize; i++) -; 188 : // Return1776->RawData[i] = (UCHAR)rand(); -; 189 : //for (ULONG i = 0; i < RetInst->RawDataSize; i++) -; 190 : // RetInst->RawData[i] = (UCHAR)rand(); -; 191 : -; 192 : -; 193 : -; 194 : //ULONG AsmLen; -; 195 : //PVOID Asm = NcAssemble(Pre1, &AsmLen); -; 196 : //PUCHAR Tb = (PUCHAR)Asm; -; 197 : //for (uint32_t i = 0; i < AsmLen; i++) -; 198 : //{ -; 199 : // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; -; 200 : //} -; 201 : -; 202 : //system("pause"); -; 203 : -; 204 : //typedef ULONG64(*FnGet1776)(); -; 205 : //FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); -; 206 : //if (ExecBuffer) -; 207 : //{ +; 187 : +; 188 : +; 189 : //ULONG AsmLen; +; 190 : //PVOID Asm = NcAssemble(Pre1, &AsmLen); +; 191 : //PUCHAR Tb = (PUCHAR)Asm; +; 192 : //for (uint32_t i = 0; i < AsmLen; i++) +; 193 : //{ +; 194 : // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 195 : //} +; 196 : +; 197 : //system("pause"); +; 198 : +; 199 : //typedef ULONG64(*FnGet1776)(); +; 200 : //FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); +; 201 : //if (ExecBuffer) +; 202 : //{ +; 203 : // printf("The numba was: %X\n", ExecBuffer()); +; 204 : // printf("The numba was: %X\n", ExecBuffer()); +; 205 : +; 206 : // printf("The numba was: %X\n", ExecBuffer()); +; 207 : ; 208 : // printf("The numba was: %X\n", ExecBuffer()); -; 209 : // printf("The numba was: %X\n", ExecBuffer()); -; 210 : -; 211 : // printf("The numba was: %X\n", ExecBuffer()); +; 209 : +; 210 : //} +; 211 : ; 212 : -; 213 : // printf("The numba was: %X\n", ExecBuffer()); +; 213 : //NcDebugPrint(Post); ; 214 : -; 215 : //} +; 215 : ; 216 : -; 217 : -; 218 : //NcDebugPrint(Post); -; 219 : +; 217 : /*NATIVE_CODE_BLOCK Block; +; 218 : NcDisassemble(&Block, TestBuffer, TestBufferSize); +; 219 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); ; 220 : -; 221 : -; 222 : /*NATIVE_CODE_BLOCK Block; -; 223 : NcDisassemble(&Block, TestBuffer, TestBufferSize); -; 224 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); -; 225 : -; 226 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); -; 227 : ULONG AssembledSize; -; 228 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); -; 229 : if (!AssembledBlock || !AssembledSize) -; 230 : { -; 231 : printf("Something failed nicka.\n"); -; 232 : system("pause"); -; 233 : return -1; +; 221 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); +; 222 : ULONG AssembledSize; +; 223 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); +; 224 : if (!AssembledBlock || !AssembledSize) +; 225 : { +; 226 : printf("Something failed nicka.\n"); +; 227 : system("pause"); +; 228 : return -1; +; 229 : } +; 230 : PUCHAR Tb = (PUCHAR)AssembledBlock; +; 231 : for (uint32_t i = 0; i < AssembledSize; i++) +; 232 : { +; 233 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; ; 234 : } -; 235 : PUCHAR Tb = (PUCHAR)AssembledBlock; -; 236 : for (uint32_t i = 0; i < AssembledSize; i++) -; 237 : { -; 238 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; -; 239 : } -; 240 : */ +; 235 : */ +; 236 : +; 237 : +; 238 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); +; 239 : //NcDebugPrint(OpaqueBranch); +; 240 : ; 241 : ; 242 : -; 243 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); -; 244 : //NcDebugPrint(OpaqueBranch); -; 245 : -; 246 : -; 247 : -; 248 : /*NATIVE_CODE_LINK T; -; 249 : T.RawDataSize = 10; -; 250 : T.RawData = new UCHAR[10]; -; 251 : memset(T.RawData, 0xAA, 10); -; 252 : JIT_BITWISE_DATA Data; -; 253 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); -; 254 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); -; 255 : if (NewBlock) -; 256 : { -; 257 : printf("\n"); -; 258 : NcDebugPrint(NewBlock); -; 259 : printf("\n"); -; 260 : NcPrintBlockCode(NewBlock); -; 261 : } -; 262 : system("pause");*/ -; 263 : -; 264 : } - - 00212 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] - 00216 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 0021b eb 02 jmp SHORT $LN6@main - 0021d eb 02 jmp SHORT $LN5@main +; 243 : /*NATIVE_CODE_LINK T; +; 244 : T.RawDataSize = 10; +; 245 : T.RawData = new UCHAR[10]; +; 246 : memset(T.RawData, 0xAA, 10); +; 247 : JIT_BITWISE_DATA Data; +; 248 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); +; 249 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); +; 250 : if (NewBlock) +; 251 : { +; 252 : printf("\n"); +; 253 : NcDebugPrint(NewBlock); +; 254 : printf("\n"); +; 255 : NcPrintBlockCode(NewBlock); +; 256 : } +; 257 : system("pause");*/ +; 258 : +; 259 : } + + 001f1 48 8d 4d 08 lea rcx, QWORD PTR RetNumBlock$[rbp] + 001f5 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 001fa eb 02 jmp SHORT $LN6@main + 001fc eb 02 jmp SHORT $LN5@main $LN6@main: - 0021f 33 c0 xor eax, eax + 001fe 33 c0 xor eax, eax $LN5@main: - 00221 48 8b f8 mov rdi, rax - 00224 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00228 48 8d 15 00 00 + 00200 48 8b f8 mov rdi, rax + 00203 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00207 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:main$rtcFrameData - 0022f e8 00 00 00 00 call _RTC_CheckStackVars - 00234 48 8b c7 mov rax, rdi - 00237 48 8b 8d e8 01 + 0020e e8 00 00 00 00 call _RTC_CheckStackVars + 00213 48 8b c7 mov rax, rdi + 00216 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0023e 48 33 cd xor rcx, rbp - 00241 e8 00 00 00 00 call __security_check_cookie - 00246 48 8d a5 f8 01 - 00 00 lea rsp, QWORD PTR [rbp+504] - 0024d 5f pop rdi - 0024e 5d pop rbp - 0024f c3 ret 0 + 0021d 48 33 cd xor rcx, rbp + 00220 e8 00 00 00 00 call __security_check_cookie + 00225 48 8d a5 18 02 + 00 00 lea rsp, QWORD PTR [rbp+536] + 0022c 5f pop rdi + 0022d 5d pop rbp + 0022e c3 ret 0 main ENDP _TEXT ENDS ; COMDAT text$x text$x SEGMENT RetNumBlock$ = 8 Obf$ = 88 -AsmSize$ = 148 -Asm$ = 184 -Exec$ = 216 -$T6 = 436 -tv149 = 456 -tv137 = 464 -tv147 = 472 -tv145 = 480 -__$ArrayPad$ = 488 +Obf2$ = 152 +AsmSize$ = 180 +Asm$ = 216 +Exec$ = 248 +$T7 = 468 +tv145 = 488 +tv133 = 496 +tv143 = 504 +tv141 = 512 +__$ArrayPad$ = 520 main$dtor$0 PROC 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8358,15 +9186,16 @@ text$x ENDS text$x SEGMENT RetNumBlock$ = 8 Obf$ = 88 -AsmSize$ = 148 -Asm$ = 184 -Exec$ = 216 -$T6 = 436 -tv149 = 456 -tv137 = 464 -tv147 = 472 -tv145 = 480 -__$ArrayPad$ = 488 +Obf2$ = 152 +AsmSize$ = 180 +Asm$ = 216 +Exec$ = 248 +$T7 = 468 +tv145 = 488 +tv133 = 496 +tv143 = 504 +tv141 = 512 +__$ArrayPad$ = 520 main$dtor$0 PROC 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8394,24 +9223,30 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0001a 48 05 a8 00 00 + 00031 48 05 a8 00 00 00 add rax, 168 ; 000000a8H - 00020 48 8b c8 mov rcx, rax - 00023 e8 00 00 00 00 call ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_ofstream >::~basic_ofstream > - 00028 48 8b 85 e0 00 + 00037 48 8b c8 mov rcx, rax + 0003a e8 00 00 00 00 call ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_ofstream >::~basic_ofstream > + 0003f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002f 48 05 a8 00 00 + 00046 48 05 a8 00 00 00 add rax, 168 ; 000000a8H - 00035 48 8b c8 mov rcx, rax - 00038 ff 15 00 00 00 + 0004c 48 8b c8 mov rcx, rax + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ - 0003e 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ENDP ; std::basic_ofstream >::`vbase destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -8428,34 +9263,40 @@ $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 85 e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0001e 48 2d a8 00 00 + 00035 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 00024 48 8b c8 mov rcx, rax - 00027 e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ - 0002c 8b 85 e8 00 00 + 0003b 48 8b c8 mov rcx, rax + 0003e e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 00043 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00032 83 e0 01 and eax, 1 - 00035 85 c0 test eax, eax - 00037 74 1a je SHORT $LN2@scalar - 00039 48 8b 85 e0 00 + 00049 83 e0 01 and eax, 1 + 0004c 85 c0 test eax, eax + 0004e 74 1a je SHORT $LN2@scalar + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00040 48 2d a8 00 00 + 00057 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 00046 ba 08 01 00 00 mov edx, 264 ; 00000108H - 0004b 48 8b c8 mov rcx, rax - 0004e e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0005d ba 08 01 00 00 mov edx, 264 ; 00000108H + 00062 48 8b c8 mov rcx, rax + 00065 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00053 48 8b 85 e0 00 + 0006a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 2d a8 00 00 + 00071 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 00060 48 8d a5 c8 00 + 00077 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 + 0007e 5f pop rdi + 0007f 5d pop rbp + 00080 c3 ret 0 ??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z ENDP ; std::basic_ofstream >::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -8472,17 +9313,23 @@ $LN3: 0000c 48 81 ec c8 00 00 00 sub rsp, 200 ; 000000c8H 00013 48 8b ec mov rbp, rsp - 00016 48 8b bd e0 00 + 00016 48 8b fc mov rdi, rsp + 00019 b9 32 00 00 00 mov ecx, 50 ; 00000032H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 e8 + 00 00 00 mov rcx, QWORD PTR [rsp+232] + 0002d 48 8b bd e0 00 00 00 mov rdi, QWORD PTR this$[rbp] - 0001d 33 c0 xor eax, eax - 0001f 48 8b 8d e8 00 + 00034 33 c0 xor eax, eax + 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR classSize$[rbp] - 00026 f3 aa rep stosb - 00028 48 8d a5 c8 00 + 0003d f3 aa rep stosb + 0003f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002f 5f pop rdi - 00030 5d pop rbp - 00031 c3 ret 0 + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z ENDP ; std::basic_ofstream >::__autoclassinit2 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -8499,36 +9346,42 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 98 00 00 00 mov edx, 152 ; 00000098H - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 98 00 00 00 mov edx, 152 ; 00000098H + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z ENDP ; std::basic_filebuf >::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ _TEXT SEGMENT this$ = 224 ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ PROC ; std::basic_filebuf >::_Set_back, COMDAT -; 780 : void _Set_back() { // set up putback area +; 779 : void _Set_back() { // set up putback area $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8537,81 +9390,87 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 781 : if (_Mysb::eback() != &_Mychar) { // save current get buffer - - 0001f 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 780 : if (_Mysb::eback() != &_Mychar) { // save current get buffer + + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0002c 48 8b 8d e0 00 + 00043 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 48 83 c1 70 add rcx, 112 ; 00000070H - 00037 48 3b c1 cmp rax, rcx - 0003a 74 36 je SHORT $LN2@Set_back + 0004a 48 83 c1 70 add rcx, 112 ; 00000070H + 0004e 48 3b c1 cmp rax, rcx + 00051 74 36 je SHORT $LN2@Set_back -; 782 : _Set_eback = _Mysb::eback(); +; 781 : _Set_eback = _Mysb::eback(); - 0003c 48 8b 8d e0 00 + 00053 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00043 ff 15 00 00 00 + 0005a ff 15 00 00 00 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00049 48 8b 8d e0 00 + 00060 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 48 89 81 88 00 + 00067 48 89 81 88 00 00 00 mov QWORD PTR [rcx+136], rax -; 783 : _Set_egptr = _Mysb::egptr(); +; 782 : _Set_egptr = _Mysb::egptr(); - 00057 48 8b 8d e0 00 + 0006e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0005e ff 15 00 00 00 + 00075 ff 15 00 00 00 00 call QWORD PTR __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00064 48 8b 8d e0 00 + 0007b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0006b 48 89 81 90 00 + 00082 48 89 81 90 00 00 00 mov QWORD PTR [rcx+144], rax $LN2@Set_back: -; 784 : } -; 785 : _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); +; 783 : } +; 784 : _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); - 00072 48 8b 85 e0 00 + 00089 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00079 48 83 c0 71 add rax, 113 ; 00000071H - 0007d 48 8b 8d e0 00 + 00090 48 83 c0 71 add rax, 113 ; 00000071H + 00094 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00084 48 83 c1 70 add rcx, 112 ; 00000070H - 00088 48 8b 95 e0 00 + 0009b 48 83 c1 70 add rcx, 112 ; 00000070H + 0009f 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR this$[rbp] - 0008f 48 83 c2 70 add rdx, 112 ; 00000070H - 00093 4c 8b c8 mov r9, rax - 00096 4c 8b c1 mov r8, rcx - 00099 48 8b 8d e0 00 + 000a6 48 83 c2 70 add rdx, 112 ; 00000070H + 000aa 4c 8b c8 mov r9, rax + 000ad 4c 8b c1 mov r8, rcx + 000b0 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 000a0 ff 15 00 00 00 + 000b7 ff 15 00 00 00 00 call QWORD PTR __imp_?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z -; 786 : } +; 785 : } - 000a6 48 8d a5 c8 00 + 000bd 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000ad 5f pop rdi - 000ae 5d pop rbp - 000af c3 ret 0 + 000c4 5f pop rdi + 000c5 5d pop rbp + 000c6 c3 ret 0 ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ENDP ; std::basic_filebuf >::_Set_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ _TEXT SEGMENT this$ = 224 ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ PROC ; std::basic_filebuf >::_Reset_back, COMDAT -; 774 : void _Reset_back() { // restore buffer after putback +; 773 : void _Reset_back() { // restore buffer after putback $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8620,61 +9479,67 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 775 : if (_Mysb::eback() == &_Mychar) { - - 0001f 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 774 : if (_Mysb::eback() == &_Mychar) { + + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0002c 48 8b 8d e0 00 + 00043 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 48 83 c1 70 add rcx, 112 ; 00000070H - 00037 48 3b c1 cmp rax, rcx - 0003a 75 37 jne SHORT $LN2@Reset_back + 0004a 48 83 c1 70 add rcx, 112 ; 00000070H + 0004e 48 3b c1 cmp rax, rcx + 00051 75 37 jne SHORT $LN2@Reset_back -; 776 : _Mysb::setg(_Set_eback, _Set_eback, _Set_egptr); +; 775 : _Mysb::setg(_Set_eback, _Set_eback, _Set_egptr); - 0003c 48 8b 85 e0 00 + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 4c 8b 88 90 00 + 0005a 4c 8b 88 90 00 00 00 mov r9, QWORD PTR [rax+144] - 0004a 48 8b 85 e0 00 + 00061 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00051 4c 8b 80 88 00 + 00068 4c 8b 80 88 00 00 00 mov r8, QWORD PTR [rax+136] - 00058 48 8b 85 e0 00 + 0006f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8b 90 88 00 + 00076 48 8b 90 88 00 00 00 mov rdx, QWORD PTR [rax+136] - 00066 48 8b 8d e0 00 + 0007d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0006d ff 15 00 00 00 + 00084 ff 15 00 00 00 00 call QWORD PTR __imp_?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z $LN2@Reset_back: -; 777 : } -; 778 : } +; 776 : } +; 777 : } - 00073 48 8d a5 c8 00 + 0008a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007a 5f pop rdi - 0007b 5d pop rbp - 0007c c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ENDP ; std::basic_filebuf >::_Reset_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z _TEXT SEGMENT this$ = 224 _Newcvt$ = 232 ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z PROC ; std::basic_filebuf >::_Initcvt, COMDAT -; 757 : void _Initcvt(const _Cvt& _Newcvt) { // initialize codecvt pointer +; 756 : void _Initcvt(const _Cvt& _Newcvt) { // initialize codecvt pointer $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8684,61 +9549,67 @@ $LN5: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 758 : if (_Newcvt.always_noconv()) { - - 00024 48 8b 8d e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 757 : if (_Newcvt.always_noconv()) { + + 0003b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Newcvt$[rbp] - 0002b ff 15 00 00 00 + 00042 ff 15 00 00 00 00 call QWORD PTR __imp_?always_noconv@codecvt_base@std@@QEBA_NXZ - 00031 0f b6 c0 movzx eax, al - 00034 85 c0 test eax, eax - 00036 74 11 je SHORT $LN2@Initcvt + 00048 0f b6 c0 movzx eax, al + 0004b 85 c0 test eax, eax + 0004d 74 11 je SHORT $LN2@Initcvt -; 759 : _Pcvt = nullptr; // nothing to do +; 758 : _Pcvt = nullptr; // nothing to do - 00038 48 8b 85 e0 00 + 0004f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003f 48 c7 40 68 00 + 00056 48 c7 40 68 00 00 00 00 mov QWORD PTR [rax+104], 0 -; 760 : } else { // set up for nontrivial codecvt facet +; 759 : } else { // set up for nontrivial codecvt facet - 00047 eb 24 jmp SHORT $LN3@Initcvt + 0005e eb 24 jmp SHORT $LN3@Initcvt $LN2@Initcvt: -; 761 : _Pcvt = _STD addressof(_Newcvt); +; 760 : _Pcvt = _STD addressof(_Newcvt); - 00049 48 8b 8d e8 00 + 00060 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Newcvt$[rbp] - 00050 e8 00 00 00 00 call ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ; std::addressof const > - 00055 48 8b 8d e0 00 + 00067 e8 00 00 00 00 call ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ; std::addressof const > + 0006c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 89 41 68 mov QWORD PTR [rcx+104], rax + 00073 48 89 41 68 mov QWORD PTR [rcx+104], rax -; 762 : _Mysb::_Init(); // reset any buffering +; 761 : _Mysb::_Init(); // reset any buffering - 00060 48 8b 8d e0 00 + 00077 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00067 ff 15 00 00 00 + 0007e ff 15 00 00 00 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ $LN3@Initcvt: -; 763 : } -; 764 : } +; 762 : } +; 763 : } - 0006d 48 8d a5 c8 00 + 00084 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ENDP ; std::basic_filebuf >::_Initcvt _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ _TEXT SEGMENT _Codecvt_temp_buf$ = 8 @@ -8756,7 +9627,7 @@ __$ArrayPad$ = 424 this$ = 464 ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ PROC ; std::basic_filebuf >::_Endwrite, COMDAT -; 721 : bool _Endwrite() { // put shift to initial conversion state, as needed +; 720 : bool _Endwrite() { // put shift to initial conversion state, as needed $LN15: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8765,234 +9636,234 @@ $LN15: 00007 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00018 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 08 + 00013 48 8b fc mov rdi, rsp + 00016 b9 7a 00 00 00 mov ecx, 122 ; 0000007aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 a8 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 a8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 722 : if (!_Pcvt || !_Wrotesome) { +; 721 : if (!_Pcvt || !_Wrotesome) { - 00049 48 8b 85 d0 01 + 00047 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 00055 74 0f je SHORT $LN5@Endwrite - 00057 48 8b 85 d0 01 + 0004e 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00053 74 0f je SHORT $LN5@Endwrite + 00055 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005e 0f b6 40 71 movzx eax, BYTE PTR [rax+113] - 00062 85 c0 test eax, eax - 00064 75 07 jne SHORT $LN4@Endwrite + 0005c 0f b6 40 71 movzx eax, BYTE PTR [rax+113] + 00060 85 c0 test eax, eax + 00062 75 07 jne SHORT $LN4@Endwrite $LN5@Endwrite: -; 723 : return true; +; 722 : return true; - 00066 b0 01 mov al, 1 - 00068 e9 72 01 00 00 jmp $LN1@Endwrite + 00064 b0 01 mov al, 1 + 00066 e9 72 01 00 00 jmp $LN1@Endwrite $LN4@Endwrite: -; 724 : } -; 725 : -; 726 : // may have to put -; 727 : if (_Traits::eq_int_type(_Traits::eof(), overflow())) { +; 723 : } +; 724 : +; 725 : // may have to put +; 726 : if (_Traits::eq_int_type(_Traits::eof(), overflow())) { - 0006d 48 8b 85 d0 01 + 0006b 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00074 48 8b 00 mov rax, QWORD PTR [rax] - 00077 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0007b 48 89 85 98 01 + 00072 48 8b 00 mov rax, QWORD PTR [rax] + 00075 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00079 48 89 85 98 01 00 00 mov QWORD PTR tv83[rbp], rax - 00082 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00087 89 85 a0 01 00 + 00080 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00085 89 85 a0 01 00 00 mov DWORD PTR tv81[rbp], eax - 0008d 8b 95 a0 01 00 + 0008b 8b 95 a0 01 00 00 mov edx, DWORD PTR tv81[rbp] - 00093 48 8b 8d d0 01 + 00091 48 8b 8d d0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009a ff 95 98 01 00 + 00098 ff 95 98 01 00 00 call QWORD PTR tv83[rbp] - 000a0 89 85 64 01 00 + 0009e 89 85 64 01 00 00 mov DWORD PTR $T6[rbp], eax - 000a6 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 000ab 89 85 84 01 00 + 000a4 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000a9 89 85 84 01 00 00 mov DWORD PTR $T7[rbp], eax - 000b1 48 8d 95 64 01 + 000af 48 8d 95 64 01 00 00 lea rdx, QWORD PTR $T6[rbp] - 000b8 48 8d 8d 84 01 + 000b6 48 8d 8d 84 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 000bf e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 000c4 0f b6 c0 movzx eax, al - 000c7 85 c0 test eax, eax - 000c9 74 07 je SHORT $LN6@Endwrite + 000bd e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000c2 0f b6 c0 movzx eax, al + 000c5 85 c0 test eax, eax + 000c7 74 07 je SHORT $LN6@Endwrite -; 728 : return false; +; 727 : return false; - 000cb 32 c0 xor al, al - 000cd e9 0d 01 00 00 jmp $LN1@Endwrite + 000c9 32 c0 xor al, al + 000cb e9 0d 01 00 00 jmp $LN1@Endwrite $LN6@Endwrite: -; 729 : } -; 730 : -; 731 : constexpr size_t _Codecvt_temp_buf = 32; +; 728 : } +; 729 : +; 730 : constexpr size_t _Codecvt_temp_buf = 32; - 000d2 48 c7 45 08 20 + 000d0 48 c7 45 08 20 00 00 00 mov QWORD PTR _Codecvt_temp_buf$[rbp], 32 ; 00000020H -; 732 : char _Str[_Codecvt_temp_buf]; -; 733 : char* _Dest; -; 734 : switch (_Pcvt->unshift(_State, _Str, _Str + _Codecvt_temp_buf, _Dest)) { // test result of homing conversion +; 731 : char _Str[_Codecvt_temp_buf]; +; 732 : char* _Dest; +; 733 : switch (_Pcvt->unshift(_State, _Str, _Str + _Codecvt_temp_buf, _Dest)) { // test result of homing conversion - 000da 48 8b 85 d0 01 + 000d8 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 000e1 48 8b 40 68 mov rax, QWORD PTR [rax+104] - 000e5 48 89 85 98 01 + 000df 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 000e3 48 89 85 98 01 00 00 mov QWORD PTR tv131[rbp], rax - 000ec 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] - 000f0 48 8b 8d d0 01 + 000ea 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] + 000ee 48 8b 8d d0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f7 48 83 c1 74 add rcx, 116 ; 00000074H - 000fb 48 8d 55 68 lea rdx, QWORD PTR _Dest$[rbp] - 000ff 48 89 54 24 20 mov QWORD PTR [rsp+32], rdx - 00104 4c 8b c8 mov r9, rax - 00107 4c 8d 45 28 lea r8, QWORD PTR _Str$[rbp] - 0010b 48 8b d1 mov rdx, rcx - 0010e 48 8b 8d 98 01 + 000f5 48 83 c1 74 add rcx, 116 ; 00000074H + 000f9 48 8d 55 68 lea rdx, QWORD PTR _Dest$[rbp] + 000fd 48 89 54 24 20 mov QWORD PTR [rsp+32], rdx + 00102 4c 8b c8 mov r9, rax + 00105 4c 8d 45 28 lea r8, QWORD PTR _Str$[rbp] + 00109 48 8b d1 mov rdx, rcx + 0010c 48 8b 8d 98 01 00 00 mov rcx, QWORD PTR tv131[rbp] - 00115 ff 15 00 00 00 + 00113 ff 15 00 00 00 00 call QWORD PTR __imp_?unshift@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEAD1AEAPEAD@Z - 0011b 89 85 a0 01 00 + 00119 89 85 a0 01 00 00 mov DWORD PTR tv132[rbp], eax - 00121 83 bd a0 01 00 + 0011f 83 bd a0 01 00 00 00 cmp DWORD PTR tv132[rbp], 0 - 00128 74 1b je SHORT $LN7@Endwrite - 0012a 83 bd a0 01 00 + 00126 74 1b je SHORT $LN7@Endwrite + 00128 83 bd a0 01 00 00 01 cmp DWORD PTR tv132[rbp], 1 - 00131 74 1d je SHORT $LN8@Endwrite - 00133 83 bd a0 01 00 + 0012f 74 1d je SHORT $LN8@Endwrite + 00131 83 bd a0 01 00 00 03 cmp DWORD PTR tv132[rbp], 3 - 0013a 0f 84 8e 00 00 + 00138 0f 84 8e 00 00 00 je $LN10@Endwrite - 00140 e9 98 00 00 00 jmp $LN11@Endwrite + 0013e e9 98 00 00 00 jmp $LN11@Endwrite $LN7@Endwrite: -; 735 : case codecvt_base::ok: -; 736 : _Wrotesome = false; // homed successfully +; 734 : case codecvt_base::ok: +; 735 : _Wrotesome = false; // homed successfully - 00145 48 8b 85 d0 01 + 00143 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0014c c6 40 71 00 mov BYTE PTR [rax+113], 0 + 0014a c6 40 71 00 mov BYTE PTR [rax+113], 0 $LN8@Endwrite: -; 737 : -; 738 : case codecvt_base::partial: // fall through -; 739 : { // put any generated bytes -; 740 : const auto _Count = static_cast(_Dest - _Str); +; 736 : +; 737 : case codecvt_base::partial: // fall through +; 738 : { // put any generated bytes +; 739 : const auto _Count = static_cast(_Dest - _Str); - 00150 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] - 00154 48 8b 4d 68 mov rcx, QWORD PTR _Dest$[rbp] - 00158 48 2b c8 sub rcx, rax - 0015b 48 8b c1 mov rax, rcx - 0015e 48 89 85 88 00 + 0014e 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 00152 48 8b 4d 68 mov rcx, QWORD PTR _Dest$[rbp] + 00156 48 2b c8 sub rcx, rax + 00159 48 8b c1 mov rax, rcx + 0015c 48 89 85 88 00 00 00 mov QWORD PTR _Count$5[rbp], rax -; 741 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { +; 740 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { - 00165 48 83 bd 88 00 + 00163 48 83 bd 88 00 00 00 00 cmp QWORD PTR _Count$5[rbp], 0 - 0016d 76 31 jbe SHORT $LN9@Endwrite - 0016f 48 8b 85 d0 01 + 0016b 76 31 jbe SHORT $LN9@Endwrite + 0016d 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00176 4c 8b 88 80 00 + 00174 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 0017d 4c 8b 85 88 00 + 0017b 4c 8b 85 88 00 00 00 mov r8, QWORD PTR _Count$5[rbp] - 00184 ba 01 00 00 00 mov edx, 1 - 00189 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0018d ff 15 00 00 00 + 00182 ba 01 00 00 00 mov edx, 1 + 00187 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0018b ff 15 00 00 00 00 call QWORD PTR __imp_fwrite - 00193 48 39 85 88 00 + 00191 48 39 85 88 00 00 00 cmp QWORD PTR _Count$5[rbp], rax - 0019a 74 04 je SHORT $LN9@Endwrite + 00198 74 04 je SHORT $LN9@Endwrite -; 742 : return false; // write failed +; 741 : return false; // write failed - 0019c 32 c0 xor al, al - 0019e eb 3f jmp SHORT $LN1@Endwrite + 0019a 32 c0 xor al, al + 0019c eb 3f jmp SHORT $LN1@Endwrite $LN9@Endwrite: -; 743 : } -; 744 : -; 745 : return !_Wrotesome; +; 742 : } +; 743 : +; 744 : return !_Wrotesome; - 001a0 48 8b 85 d0 01 + 0019e 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 001a7 0f b6 40 71 movzx eax, BYTE PTR [rax+113] - 001ab 85 c0 test eax, eax - 001ad 75 0c jne SHORT $LN13@Endwrite - 001af c7 85 94 01 00 + 001a5 0f b6 40 71 movzx eax, BYTE PTR [rax+113] + 001a9 85 c0 test eax, eax + 001ab 75 0c jne SHORT $LN13@Endwrite + 001ad c7 85 94 01 00 00 01 00 00 00 mov DWORD PTR tv146[rbp], 1 - 001b9 eb 0a jmp SHORT $LN14@Endwrite + 001b7 eb 0a jmp SHORT $LN14@Endwrite $LN13@Endwrite: - 001bb c7 85 94 01 00 + 001b9 c7 85 94 01 00 00 00 00 00 00 mov DWORD PTR tv146[rbp], 0 $LN14@Endwrite: - 001c5 0f b6 85 94 01 + 001c3 0f b6 85 94 01 00 00 movzx eax, BYTE PTR tv146[rbp] - 001cc eb 11 jmp SHORT $LN1@Endwrite + 001ca eb 11 jmp SHORT $LN1@Endwrite $LN10@Endwrite: -; 746 : } -; 747 : -; 748 : case codecvt_base::noconv: -; 749 : _Wrotesome = false; // homed successfully +; 745 : } +; 746 : +; 747 : case codecvt_base::noconv: +; 748 : _Wrotesome = false; // homed successfully - 001ce 48 8b 85 d0 01 + 001cc 48 8b 85 d0 01 00 00 mov rax, QWORD PTR this$[rbp] - 001d5 c6 40 71 00 mov BYTE PTR [rax+113], 0 + 001d3 c6 40 71 00 mov BYTE PTR [rax+113], 0 -; 750 : return true; // nothing else to do +; 749 : return true; // nothing else to do - 001d9 b0 01 mov al, 1 - 001db eb 02 jmp SHORT $LN1@Endwrite + 001d7 b0 01 mov al, 1 + 001d9 eb 02 jmp SHORT $LN1@Endwrite $LN11@Endwrite: -; 751 : -; 752 : default: -; 753 : return false; // conversion failed +; 750 : +; 751 : default: +; 752 : return false; // conversion failed - 001dd 32 c0 xor al, al + 001db 32 c0 xor al, al $LN1@Endwrite: -; 754 : } -; 755 : } +; 753 : } +; 754 : } - 001df 48 8b f8 mov rdi, rax - 001e2 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 001e6 48 8d 15 00 00 + 001dd 48 8b f8 mov rdi, rax + 001e0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 001e4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcFrameData - 001ed e8 00 00 00 00 call _RTC_CheckStackVars - 001f2 48 8b c7 mov rax, rdi - 001f5 48 8b 8d a8 01 + 001eb e8 00 00 00 00 call _RTC_CheckStackVars + 001f0 48 8b c7 mov rax, rdi + 001f3 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001fc 48 33 cd xor rcx, rbp - 001ff e8 00 00 00 00 call __security_check_cookie - 00204 48 8d a5 b8 01 + 001fa 48 33 cd xor rcx, rbp + 001fd e8 00 00 00 00 call __security_check_cookie + 00202 48 8d a5 b8 01 00 00 lea rsp, QWORD PTR [rbp+440] - 0020b 5f pop rdi - 0020c 5d pop rbp - 0020d c3 ret 0 + 00209 5f pop rdi + 0020a 5d pop rbp + 0020b c3 ret 0 ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ENDP ; std::basic_filebuf >::_Endwrite _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z _TEXT SEGMENT _Pb$6 = 8 @@ -9006,7 +9877,7 @@ _File$ = 360 _Which$ = 368 ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z PROC ; std::basic_filebuf >::_Init, COMDAT -; 694 : void _Init(FILE* _File, _Initfl _Which) { // initialize to C stream _File after {new, open, close} +; 693 : void _Init(FILE* _File, _Initfl _Which) { // initialize to C stream _File after {new, open, close} $LN6: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -9017,169 +9888,169 @@ $LN6: 00011 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00018 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 0001d 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00022 b9 22 00 00 00 mov ecx, 34 ; 00000022H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 a8 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 38 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 38 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 695 : using _State_type = typename _Traits::state_type; -; 696 : -; 697 : __PURE_APPDOMAIN_GLOBAL static _State_type _Stinit; // initial state -; 698 : -; 699 : _Closef = _Which == _Openfl; +; 694 : using _State_type = typename _Traits::state_type; +; 695 : +; 696 : __PURE_APPDOMAIN_GLOBAL static _State_type _Stinit; // initial state +; 697 : +; 698 : _Closef = _Which == _Openfl; - 00053 83 bd 70 01 00 + 00051 83 bd 70 01 00 00 01 cmp DWORD PTR _Which$[rbp], 1 - 0005a 75 0c jne SHORT $LN4@Init - 0005c c7 85 34 01 00 + 00058 75 0c jne SHORT $LN4@Init + 0005a c7 85 34 01 00 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 - 00066 eb 0a jmp SHORT $LN5@Init + 00064 eb 0a jmp SHORT $LN5@Init $LN4@Init: - 00068 c7 85 34 01 00 + 00066 c7 85 34 01 00 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 $LN5@Init: - 00072 48 8b 85 60 01 + 00070 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00079 0f b6 8d 34 01 + 00077 0f b6 8d 34 01 00 00 movzx ecx, BYTE PTR tv66[rbp] - 00080 88 48 7c mov BYTE PTR [rax+124], cl + 0007e 88 48 7c mov BYTE PTR [rax+124], cl -; 700 : _Wrotesome = false; +; 699 : _Wrotesome = false; - 00083 48 8b 85 60 01 + 00081 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008a c6 40 71 00 mov BYTE PTR [rax+113], 0 + 00088 c6 40 71 00 mov BYTE PTR [rax+113], 0 -; 701 : -; 702 : _Mysb::_Init(); // initialize stream buffer base object +; 700 : +; 701 : _Mysb::_Init(); // initialize stream buffer base object - 0008e 48 8b 8d 60 01 + 0008c 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00095 ff 15 00 00 00 + 00093 ff 15 00 00 00 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ -; 703 : -; 704 : if (_File && sizeof(_Elem) == 1) { // point inside C stream with [first, first + count) buffer +; 702 : +; 703 : if (_File && sizeof(_Elem) == 1) { // point inside C stream with [first, first + count) buffer - 0009b 48 83 bd 68 01 + 00099 48 83 bd 68 01 00 00 00 cmp QWORD PTR _File$[rbp], 0 - 000a3 74 74 je SHORT $LN2@Init - 000a5 33 c0 xor eax, eax - 000a7 83 f8 01 cmp eax, 1 - 000aa 74 6d je SHORT $LN2@Init + 000a1 74 74 je SHORT $LN2@Init + 000a3 33 c0 xor eax, eax + 000a5 83 f8 01 cmp eax, 1 + 000a8 74 6d je SHORT $LN2@Init -; 705 : _Elem** _Pb = nullptr; +; 704 : _Elem** _Pb = nullptr; - 000ac 48 c7 45 08 00 + 000aa 48 c7 45 08 00 00 00 00 mov QWORD PTR _Pb$6[rbp], 0 -; 706 : _Elem** _Pn = nullptr; +; 705 : _Elem** _Pn = nullptr; - 000b4 48 c7 45 28 00 + 000b2 48 c7 45 28 00 00 00 00 mov QWORD PTR _Pn$7[rbp], 0 -; 707 : int* _Nr = nullptr; +; 706 : int* _Nr = nullptr; - 000bc 48 c7 45 48 00 + 000ba 48 c7 45 48 00 00 00 00 mov QWORD PTR _Nr$8[rbp], 0 -; 708 : -; 709 : ::_get_stream_buffer_pointers( +; 707 : +; 708 : ::_get_stream_buffer_pointers( - 000c4 4c 8d 4d 48 lea r9, QWORD PTR _Nr$8[rbp] - 000c8 4c 8d 45 28 lea r8, QWORD PTR _Pn$7[rbp] - 000cc 48 8d 55 08 lea rdx, QWORD PTR _Pb$6[rbp] - 000d0 48 8b 8d 68 01 + 000c2 4c 8d 4d 48 lea r9, QWORD PTR _Nr$8[rbp] + 000c6 4c 8d 45 28 lea r8, QWORD PTR _Pn$7[rbp] + 000ca 48 8d 55 08 lea rdx, QWORD PTR _Pb$6[rbp] + 000ce 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _File$[rbp] - 000d7 ff 15 00 00 00 + 000d5 ff 15 00 00 00 00 call QWORD PTR __imp__get_stream_buffer_pointers -; 710 : _File, reinterpret_cast(&_Pb), reinterpret_cast(&_Pn), &_Nr); -; 711 : int* _Nw = _Nr; - - 000dd 48 8b 45 48 mov rax, QWORD PTR _Nr$8[rbp] - 000e1 48 89 45 68 mov QWORD PTR _Nw$9[rbp], rax - -; 712 : -; 713 : _Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw); - - 000e5 48 8b 45 68 mov rax, QWORD PTR _Nw$9[rbp] - 000e9 48 89 44 24 30 mov QWORD PTR [rsp+48], rax - 000ee 48 8b 45 28 mov rax, QWORD PTR _Pn$7[rbp] - 000f2 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 000f7 48 8b 45 08 mov rax, QWORD PTR _Pb$6[rbp] - 000fb 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00100 4c 8b 4d 48 mov r9, QWORD PTR _Nr$8[rbp] - 00104 4c 8b 45 28 mov r8, QWORD PTR _Pn$7[rbp] - 00108 48 8b 55 08 mov rdx, QWORD PTR _Pb$6[rbp] - 0010c 48 8b 8d 60 01 +; 709 : _File, reinterpret_cast(&_Pb), reinterpret_cast(&_Pn), &_Nr); +; 710 : int* _Nw = _Nr; + + 000db 48 8b 45 48 mov rax, QWORD PTR _Nr$8[rbp] + 000df 48 89 45 68 mov QWORD PTR _Nw$9[rbp], rax + +; 711 : +; 712 : _Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw); + + 000e3 48 8b 45 68 mov rax, QWORD PTR _Nw$9[rbp] + 000e7 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 000ec 48 8b 45 28 mov rax, QWORD PTR _Pn$7[rbp] + 000f0 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 000f5 48 8b 45 08 mov rax, QWORD PTR _Pb$6[rbp] + 000f9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000fe 4c 8b 4d 48 mov r9, QWORD PTR _Nr$8[rbp] + 00102 4c 8b 45 28 mov r8, QWORD PTR _Pn$7[rbp] + 00106 48 8b 55 08 mov rdx, QWORD PTR _Pb$6[rbp] + 0010a 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00113 ff 15 00 00 00 + 00111 ff 15 00 00 00 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z $LN2@Init: -; 714 : } -; 715 : -; 716 : _Myfile = _File; +; 713 : } +; 714 : +; 715 : _Myfile = _File; - 00119 48 8b 85 60 01 + 00117 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00120 48 8b 8d 68 01 + 0011e 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _File$[rbp] - 00127 48 89 88 80 00 + 00125 48 89 88 80 00 00 00 mov QWORD PTR [rax+128], rcx -; 717 : _State = _Stinit; +; 716 : _State = _Stinit; - 0012e 48 8b 85 60 01 + 0012c 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00135 48 8b 0d 00 00 + 00133 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4U_Mbstatet@@A ; `std::basic_filebuf >::_Init'::`2'::_Stinit - 0013c 48 89 48 74 mov QWORD PTR [rax+116], rcx + 0013a 48 89 48 74 mov QWORD PTR [rax+116], rcx -; 718 : _Pcvt = nullptr; // pointer to codecvt facet +; 717 : _Pcvt = nullptr; // pointer to codecvt facet - 00140 48 8b 85 60 01 + 0013e 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00147 48 c7 40 68 00 + 00145 48 c7 40 68 00 00 00 00 mov QWORD PTR [rax+104], 0 -; 719 : } +; 718 : } - 0014f 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 00153 48 8d 15 00 00 + 0014d 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 00151 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcFrameData - 0015a e8 00 00 00 00 call _RTC_CheckStackVars - 0015f 48 8b 8d 38 01 + 00158 e8 00 00 00 00 call _RTC_CheckStackVars + 0015d 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00166 48 33 cd xor rcx, rbp - 00169 e8 00 00 00 00 call __security_check_cookie - 0016e 48 8d a5 48 01 + 00164 48 33 cd xor rcx, rbp + 00167 e8 00 00 00 00 call __security_check_cookie + 0016c 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 00175 5f pop rdi - 00176 5d pop rbp - 00177 c3 ret 0 + 00173 5f pop rdi + 00174 5d pop rbp + 00175 c3 ret 0 ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ENDP ; std::basic_filebuf >::_Init _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z _TEXT SEGMENT this$ = 224 _Loc$ = 232 ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z PROC ; std::basic_filebuf >::imbue, COMDAT -; 689 : virtual void __CLR_OR_THIS_CALL imbue(const locale& _Loc) override { +; 688 : virtual void __CLR_OR_THIS_CALL imbue(const locale& _Loc) override { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9189,32 +10060,38 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 690 : // set locale to argument (capture nontrivial codecvt facet) -; 691 : _Initcvt(_STD use_facet<_Cvt>(_Loc)); - - 00024 48 8b 8d e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 689 : // set locale to argument (capture nontrivial codecvt facet) +; 690 : _Initcvt(_STD use_facet<_Cvt>(_Loc)); + + 0003b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Loc$[rbp] - 0002b e8 00 00 00 00 call ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > - 00030 48 8b d0 mov rdx, rax - 00033 48 8b 8d e0 00 + 00042 e8 00 00 00 00 call ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > + 00047 48 8b d0 mov rdx, rax + 0004a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003a e8 00 00 00 00 call ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt + 00051 e8 00 00 00 00 call ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt -; 692 : } +; 691 : } - 0003f 48 8d a5 c8 00 + 00056 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z ENDP ; std::basic_filebuf >::imbue _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ _TEXT SEGMENT $T1 = 196 @@ -9224,7 +10101,7 @@ tv78 = 256 this$ = 304 ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ PROC ; std::basic_filebuf >::sync, COMDAT -; 681 : virtual int __CLR_OR_THIS_CALL sync() override { // synchronize C stream with external file +; 680 : virtual int __CLR_OR_THIS_CALL sync() override { // synchronize C stream with external file $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9233,79 +10110,85 @@ $LN5: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 682 : if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), overflow()) || 0 <= _CSTD fflush(_Myfile)) { +; 681 : if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), overflow()) || 0 <= _CSTD fflush(_Myfile)) { - 0001f 48 8b 85 30 01 + 00036 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 b8 80 00 + 0003d 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0002e 74 76 je SHORT $LN3@sync - 00030 48 8b 85 30 01 + 00045 74 76 je SHORT $LN3@sync + 00047 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0003e 48 89 85 f8 00 + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00055 48 89 85 f8 00 00 00 mov QWORD PTR tv80[rbp], rax - 00045 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0004a 89 85 00 01 00 + 0005c e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00061 89 85 00 01 00 00 mov DWORD PTR tv78[rbp], eax - 00050 8b 95 00 01 00 + 00067 8b 95 00 01 00 00 mov edx, DWORD PTR tv78[rbp] - 00056 48 8b 8d 30 01 + 0006d 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005d ff 95 f8 00 00 + 00074 ff 95 f8 00 00 00 call QWORD PTR tv80[rbp] - 00063 89 85 c4 00 00 + 0007a 89 85 c4 00 00 00 mov DWORD PTR $T1[rbp], eax - 00069 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0006e 89 85 e4 00 00 + 00080 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00085 89 85 e4 00 00 00 mov DWORD PTR $T2[rbp], eax - 00074 48 8d 95 c4 00 + 0008b 48 8d 95 c4 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0007b 48 8d 8d e4 00 + 00092 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 00082 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00087 0f b6 c0 movzx eax, al - 0008a 85 c0 test eax, eax - 0008c 75 18 jne SHORT $LN3@sync - 0008e 48 8b 85 30 01 + 00099 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0009e 0f b6 c0 movzx eax, al + 000a1 85 c0 test eax, eax + 000a3 75 18 jne SHORT $LN3@sync + 000a5 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00095 48 8b 88 80 00 + 000ac 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0009c ff 15 00 00 00 + 000b3 ff 15 00 00 00 00 call QWORD PTR __imp_fflush - 000a2 85 c0 test eax, eax - 000a4 7c 04 jl SHORT $LN2@sync + 000b9 85 c0 test eax, eax + 000bb 7c 04 jl SHORT $LN2@sync $LN3@sync: -; 683 : return 0; +; 682 : return 0; - 000a6 33 c0 xor eax, eax - 000a8 eb 05 jmp SHORT $LN1@sync + 000bd 33 c0 xor eax, eax + 000bf eb 05 jmp SHORT $LN1@sync $LN2@sync: -; 684 : } -; 685 : -; 686 : return -1; +; 683 : } +; 684 : +; 685 : return -1; - 000aa b8 ff ff ff ff mov eax, -1 + 000c1 b8 ff ff ff ff mov eax, -1 $LN1@sync: -; 687 : } +; 686 : } - 000af 48 8d a5 18 01 + 000c6 48 8d a5 18 01 00 00 lea rsp, QWORD PTR [rbp+280] - 000b6 5f pop rdi - 000b7 5d pop rbp - 000b8 c3 ret 0 + 000cd 5f pop rdi + 000ce 5d pop rbp + 000cf c3 ret 0 ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::sync _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z _TEXT SEGMENT _Mode$ = 4 @@ -9315,7 +10198,7 @@ _Buffer$ = 296 _Count$ = 304 ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z PROC ; std::basic_filebuf >::setbuf, COMDAT -; 662 : virtual _Mysb* __CLR_OR_THIS_CALL setbuf(_Elem* _Buffer, streamsize _Count) override { // offer _Buffer to C stream +; 661 : virtual _Mysb* __CLR_OR_THIS_CALL setbuf(_Elem* _Buffer, streamsize _Count) override { // offer _Buffer to C stream $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -9326,104 +10209,110 @@ $LN7: 00011 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 663 : int _Mode; -; 664 : if (!_Buffer && _Count == 0) { +; 662 : int _Mode; +; 663 : if (!_Buffer && _Count == 0) { - 00029 48 83 bd 28 01 + 00040 48 83 bd 28 01 00 00 00 cmp QWORD PTR _Buffer$[rbp], 0 - 00031 75 13 jne SHORT $LN2@setbuf - 00033 48 83 bd 30 01 + 00048 75 13 jne SHORT $LN2@setbuf + 0004a 48 83 bd 30 01 00 00 00 cmp QWORD PTR _Count$[rbp], 0 - 0003b 75 09 jne SHORT $LN2@setbuf + 00052 75 09 jne SHORT $LN2@setbuf -; 665 : _Mode = _IONBF; +; 664 : _Mode = _IONBF; - 0003d c7 45 04 04 00 + 00054 c7 45 04 04 00 00 00 mov DWORD PTR _Mode$[rbp], 4 -; 666 : } else { +; 665 : } else { - 00044 eb 07 jmp SHORT $LN3@setbuf + 0005b eb 07 jmp SHORT $LN3@setbuf $LN2@setbuf: -; 667 : _Mode = _IOFBF; +; 666 : _Mode = _IOFBF; - 00046 c7 45 04 00 00 + 0005d c7 45 04 00 00 00 00 mov DWORD PTR _Mode$[rbp], 0 $LN3@setbuf: -; 668 : } -; 669 : -; 670 : const size_t _Size = static_cast(_Count) * sizeof(_Elem); +; 667 : } +; 668 : +; 669 : const size_t _Size = static_cast(_Count) * sizeof(_Elem); - 0004d 48 8b 85 30 01 + 00064 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00054 48 89 45 28 mov QWORD PTR _Size$[rbp], rax + 0006b 48 89 45 28 mov QWORD PTR _Size$[rbp], rax -; 671 : -; 672 : if (!_Myfile || _CSTD setvbuf(_Myfile, reinterpret_cast(_Buffer), _Mode, _Size) != 0) { +; 670 : +; 671 : if (!_Myfile || _CSTD setvbuf(_Myfile, reinterpret_cast(_Buffer), _Mode, _Size) != 0) { - 00058 48 8b 85 20 01 + 0006f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 83 b8 80 00 + 00076 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00067 74 27 je SHORT $LN5@setbuf - 00069 4c 8b 4d 28 mov r9, QWORD PTR _Size$[rbp] - 0006d 44 8b 45 04 mov r8d, DWORD PTR _Mode$[rbp] - 00071 48 8b 95 28 01 + 0007e 74 27 je SHORT $LN5@setbuf + 00080 4c 8b 4d 28 mov r9, QWORD PTR _Size$[rbp] + 00084 44 8b 45 04 mov r8d, DWORD PTR _Mode$[rbp] + 00088 48 8b 95 28 01 00 00 mov rdx, QWORD PTR _Buffer$[rbp] - 00078 48 8b 85 20 01 + 0008f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007f 48 8b 88 80 00 + 00096 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 00086 ff 15 00 00 00 + 0009d ff 15 00 00 00 00 call QWORD PTR __imp_setvbuf - 0008c 85 c0 test eax, eax - 0008e 74 04 je SHORT $LN4@setbuf + 000a3 85 c0 test eax, eax + 000a5 74 04 je SHORT $LN4@setbuf $LN5@setbuf: -; 673 : return nullptr; // failed +; 672 : return nullptr; // failed - 00090 33 c0 xor eax, eax - 00092 eb 27 jmp SHORT $LN1@setbuf + 000a7 33 c0 xor eax, eax + 000a9 eb 27 jmp SHORT $LN1@setbuf $LN4@setbuf: -; 674 : } -; 675 : -; 676 : // new buffer, reinitialize pointers -; 677 : _Init(_Myfile, _Openfl); +; 673 : } +; 674 : +; 675 : // new buffer, reinitialize pointers +; 676 : _Init(_Myfile, _Openfl); - 00094 41 b8 01 00 00 + 000ab 41 b8 01 00 00 00 mov r8d, 1 - 0009a 48 8b 85 20 01 + 000b1 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8b 90 80 00 + 000b8 48 8b 90 80 00 00 00 mov rdx, QWORD PTR [rax+128] - 000a8 48 8b 8d 20 01 + 000bf 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000af e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + 000c6 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init -; 678 : return this; +; 677 : return this; - 000b4 48 8b 85 20 01 + 000cb 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] $LN1@setbuf: -; 679 : } +; 678 : } - 000bb 48 8d a5 08 01 + 000d2 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 000d9 5f pop rdi + 000da 5d pop rbp + 000db c3 ret 0 ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z ENDP ; std::basic_filebuf >::setbuf _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z _TEXT SEGMENT _Off$ = 8 @@ -9435,7 +10324,7 @@ _Pos$ = 304 __formal$ = 312 ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z PROC ; std::basic_filebuf >::seekpos, COMDAT -; 649 : pos_type _Pos, ios_base::openmode = ios_base::in | ios_base::out) override { +; 648 : pos_type _Pos, ios_base::openmode = ios_base::in | ios_base::out) override { $LN5: 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d @@ -9447,120 +10336,120 @@ $LN5: 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 12 00 00 00 mov ecx, 18 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 48 + 00022 48 8b fc mov rdi, rsp + 00025 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 f8 00 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 650 : // change position to _Pos -; 651 : off_type _Off = static_cast(_Pos); +; 649 : // change position to _Pos +; 650 : off_type _Off = static_cast(_Pos); - 00058 48 8b 8d 30 01 + 00056 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR _Pos$[rbp] - 0005f e8 00 00 00 00 call ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ; std::fpos<_Mbstatet>::operator __int64 - 00064 48 89 45 08 mov QWORD PTR _Off$[rbp], rax + 0005d e8 00 00 00 00 call ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ; std::fpos<_Mbstatet>::operator __int64 + 00062 48 89 45 08 mov QWORD PTR _Off$[rbp], rax -; 652 : -; 653 : if (!_Myfile || !_Endwrite() || _CSTD fsetpos(_Myfile, &_Off) != 0) { +; 651 : +; 652 : if (!_Myfile || !_Endwrite() || _CSTD fsetpos(_Myfile, &_Off) != 0) { - 00068 48 8b 85 20 01 + 00066 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006f 48 83 b8 80 00 + 0006d 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00077 74 2f je SHORT $LN3@seekpos - 00079 48 8b 8d 20 01 + 00075 74 2f je SHORT $LN3@seekpos + 00077 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00080 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite - 00085 0f b6 c0 movzx eax, al - 00088 85 c0 test eax, eax - 0008a 74 1c je SHORT $LN3@seekpos - 0008c 48 8d 55 08 lea rdx, QWORD PTR _Off$[rbp] - 00090 48 8b 85 20 01 + 0007e e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 00083 0f b6 c0 movzx eax, al + 00086 85 c0 test eax, eax + 00088 74 1c je SHORT $LN3@seekpos + 0008a 48 8d 55 08 lea rdx, QWORD PTR _Off$[rbp] + 0008e 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00097 48 8b 88 80 00 + 00095 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0009e ff 15 00 00 00 + 0009c ff 15 00 00 00 00 call QWORD PTR __imp_fsetpos - 000a4 85 c0 test eax, eax - 000a6 74 1c je SHORT $LN2@seekpos + 000a2 85 c0 test eax, eax + 000a4 74 1c je SHORT $LN2@seekpos $LN3@seekpos: -; 654 : return pos_type(-1); // report failure +; 653 : return pos_type(-1); // report failure - 000a8 48 c7 c2 ff ff + 000a6 48 c7 c2 ff ff ff ff mov rdx, -1 - 000af 48 8b 8d 28 01 + 000ad 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 000b6 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> - 000bb 48 8b 85 28 01 + 000b4 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 000b9 48 8b 85 28 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - 000c2 eb 4f jmp SHORT $LN1@seekpos + 000c0 eb 4f jmp SHORT $LN1@seekpos $LN2@seekpos: -; 655 : } -; 656 : -; 657 : _State = _Pos.state(); +; 654 : } +; 655 : +; 656 : _State = _Pos.state(); - 000c4 48 8d 95 e4 00 + 000c2 48 8d 95 e4 00 00 00 lea rdx, QWORD PTR $T4[rbp] - 000cb 48 8b 8d 30 01 + 000c9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR _Pos$[rbp] - 000d2 e8 00 00 00 00 call ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ; std::fpos<_Mbstatet>::state - 000d7 48 8b 00 mov rax, QWORD PTR [rax] - 000da 48 8b 8d 20 01 + 000d0 e8 00 00 00 00 call ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ; std::fpos<_Mbstatet>::state + 000d5 48 8b 00 mov rax, QWORD PTR [rax] + 000d8 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000e1 48 89 41 74 mov QWORD PTR [rcx+116], rax + 000df 48 89 41 74 mov QWORD PTR [rcx+116], rax -; 658 : _Reset_back(); // revert from _Mychar buffer, discarding any putback +; 657 : _Reset_back(); // revert from _Mychar buffer, discarding any putback - 000e5 48 8b 8d 20 01 + 000e3 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ec e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + 000ea e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back -; 659 : return pos_type(_State, _Off); // return new position +; 658 : return pos_type(_State, _Off); // return new position - 000f1 4c 8b 45 08 mov r8, QWORD PTR _Off$[rbp] - 000f5 48 8b 85 20 01 + 000ef 4c 8b 45 08 mov r8, QWORD PTR _Off$[rbp] + 000f3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fc 48 8b 50 74 mov rdx, QWORD PTR [rax+116] - 00100 48 8b 8d 28 01 + 000fa 48 8b 50 74 mov rdx, QWORD PTR [rax+116] + 000fe 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00107 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> - 0010c 48 8b 85 28 01 + 00105 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 0010a 48 8b 85 28 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] $LN1@seekpos: -; 660 : } +; 659 : } - 00113 48 8b f8 mov rdi, rax - 00116 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0011a 48 8d 15 00 00 + 00111 48 8b f8 mov rdi, rax + 00114 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00118 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcFrameData - 00121 e8 00 00 00 00 call _RTC_CheckStackVars - 00126 48 8b c7 mov rax, rdi - 00129 48 8b 8d f8 00 + 0011f e8 00 00 00 00 call _RTC_CheckStackVars + 00124 48 8b c7 mov rax, rdi + 00127 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00130 48 33 cd xor rcx, rbp - 00133 e8 00 00 00 00 call __security_check_cookie - 00138 48 8d a5 08 01 + 0012e 48 33 cd xor rcx, rbp + 00131 e8 00 00 00 00 call __security_check_cookie + 00136 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0013f 5f pop rdi - 00140 5d pop rbp - 00141 c3 ret 0 + 0013d 5f pop rdi + 0013e 5d pop rbp + 0013f c3 ret 0 ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z ENDP ; std::basic_filebuf >::seekpos _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z _TEXT SEGMENT _Fileposition$ = 8 @@ -9572,7 +10461,7 @@ _Way$ = 280 __formal$ = 288 ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z PROC ; std::basic_filebuf >::seekoff, COMDAT -; 629 : ios_base::openmode = ios_base::in | ios_base::out) override { // change position by _Off +; 628 : ios_base::openmode = ios_base::in | ios_base::out) override { // change position by _Off $LN8: 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d @@ -9584,155 +10473,155 @@ $LN8: 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 0a 00 00 00 mov ecx, 10 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 28 + 00022 48 8b fc mov rdi, rsp + 00025 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 d8 00 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 630 : fpos_t _Fileposition; -; 631 : -; 632 : if (_Mysb::gptr() == &_Mychar // something putback -; 633 : && _Way == ios_base::cur // a relative seek -; 634 : && !_Pcvt) { // not converting +; 629 : fpos_t _Fileposition; +; 630 : +; 631 : if (_Mysb::gptr() == &_Mychar // something putback +; 632 : && _Way == ios_base::cur // a relative seek +; 633 : && !_Pcvt) { // not converting - 00058 48 8b 8d 00 01 + 00056 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f ff 15 00 00 00 + 0005d ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00065 48 8b 8d 00 01 + 00063 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0006c 48 83 c1 70 add rcx, 112 ; 00000070H - 00070 48 3b c1 cmp rax, rcx - 00073 75 28 jne SHORT $LN2@seekoff - 00075 83 bd 18 01 00 + 0006a 48 83 c1 70 add rcx, 112 ; 00000070H + 0006e 48 3b c1 cmp rax, rcx + 00071 75 28 jne SHORT $LN2@seekoff + 00073 83 bd 18 01 00 00 01 cmp DWORD PTR _Way$[rbp], 1 - 0007c 75 1f jne SHORT $LN2@seekoff - 0007e 48 8b 85 00 01 + 0007a 75 1f jne SHORT $LN2@seekoff + 0007c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00085 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 0008a 75 11 jne SHORT $LN2@seekoff + 00083 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00088 75 11 jne SHORT $LN2@seekoff -; 635 : _Off -= static_cast(sizeof(_Elem)); // back up over _Elem bytes +; 634 : _Off -= static_cast(sizeof(_Elem)); // back up over _Elem bytes - 0008c 48 8b 85 10 01 + 0008a 48 8b 85 10 01 00 00 mov rax, QWORD PTR _Off$[rbp] - 00093 48 ff c8 dec rax - 00096 48 89 85 10 01 + 00091 48 ff c8 dec rax + 00094 48 89 85 10 01 00 00 mov QWORD PTR _Off$[rbp], rax $LN2@seekoff: -; 636 : } -; 637 : -; 638 : if (!_Myfile || !_Endwrite() -; 639 : || ((_Off != 0 || _Way != ios_base::cur) && _CSTD _fseeki64(_Myfile, _Off, _Way) != 0) -; 640 : || _CSTD fgetpos(_Myfile, &_Fileposition) != 0) { +; 635 : } +; 636 : +; 637 : if (!_Myfile || !_Endwrite() +; 638 : || ((_Off != 0 || _Way != ios_base::cur) && _CSTD _fseeki64(_Myfile, _Off, _Way) != 0) +; 639 : || _CSTD fgetpos(_Myfile, &_Fileposition) != 0) { - 0009d 48 8b 85 00 01 + 0009b 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a4 48 83 b8 80 00 + 000a2 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 000ac 74 68 je SHORT $LN4@seekoff - 000ae 48 8b 8d 00 01 + 000aa 74 68 je SHORT $LN4@seekoff + 000ac 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000b5 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite - 000ba 0f b6 c0 movzx eax, al - 000bd 85 c0 test eax, eax - 000bf 74 55 je SHORT $LN4@seekoff - 000c1 48 83 bd 10 01 + 000b3 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 000b8 0f b6 c0 movzx eax, al + 000bb 85 c0 test eax, eax + 000bd 74 55 je SHORT $LN4@seekoff + 000bf 48 83 bd 10 01 00 00 00 cmp QWORD PTR _Off$[rbp], 0 - 000c9 75 09 jne SHORT $LN6@seekoff - 000cb 83 bd 18 01 00 + 000c7 75 09 jne SHORT $LN6@seekoff + 000c9 83 bd 18 01 00 00 01 cmp DWORD PTR _Way$[rbp], 1 - 000d2 74 26 je SHORT $LN5@seekoff + 000d0 74 26 je SHORT $LN5@seekoff $LN6@seekoff: - 000d4 44 8b 85 18 01 + 000d2 44 8b 85 18 01 00 00 mov r8d, DWORD PTR _Way$[rbp] - 000db 48 8b 95 10 01 + 000d9 48 8b 95 10 01 00 00 mov rdx, QWORD PTR _Off$[rbp] - 000e2 48 8b 85 00 01 + 000e0 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000e9 48 8b 88 80 00 + 000e7 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 000f0 ff 15 00 00 00 + 000ee ff 15 00 00 00 00 call QWORD PTR __imp__fseeki64 - 000f6 85 c0 test eax, eax - 000f8 75 1c jne SHORT $LN4@seekoff + 000f4 85 c0 test eax, eax + 000f6 75 1c jne SHORT $LN4@seekoff $LN5@seekoff: - 000fa 48 8d 55 08 lea rdx, QWORD PTR _Fileposition$[rbp] - 000fe 48 8b 85 00 01 + 000f8 48 8d 55 08 lea rdx, QWORD PTR _Fileposition$[rbp] + 000fc 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00105 48 8b 88 80 00 + 00103 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0010c ff 15 00 00 00 + 0010a ff 15 00 00 00 00 call QWORD PTR __imp_fgetpos - 00112 85 c0 test eax, eax - 00114 74 1c je SHORT $LN3@seekoff + 00110 85 c0 test eax, eax + 00112 74 1c je SHORT $LN3@seekoff $LN4@seekoff: -; 641 : return pos_type(-1); // report failure +; 640 : return pos_type(-1); // report failure - 00116 48 c7 c2 ff ff + 00114 48 c7 c2 ff ff ff ff mov rdx, -1 - 0011d 48 8b 8d 08 01 + 0011b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00124 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> - 00129 48 8b 85 08 01 + 00122 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 00127 48 8b 85 08 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - 00130 eb 2e jmp SHORT $LN1@seekoff + 0012e eb 2e jmp SHORT $LN1@seekoff $LN3@seekoff: -; 642 : } -; 643 : -; 644 : _Reset_back(); // revert from _Mychar buffer, discarding any putback +; 641 : } +; 642 : +; 643 : _Reset_back(); // revert from _Mychar buffer, discarding any putback - 00132 48 8b 8d 00 01 + 00130 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00139 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + 00137 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back -; 645 : return pos_type(_State, _Fileposition); // return new position +; 644 : return pos_type(_State, _Fileposition); // return new position - 0013e 4c 8b 45 08 mov r8, QWORD PTR _Fileposition$[rbp] - 00142 48 8b 85 00 01 + 0013c 4c 8b 45 08 mov r8, QWORD PTR _Fileposition$[rbp] + 00140 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00149 48 8b 50 74 mov rdx, QWORD PTR [rax+116] - 0014d 48 8b 8d 08 01 + 00147 48 8b 50 74 mov rdx, QWORD PTR [rax+116] + 0014b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00154 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> - 00159 48 8b 85 08 01 + 00152 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 00157 48 8b 85 08 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] $LN1@seekoff: -; 646 : } +; 645 : } - 00160 48 8b f8 mov rdi, rax - 00163 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00167 48 8d 15 00 00 + 0015e 48 8b f8 mov rdi, rax + 00161 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00165 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcFrameData - 0016e e8 00 00 00 00 call _RTC_CheckStackVars - 00173 48 8b c7 mov rax, rdi - 00176 48 8b 8d d8 00 + 0016c e8 00 00 00 00 call _RTC_CheckStackVars + 00171 48 8b c7 mov rax, rdi + 00174 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0017d 48 33 cd xor rcx, rbp - 00180 e8 00 00 00 00 call __security_check_cookie - 00185 48 8d a5 e8 00 + 0017b 48 33 cd xor rcx, rbp + 0017e e8 00 00 00 00 call __security_check_cookie + 00183 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0018c 5f pop rdi - 0018d 5d pop rbp - 0018e c3 ret 0 + 0018a 5f pop rdi + 0018b 5d pop rbp + 0018c c3 ret 0 ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z ENDP ; std::basic_filebuf >::seekoff _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z _TEXT SEGMENT _Start_count$1 = 8 @@ -9742,7 +10631,7 @@ _Ptr$ = 296 _Count$ = 304 ?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z PROC ; std::basic_filebuf >::xsputn, COMDAT -; 597 : virtual streamsize __CLR_OR_THIS_CALL xsputn(const _Elem* _Ptr, streamsize _Count) override { +; 596 : virtual streamsize __CLR_OR_THIS_CALL xsputn(const _Elem* _Ptr, streamsize _Count) override { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -9753,172 +10642,178 @@ $LN7: 00011 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 598 : // put _Count characters to stream -; 599 : if constexpr (sizeof(_Elem) == 1) { -; 600 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing +; 597 : // put _Count characters to stream +; 598 : if _CONSTEXPR_IF (sizeof(_Elem) == 1) { +; 599 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing - 00029 48 8b 85 20 01 + 00040 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 00035 74 20 je SHORT $LN2@xsputn + 00047 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0004c 74 20 je SHORT $LN2@xsputn -; 601 : return _Mysb::xsputn(_Ptr, _Count); +; 600 : return _Mysb::xsputn(_Ptr, _Count); - 00037 4c 8b 85 30 01 + 0004e 4c 8b 85 30 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 0003e 48 8b 95 28 01 + 00055 48 8b 95 28 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00045 48 8b 8d 20 01 + 0005c 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004c ff 15 00 00 00 + 00063 ff 15 00 00 00 00 call QWORD PTR __imp_?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z - 00052 e9 0c 01 00 00 jmp $LN1@xsputn + 00069 e9 0c 01 00 00 jmp $LN1@xsputn $LN2@xsputn: -; 602 : } -; 603 : -; 604 : const streamsize _Start_count = _Count; +; 601 : } +; 602 : +; 603 : const streamsize _Start_count = _Count; - 00057 48 8b 85 30 01 + 0006e 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 0005e 48 89 45 08 mov QWORD PTR _Start_count$1[rbp], rax + 00075 48 89 45 08 mov QWORD PTR _Start_count$1[rbp], rax -; 605 : streamsize _Size = _Mysb::_Pnavail(); +; 604 : streamsize _Size = _Mysb::_Pnavail(); - 00062 48 8b 8d 20 01 + 00079 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00069 ff 15 00 00 00 + 00080 ff 15 00 00 00 00 call QWORD PTR __imp_?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ - 0006f 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax + 00086 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax -; 606 : if (0 < _Count && 0 < _Size) { // copy to write buffer +; 605 : if (0 < _Count && 0 < _Size) { // copy to write buffer - 00073 48 83 bd 30 01 + 0008a 48 83 bd 30 01 00 00 00 cmp QWORD PTR _Count$[rbp], 0 - 0007b 7e 7f jle SHORT $LN3@xsputn - 0007d 48 83 7d 28 00 cmp QWORD PTR _Size$2[rbp], 0 - 00082 7e 78 jle SHORT $LN3@xsputn + 00092 7e 7f jle SHORT $LN3@xsputn + 00094 48 83 7d 28 00 cmp QWORD PTR _Size$2[rbp], 0 + 00099 7e 78 jle SHORT $LN3@xsputn -; 607 : if (_Count < _Size) { +; 606 : if (_Count < _Size) { - 00084 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] - 00088 48 39 85 30 01 + 0009b 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 0009f 48 39 85 30 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 0008f 7d 0b jge SHORT $LN4@xsputn + 000a6 7d 0b jge SHORT $LN4@xsputn -; 608 : _Size = _Count; +; 607 : _Size = _Count; - 00091 48 8b 85 30 01 + 000a8 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00098 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax + 000af 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax $LN4@xsputn: -; 609 : } -; 610 : -; 611 : _Traits::copy(_Mysb::pptr(), _Ptr, static_cast(_Size)); +; 608 : } +; 609 : +; 610 : _Traits::copy(_Mysb::pptr(), _Ptr, static_cast(_Size)); - 0009c 48 8b 8d 20 01 + 000b3 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000a3 ff 15 00 00 00 + 000ba ff 15 00 00 00 00 call QWORD PTR __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 000a9 4c 8b 45 28 mov r8, QWORD PTR _Size$2[rbp] - 000ad 48 8b 95 28 01 + 000c0 4c 8b 45 28 mov r8, QWORD PTR _Size$2[rbp] + 000c4 48 8b 95 28 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 000b4 48 8b c8 mov rcx, rax - 000b7 e8 00 00 00 00 call ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy + 000cb 48 8b c8 mov rcx, rax + 000ce e8 00 00 00 00 call ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy -; 612 : _Ptr += _Size; +; 611 : _Ptr += _Size; - 000bc 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] - 000c0 48 8b 8d 28 01 + 000d3 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 000d7 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000c7 48 03 c8 add rcx, rax - 000ca 48 8b c1 mov rax, rcx - 000cd 48 89 85 28 01 + 000de 48 03 c8 add rcx, rax + 000e1 48 8b c1 mov rax, rcx + 000e4 48 89 85 28 01 00 00 mov QWORD PTR _Ptr$[rbp], rax -; 613 : _Count -= _Size; +; 612 : _Count -= _Size; - 000d4 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] - 000d8 48 8b 8d 30 01 + 000eb 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 000ef 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR _Count$[rbp] - 000df 48 2b c8 sub rcx, rax - 000e2 48 8b c1 mov rax, rcx - 000e5 48 89 85 30 01 + 000f6 48 2b c8 sub rcx, rax + 000f9 48 8b c1 mov rax, rcx + 000fc 48 89 85 30 01 00 00 mov QWORD PTR _Count$[rbp], rax -; 614 : _Mysb::pbump(static_cast(_Size)); +; 613 : _Mysb::pbump(static_cast(_Size)); - 000ec 8b 55 28 mov edx, DWORD PTR _Size$2[rbp] - 000ef 48 8b 8d 20 01 + 00103 8b 55 28 mov edx, DWORD PTR _Size$2[rbp] + 00106 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f6 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z $LN3@xsputn: -; 615 : } -; 616 : -; 617 : if (0 < _Count && _Myfile) { // open C stream, attempt write +; 614 : } +; 615 : +; 616 : if (0 < _Count && _Myfile) { // open C stream, attempt write - 000fc 48 83 bd 30 01 + 00113 48 83 bd 30 01 00 00 00 cmp QWORD PTR _Count$[rbp], 0 - 00104 7e 4c jle SHORT $LN5@xsputn - 00106 48 8b 85 20 01 + 0011b 7e 4c jle SHORT $LN5@xsputn + 0011d 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0010d 48 83 b8 80 00 + 00124 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00115 74 3b je SHORT $LN5@xsputn + 0012c 74 3b je SHORT $LN5@xsputn -; 618 : _Count -= _CSTD fwrite(_Ptr, sizeof(_Elem), static_cast(_Count), _Myfile); +; 617 : _Count -= _CSTD fwrite(_Ptr, sizeof(_Elem), static_cast(_Count), _Myfile); - 00117 48 8b 85 20 01 + 0012e 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0011e 4c 8b 88 80 00 + 00135 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 00125 4c 8b 85 30 01 + 0013c 4c 8b 85 30 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 0012c ba 01 00 00 00 mov edx, 1 - 00131 48 8b 8d 28 01 + 00143 ba 01 00 00 00 mov edx, 1 + 00148 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00138 ff 15 00 00 00 + 0014f ff 15 00 00 00 00 call QWORD PTR __imp_fwrite - 0013e 48 8b 8d 30 01 + 00155 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00145 48 2b c8 sub rcx, rax - 00148 48 8b c1 mov rax, rcx - 0014b 48 89 85 30 01 + 0015c 48 2b c8 sub rcx, rax + 0015f 48 8b c1 mov rax, rcx + 00162 48 89 85 30 01 00 00 mov QWORD PTR _Count$[rbp], rax $LN5@xsputn: -; 619 : } -; 620 : -; 621 : return _Start_count - _Count; +; 618 : } +; 619 : +; 620 : return _Start_count - _Count; - 00152 48 8b 85 30 01 + 00169 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00159 48 8b 4d 08 mov rcx, QWORD PTR _Start_count$1[rbp] - 0015d 48 2b c8 sub rcx, rax - 00160 48 8b c1 mov rax, rcx + 00170 48 8b 4d 08 mov rcx, QWORD PTR _Start_count$1[rbp] + 00174 48 2b c8 sub rcx, rax + 00177 48 8b c1 mov rax, rcx $LN1@xsputn: -; 622 : } else { // non-chars always get element-by-element processing -; 623 : return _Mysb::xsputn(_Ptr, _Count); -; 624 : } -; 625 : } +; 621 : } else { // non-chars always get element-by-element processing +; 622 : return _Mysb::xsputn(_Ptr, _Count); +; 623 : } +; 624 : } - 00163 48 8d a5 08 01 + 0017a 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0016a 5f pop rdi - 0016b 5d pop rbp - 0016c c3 ret 0 + 00181 5f pop rdi + 00182 5d pop rbp + 00183 c3 ret 0 ?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z ENDP ; std::basic_filebuf >::xsputn _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z _TEXT SEGMENT _Count_s$5 = 8 @@ -9935,7 +10830,7 @@ _Ptr$ = 440 _Count$ = 448 ?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z PROC ; std::basic_filebuf >::xsgetn, COMDAT -; 549 : virtual streamsize __CLR_OR_THIS_CALL xsgetn(_Elem* _Ptr, streamsize _Count) override { +; 548 : virtual streamsize __CLR_OR_THIS_CALL xsgetn(_Elem* _Ptr, streamsize _Count) override { $LN11: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -9946,290 +10841,290 @@ $LN11: 00011 48 81 ec b8 01 00 00 sub rsp, 440 ; 000001b8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 36 00 00 00 mov ecx, 54 ; 00000036H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 d8 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 d8 01 00 00 mov rcx, QWORD PTR [rsp+472] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 88 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 88 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 550 : // get _Count characters from stream -; 551 : if constexpr (sizeof(_Elem) == 1) { -; 552 : if (_Count <= 0) { +; 549 : // get _Count characters from stream +; 550 : if _CONSTEXPR_IF (sizeof(_Elem) == 1) { +; 551 : if (_Count <= 0) { - 00053 48 83 bd c0 01 + 00051 48 83 bd c0 01 00 00 00 cmp QWORD PTR _Count$[rbp], 0 - 0005b 7f 07 jg SHORT $LN4@xsgetn + 00059 7f 07 jg SHORT $LN4@xsgetn -; 553 : return 0; +; 552 : return 0; - 0005d 33 c0 xor eax, eax - 0005f e9 e2 01 00 00 jmp $LN1@xsgetn + 0005b 33 c0 xor eax, eax + 0005d e9 e2 01 00 00 jmp $LN1@xsgetn $LN4@xsgetn: -; 554 : } -; 555 : -; 556 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing +; 553 : } +; 554 : +; 555 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing - 00064 48 8b 85 b0 01 + 00062 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 00070 74 20 je SHORT $LN5@xsgetn + 00069 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0006e 74 20 je SHORT $LN5@xsgetn -; 557 : return _Mysb::xsgetn(_Ptr, _Count); +; 556 : return _Mysb::xsgetn(_Ptr, _Count); - 00072 4c 8b 85 c0 01 + 00070 4c 8b 85 c0 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 00079 48 8b 95 b8 01 + 00077 48 8b 95 b8 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00080 48 8b 8d b0 01 + 0007e 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00087 ff 15 00 00 00 + 00085 ff 15 00 00 00 00 call QWORD PTR __imp_?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z - 0008d e9 b4 01 00 00 jmp $LN1@xsgetn + 0008b e9 b4 01 00 00 jmp $LN1@xsgetn $LN5@xsgetn: -; 558 : } -; 559 : -; 560 : // assuming this is OK because _Ptr + _Count must be valid -; 561 : auto _Count_s = static_cast(_Count); +; 557 : } +; 558 : +; 559 : // assuming this is OK because _Ptr + _Count must be valid +; 560 : auto _Count_s = static_cast(_Count); - 00092 48 8b 85 c0 01 + 00090 48 8b 85 c0 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00099 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + 00097 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax -; 562 : const auto _Start_count = _Count; +; 561 : const auto _Start_count = _Count; - 0009d 48 8b 85 c0 01 + 0009b 48 8b 85 c0 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 000a4 48 89 45 28 mov QWORD PTR _Start_count$6[rbp], rax + 000a2 48 89 45 28 mov QWORD PTR _Start_count$6[rbp], rax -; 563 : const auto _Available = static_cast(_Mysb::_Gnavail()); +; 562 : const auto _Available = static_cast(_Mysb::_Gnavail()); - 000a8 48 8b 8d b0 01 + 000a6 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000af ff 15 00 00 00 + 000ad ff 15 00 00 00 00 call QWORD PTR __imp_?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ - 000b5 48 89 45 48 mov QWORD PTR _Available$7[rbp], rax + 000b3 48 89 45 48 mov QWORD PTR _Available$7[rbp], rax -; 564 : if (0 < _Available) { // copy from get area +; 563 : if (0 < _Available) { // copy from get area - 000b9 48 83 7d 48 00 cmp QWORD PTR _Available$7[rbp], 0 - 000be 76 6e jbe SHORT $LN6@xsgetn + 000b7 48 83 7d 48 00 cmp QWORD PTR _Available$7[rbp], 0 + 000bc 76 6e jbe SHORT $LN6@xsgetn -; 565 : const auto _Read_size = (_STD min)(_Count_s, _Available); +; 564 : const auto _Read_size = (_STD min)(_Count_s, _Available); - 000c0 48 8d 55 48 lea rdx, QWORD PTR _Available$7[rbp] - 000c4 48 8d 4d 08 lea rcx, QWORD PTR _Count_s$5[rbp] - 000c8 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min - 000cd 48 8b 00 mov rax, QWORD PTR [rax] - 000d0 48 89 45 68 mov QWORD PTR _Read_size$8[rbp], rax + 000be 48 8d 55 48 lea rdx, QWORD PTR _Available$7[rbp] + 000c2 48 8d 4d 08 lea rcx, QWORD PTR _Count_s$5[rbp] + 000c6 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 000cb 48 8b 00 mov rax, QWORD PTR [rax] + 000ce 48 89 45 68 mov QWORD PTR _Read_size$8[rbp], rax -; 566 : _Traits::copy(_Ptr, _Mysb::gptr(), _Read_size); +; 565 : _Traits::copy(_Ptr, _Mysb::gptr(), _Read_size); - 000d4 48 8b 8d b0 01 + 000d2 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000db ff 15 00 00 00 + 000d9 ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 000e1 4c 8b 45 68 mov r8, QWORD PTR _Read_size$8[rbp] - 000e5 48 8b d0 mov rdx, rax - 000e8 48 8b 8d b8 01 + 000df 4c 8b 45 68 mov r8, QWORD PTR _Read_size$8[rbp] + 000e3 48 8b d0 mov rdx, rax + 000e6 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ef e8 00 00 00 00 call ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::copy + 000ed e8 00 00 00 00 call ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy -; 567 : _Ptr += _Read_size; +; 566 : _Ptr += _Read_size; - 000f4 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] - 000f8 48 8b 8d b8 01 + 000f2 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] + 000f6 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000ff 48 03 c8 add rcx, rax - 00102 48 8b c1 mov rax, rcx - 00105 48 89 85 b8 01 + 000fd 48 03 c8 add rcx, rax + 00100 48 8b c1 mov rax, rcx + 00103 48 89 85 b8 01 00 00 mov QWORD PTR _Ptr$[rbp], rax -; 568 : _Count_s -= _Read_size; +; 567 : _Count_s -= _Read_size; - 0010c 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] - 00110 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] - 00114 48 2b c8 sub rcx, rax - 00117 48 8b c1 mov rax, rcx - 0011a 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + 0010a 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] + 0010e 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] + 00112 48 2b c8 sub rcx, rax + 00115 48 8b c1 mov rax, rcx + 00118 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax -; 569 : _Mysb::gbump(static_cast(_Read_size)); +; 568 : _Mysb::gbump(static_cast(_Read_size)); - 0011e 8b 55 68 mov edx, DWORD PTR _Read_size$8[rbp] - 00121 48 8b 8d b0 01 + 0011c 8b 55 68 mov edx, DWORD PTR _Read_size$8[rbp] + 0011f 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00128 ff 15 00 00 00 + 00126 ff 15 00 00 00 00 call QWORD PTR __imp_?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z $LN6@xsgetn: -; 570 : } -; 571 : -; 572 : if (_Myfile) { // open C stream, attempt read +; 569 : } +; 570 : +; 571 : if (_Myfile) { // open C stream, attempt read - 0012e 48 8b 85 b0 01 + 0012c 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00135 48 83 b8 80 00 + 00133 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0013d 0f 84 f5 00 00 + 0013b 0f 84 f5 00 00 00 je $LN7@xsgetn -; 573 : _Reset_back(); // revert from _Mychar buffer +; 572 : _Reset_back(); // revert from _Mychar buffer - 00143 48 8b 8d b0 01 + 00141 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0014a e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + 00148 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back -; 574 : // process in 4k - 1 chunks to avoid tripping over fread's clobber-the-end behavior when -; 575 : // doing \r\n -> \n translation -; 576 : constexpr size_t _Read_size = 4095; // _INTERNAL_BUFSIZ - 1 +; 573 : // process in 4k - 1 chunks to avoid tripping over fread's clobber-the-end behavior when +; 574 : // doing \r\n -> \n translation +; 575 : constexpr size_t _Read_size = 4095; // _INTERNAL_BUFSIZ - 1 - 0014f 48 c7 85 88 00 + 0014d 48 c7 85 88 00 00 00 ff 0f 00 00 mov QWORD PTR _Read_size$9[rbp], 4095 ; 00000fffH $LN2@xsgetn: -; 577 : while (_Read_size < _Count_s) { +; 576 : while (_Read_size < _Count_s) { - 0015a 48 81 7d 08 ff + 00158 48 81 7d 08 ff 0f 00 00 cmp QWORD PTR _Count_s$5[rbp], 4095 ; 00000fffH - 00162 76 7f jbe SHORT $LN3@xsgetn + 00160 76 7f jbe SHORT $LN3@xsgetn -; 578 : const auto _Actual_read = _CSTD fread(_Ptr, sizeof(_Elem), _Read_size, _Myfile); +; 577 : const auto _Actual_read = _CSTD fread(_Ptr, sizeof(_Elem), _Read_size, _Myfile); - 00164 48 8b 85 b0 01 + 00162 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0016b 4c 8b 88 80 00 + 00169 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 00172 41 b8 ff 0f 00 + 00170 41 b8 ff 0f 00 00 mov r8d, 4095 ; 00000fffH - 00178 ba 01 00 00 00 mov edx, 1 - 0017d 48 8b 8d b8 01 + 00176 ba 01 00 00 00 mov edx, 1 + 0017b 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00184 ff 15 00 00 00 + 00182 ff 15 00 00 00 00 call QWORD PTR __imp_fread - 0018a 48 89 85 a8 00 + 00188 48 89 85 a8 00 00 00 mov QWORD PTR _Actual_read$10[rbp], rax -; 579 : _Ptr += _Actual_read; +; 578 : _Ptr += _Actual_read; - 00191 48 8b 85 a8 00 + 0018f 48 8b 85 a8 00 00 00 mov rax, QWORD PTR _Actual_read$10[rbp] - 00198 48 8b 8d b8 01 + 00196 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0019f 48 03 c8 add rcx, rax - 001a2 48 8b c1 mov rax, rcx - 001a5 48 89 85 b8 01 + 0019d 48 03 c8 add rcx, rax + 001a0 48 8b c1 mov rax, rcx + 001a3 48 89 85 b8 01 00 00 mov QWORD PTR _Ptr$[rbp], rax -; 580 : _Count_s -= _Actual_read; +; 579 : _Count_s -= _Actual_read; - 001ac 48 8b 85 a8 00 + 001aa 48 8b 85 a8 00 00 00 mov rax, QWORD PTR _Actual_read$10[rbp] - 001b3 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] - 001b7 48 2b c8 sub rcx, rax - 001ba 48 8b c1 mov rax, rcx - 001bd 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + 001b1 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] + 001b5 48 2b c8 sub rcx, rax + 001b8 48 8b c1 mov rax, rcx + 001bb 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax -; 581 : if (_Actual_read != _Read_size) { +; 580 : if (_Actual_read != _Read_size) { - 001c1 48 81 bd a8 00 + 001bf 48 81 bd a8 00 00 00 ff 0f 00 00 cmp QWORD PTR _Actual_read$10[rbp], 4095 ; 00000fffH - 001cc 74 10 je SHORT $LN8@xsgetn + 001ca 74 10 je SHORT $LN8@xsgetn -; 582 : return static_cast(_Start_count - _Count_s); +; 581 : return static_cast(_Start_count - _Count_s); - 001ce 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] - 001d2 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] - 001d6 48 2b c8 sub rcx, rax - 001d9 48 8b c1 mov rax, rcx - 001dc eb 68 jmp SHORT $LN1@xsgetn + 001cc 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 001d0 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] + 001d4 48 2b c8 sub rcx, rax + 001d7 48 8b c1 mov rax, rcx + 001da eb 68 jmp SHORT $LN1@xsgetn $LN8@xsgetn: -; 583 : } -; 584 : } +; 582 : } +; 583 : } - 001de e9 77 ff ff ff jmp $LN2@xsgetn + 001dc e9 77 ff ff ff jmp $LN2@xsgetn $LN3@xsgetn: -; 585 : -; 586 : if (0 < _Count_s) { +; 584 : +; 585 : if (0 < _Count_s) { - 001e3 48 83 7d 08 00 cmp QWORD PTR _Count_s$5[rbp], 0 - 001e8 76 4e jbe SHORT $LN9@xsgetn + 001e1 48 83 7d 08 00 cmp QWORD PTR _Count_s$5[rbp], 0 + 001e6 76 4e jbe SHORT $LN9@xsgetn -; 587 : _Count_s -= _CSTD fread(_Ptr, sizeof(_Elem), _Count_s, _Myfile); +; 586 : _Count_s -= _CSTD fread(_Ptr, sizeof(_Elem), _Count_s, _Myfile); - 001ea 48 8b 85 b0 01 + 001e8 48 8b 85 b0 01 00 00 mov rax, QWORD PTR this$[rbp] - 001f1 4c 8b 88 80 00 + 001ef 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 001f8 4c 8b 45 08 mov r8, QWORD PTR _Count_s$5[rbp] - 001fc ba 01 00 00 00 mov edx, 1 - 00201 48 8b 8d b8 01 + 001f6 4c 8b 45 08 mov r8, QWORD PTR _Count_s$5[rbp] + 001fa ba 01 00 00 00 mov edx, 1 + 001ff 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00208 ff 15 00 00 00 + 00206 ff 15 00 00 00 00 call QWORD PTR __imp_fread - 0020e 48 89 85 78 01 + 0020c 48 89 85 78 01 00 00 mov QWORD PTR tv158[rbp], rax - 00215 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] - 00219 48 89 85 80 01 + 00213 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 00217 48 89 85 80 01 00 00 mov QWORD PTR tv156[rbp], rax - 00220 48 8b 85 78 01 + 0021e 48 8b 85 78 01 00 00 mov rax, QWORD PTR tv158[rbp] - 00227 48 8b 8d 80 01 + 00225 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR tv156[rbp] - 0022e 48 2b c8 sub rcx, rax - 00231 48 8b c1 mov rax, rcx - 00234 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + 0022c 48 2b c8 sub rcx, rax + 0022f 48 8b c1 mov rax, rcx + 00232 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax $LN9@xsgetn: $LN7@xsgetn: -; 588 : } -; 589 : } -; 590 : -; 591 : return static_cast(_Start_count - _Count_s); +; 587 : } +; 588 : } +; 589 : +; 590 : return static_cast(_Start_count - _Count_s); - 00238 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] - 0023c 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] - 00240 48 2b c8 sub rcx, rax - 00243 48 8b c1 mov rax, rcx + 00236 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 0023a 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] + 0023e 48 2b c8 sub rcx, rax + 00241 48 8b c1 mov rax, rcx $LN1@xsgetn: -; 592 : } else { // non-chars always get element-by-element processing -; 593 : return _Mysb::xsgetn(_Ptr, _Count); -; 594 : } -; 595 : } +; 591 : } else { // non-chars always get element-by-element processing +; 592 : return _Mysb::xsgetn(_Ptr, _Count); +; 593 : } +; 594 : } - 00246 48 8b f8 mov rdi, rax - 00249 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0024d 48 8d 15 00 00 + 00244 48 8b f8 mov rdi, rax + 00247 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0024b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcFrameData - 00254 e8 00 00 00 00 call _RTC_CheckStackVars - 00259 48 8b c7 mov rax, rdi - 0025c 48 8b 8d 88 01 + 00252 e8 00 00 00 00 call _RTC_CheckStackVars + 00257 48 8b c7 mov rax, rdi + 0025a 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00263 48 33 cd xor rcx, rbp - 00266 e8 00 00 00 00 call __security_check_cookie - 0026b 48 8d a5 98 01 + 00261 48 33 cd xor rcx, rbp + 00264 e8 00 00 00 00 call __security_check_cookie + 00269 48 8d a5 98 01 00 00 lea rsp, QWORD PTR [rbp+408] - 00272 5f pop rdi - 00273 5d pop rbp - 00274 c3 ret 0 + 00270 5f pop rdi + 00271 5d pop rbp + 00272 c3 ret 0 ?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z ENDP ; std::basic_filebuf >::xsgetn _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ _TEXT SEGMENT _Ch$8 = 4 @@ -10255,390 +11150,391 @@ __$ArrayPad$ = 608 this$ = 656 ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ PROC ; std::basic_filebuf >::uflow, COMDAT -; 491 : virtual int_type __CLR_OR_THIS_CALL uflow() override { // get an element from stream, point past it +; 490 : virtual int_type __CLR_OR_THIS_CALL uflow() override { // get an element from stream, point past it -$LN22: +$LN21: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec b8 02 00 00 sub rsp, 696 ; 000002b8H 0000e 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00013 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 00018 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 d8 + 00013 48 8b fc mov rdi, rsp + 00016 b9 ae 00 00 00 mov ecx, 174 ; 000000aeH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 d8 02 00 00 mov rcx, QWORD PTR [rsp+728] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 60 02 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 60 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 492 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { +; 491 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { - 00049 48 8b 8d 90 02 + 00047 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 ff 15 00 00 00 + 0004e ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00056 48 85 c0 test rax, rax - 00059 74 47 je SHORT $LN9@uflow - 0005b 48 8b 8d 90 02 + 00054 48 85 c0 test rax, rax + 00057 74 47 je SHORT $LN9@uflow + 00059 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00062 ff 15 00 00 00 + 00060 ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00068 48 89 85 38 02 + 00066 48 89 85 38 02 00 00 mov QWORD PTR tv76[rbp], rax - 0006f 48 8b 8d 90 02 + 0006d 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 ff 15 00 00 00 + 00074 ff 15 00 00 00 00 call QWORD PTR __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0007c 48 8b 8d 38 02 + 0007a 48 8b 8d 38 02 00 00 mov rcx, QWORD PTR tv76[rbp] - 00083 48 3b c8 cmp rcx, rax - 00086 73 1a jae SHORT $LN9@uflow + 00081 48 3b c8 cmp rcx, rax + 00084 73 1a jae SHORT $LN9@uflow -; 493 : return _Traits::to_int_type(*_Mysb::_Gninc()); // return buffered +; 492 : return _Traits::to_int_type(*_Mysb::_Gninc()); // return buffered - 00088 48 8b 8d 90 02 + 00086 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0008f ff 15 00 00 00 + 0008d ff 15 00 00 00 00 call QWORD PTR __imp_?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ - 00095 48 8b c8 mov rcx, rax - 00098 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type - 0009d e9 c5 02 00 00 jmp $LN1@uflow + 00093 48 8b c8 mov rcx, rax + 00096 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 0009b e9 c9 02 00 00 jmp $LN1@uflow $LN9@uflow: -; 494 : } -; 495 : -; 496 : if (!_Myfile) { +; 493 : } +; 494 : +; 495 : if (!_Myfile) { - 000a2 48 8b 85 90 02 + 000a0 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 000a9 48 83 b8 80 00 + 000a7 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 000b1 75 0a jne SHORT $LN10@uflow + 000af 75 0a jne SHORT $LN10@uflow -; 497 : return _Traits::eof(); // no open C stream, fail +; 496 : return _Traits::eof(); // no open C stream, fail - 000b3 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 000b8 e9 aa 02 00 00 jmp $LN1@uflow + 000b1 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000b6 e9 ae 02 00 00 jmp $LN1@uflow $LN10@uflow: -; 498 : } -; 499 : -; 500 : _Reset_back(); // revert from _Mychar buffer +; 497 : } +; 498 : +; 499 : _Reset_back(); // revert from _Mychar buffer - 000bd 48 8b 8d 90 02 + 000bb 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000c4 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + 000c2 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back -; 501 : if (!_Pcvt) { // no codecvt facet, just get it +; 500 : if (!_Pcvt) { // no codecvt facet, just get it - 000c9 48 8b 85 90 02 + 000c7 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 000d0 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 000d5 75 45 jne SHORT $LN11@uflow + 000ce 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 000d3 75 45 jne SHORT $LN11@uflow -; 502 : _Elem _Ch; -; 503 : return _Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch) : _Traits::eof(); +; 501 : _Elem _Ch; +; 502 : return _Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch) : _Traits::eof(); - 000d7 48 8b 85 90 02 + 000d5 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 000de 48 8b 90 80 00 + 000dc 48 8b 90 80 00 00 00 mov rdx, QWORD PTR [rax+128] - 000e5 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] - 000e9 e8 00 00 00 00 call ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ; std::_Fgetc - 000ee 0f b6 c0 movzx eax, al - 000f1 85 c0 test eax, eax - 000f3 74 11 je SHORT $LN19@uflow - 000f5 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] - 000f9 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type - 000fe 89 85 34 02 00 + 000e3 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] + 000e7 e8 00 00 00 00 call ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ; std::_Fgetc + 000ec 0f b6 c0 movzx eax, al + 000ef 85 c0 test eax, eax + 000f1 74 11 je SHORT $LN18@uflow + 000f3 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] + 000f7 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 000fc 89 85 34 02 00 00 mov DWORD PTR tv139[rbp], eax - 00104 eb 0b jmp SHORT $LN20@uflow -$LN19@uflow: - 00106 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0010b 89 85 34 02 00 + 00102 eb 0b jmp SHORT $LN19@uflow +$LN18@uflow: + 00104 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00109 89 85 34 02 00 00 mov DWORD PTR tv139[rbp], eax -$LN20@uflow: - 00111 8b 85 34 02 00 +$LN19@uflow: + 0010f 8b 85 34 02 00 00 mov eax, DWORD PTR tv139[rbp] - 00117 e9 4b 02 00 00 jmp $LN1@uflow + 00115 e9 4f 02 00 00 jmp $LN1@uflow $LN11@uflow: -; 504 : } -; 505 : -; 506 : // build string until codecvt succeeds -; 507 : string _Str; +; 503 : } +; 504 : +; 505 : // build string until codecvt succeeds +; 506 : string _Str; - 0011c 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 00120 e8 00 00 00 00 call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::basic_string,std::allocator > - 00125 90 npad 1 + 0011a 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0011e e8 00 00 00 00 call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::basic_string,std::allocator > + 00123 90 npad 1 $LN2@uflow: -; 508 : -; 509 : for (;;) { // get using codecvt facet -; 510 : const char* _Src; -; 511 : int _Meta = _CSTD fgetc(_Myfile); +; 507 : +; 508 : for (;;) { // get using codecvt facet +; 509 : const char* _Src; +; 510 : int _Meta = _CSTD fgetc(_Myfile); - 00126 48 8b 85 90 02 + 00124 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 0012d 48 8b 88 80 00 + 0012b 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 00134 ff 15 00 00 00 + 00132 ff 15 00 00 00 00 call QWORD PTR __imp_fgetc - 0013a 89 85 84 00 00 + 00138 89 85 84 00 00 00 mov DWORD PTR _Meta$10[rbp], eax -; 512 : -; 513 : if (_Meta == EOF) { +; 511 : +; 512 : if (_Meta == EOF) { - 00140 83 bd 84 00 00 + 0013e 83 bd 84 00 00 00 ff cmp DWORD PTR _Meta$10[rbp], -1 - 00147 75 1f jne SHORT $LN12@uflow + 00145 75 1f jne SHORT $LN12@uflow -; 514 : return _Traits::eof(); // partial char? +; 513 : return _Traits::eof(); // partial char? - 00149 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0014e 89 85 c4 01 00 + 00147 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0014c 89 85 c4 01 00 00 mov DWORD PTR $T14[rbp], eax - 00154 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 00158 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > - 0015d 8b 85 c4 01 00 + 00152 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00156 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 0015b 8b 85 c4 01 00 00 mov eax, DWORD PTR $T14[rbp] - 00163 e9 ff 01 00 00 jmp $LN1@uflow + 00161 e9 03 02 00 00 jmp $LN1@uflow $LN12@uflow: -; 515 : } -; 516 : -; 517 : _Str.push_back(static_cast(_Meta)); // append byte and convert +; 514 : } +; 515 : +; 516 : _Str.push_back(static_cast(_Meta)); // append byte and convert - 00168 0f b6 95 84 00 + 00166 0f b6 95 84 00 00 00 movzx edx, BYTE PTR _Meta$10[rbp] - 0016f 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 00173 e8 00 00 00 00 call ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ; std::basic_string,std::allocator >::push_back + 0016d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00171 e8 00 00 00 00 call ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ; std::basic_string,std::allocator >::push_back -; 518 : -; 519 : _Elem _Ch; -; 520 : _Elem* _Dest; -; 521 : switch (_Pcvt->in(_State, _Str.data(), _Str.data() + _Str.size(), _Src, &_Ch, &_Ch + 1, +; 517 : +; 518 : _Elem _Ch; +; 519 : _Elem* _Dest; +; 520 : switch (_Pcvt->in(_State, _Str.data(), _Str.data() + _Str.size(), _Src, &_Ch, &_Ch + 1, - 00178 48 8b 85 90 02 + 00176 48 8b 85 90 02 00 00 mov rax, QWORD PTR this$[rbp] - 0017f 48 8b 40 68 mov rax, QWORD PTR [rax+104] - 00183 48 89 85 38 02 + 0017d 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 00181 48 89 85 38 02 00 00 mov QWORD PTR tv174[rbp], rax - 0018a 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0018e e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data - 00193 48 89 85 40 02 + 00188 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0018c e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 00191 48 89 85 40 02 00 00 mov QWORD PTR tv159[rbp], rax - 0019a 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0019e e8 00 00 00 00 call ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size - 001a3 48 8b 8d 40 02 + 00198 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0019c e8 00 00 00 00 call ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size + 001a1 48 8b 8d 40 02 00 00 mov rcx, QWORD PTR tv159[rbp] - 001aa 48 03 c8 add rcx, rax - 001ad 48 8b c1 mov rax, rcx - 001b0 48 89 85 48 02 + 001a8 48 03 c8 add rcx, rax + 001ab 48 8b c1 mov rax, rcx + 001ae 48 89 85 48 02 00 00 mov QWORD PTR tv172[rbp], rax - 001b7 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 001bb e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data - 001c0 48 89 85 50 02 + 001b5 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 001b9 e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 001be 48 89 85 50 02 00 00 mov QWORD PTR tv170[rbp], rax - 001c7 48 8d 85 a5 00 + 001c5 48 8d 85 a5 00 00 00 lea rax, QWORD PTR _Ch$11[rbp+1] - 001ce 48 8b 8d 90 02 + 001cc 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 001d5 48 83 c1 74 add rcx, 116 ; 00000074H - 001d9 48 8d 95 c8 00 + 001d3 48 83 c1 74 add rcx, 116 ; 00000074H + 001d7 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR _Dest$12[rbp] - 001e0 48 89 54 24 38 mov QWORD PTR [rsp+56], rdx - 001e5 48 89 44 24 30 mov QWORD PTR [rsp+48], rax - 001ea 48 8d 85 a4 00 + 001de 48 89 54 24 38 mov QWORD PTR [rsp+56], rdx + 001e3 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 001e8 48 8d 85 a4 00 00 00 lea rax, QWORD PTR _Ch$11[rbp] - 001f1 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 001f6 48 8d 45 68 lea rax, QWORD PTR _Src$9[rbp] - 001fa 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001ff 4c 8b 8d 48 02 + 001ef 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 001f4 48 8d 45 68 lea rax, QWORD PTR _Src$9[rbp] + 001f8 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001fd 4c 8b 8d 48 02 00 00 mov r9, QWORD PTR tv172[rbp] - 00206 4c 8b 85 50 02 + 00204 4c 8b 85 50 02 00 00 mov r8, QWORD PTR tv170[rbp] - 0020d 48 8b d1 mov rdx, rcx - 00210 48 8b 8d 38 02 + 0020b 48 8b d1 mov rdx, rcx + 0020e 48 8b 8d 38 02 00 00 mov rcx, QWORD PTR tv174[rbp] - 00217 ff 15 00 00 00 + 00215 ff 15 00 00 00 00 call QWORD PTR __imp_?in@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z - 0021d 89 85 58 02 00 + 0021b 89 85 58 02 00 00 mov DWORD PTR tv175[rbp], eax - 00223 83 bd 58 02 00 + 00221 83 bd 58 02 00 00 00 cmp DWORD PTR tv175[rbp], 0 - 0022a 74 1b je SHORT $LN14@uflow - 0022c 83 bd 58 02 00 + 00228 0f 8c 10 01 00 + 00 jl $LN16@uflow + 0022e 83 bd 58 02 00 00 01 cmp DWORD PTR tv175[rbp], 1 - 00233 74 12 je SHORT $LN14@uflow - 00235 83 bd 58 02 00 + 00235 7e 12 jle SHORT $LN13@uflow + 00237 83 bd 58 02 00 00 03 cmp DWORD PTR tv175[rbp], 3 - 0023c 0f 84 d7 00 00 - 00 je $LN16@uflow - 00242 e9 f5 00 00 00 jmp $LN17@uflow -$LN14@uflow: + 0023e 0f 84 d7 00 00 + 00 je $LN15@uflow + 00244 e9 f5 00 00 00 jmp $LN16@uflow +$LN13@uflow: -; 522 : _Dest)) { // test result of converting one element -; 523 : case codecvt_base::partial: -; 524 : case codecvt_base::ok: -; 525 : if (_Dest != &_Ch) { // got an element, put back excess and deliver it +; 521 : _Dest)) { // test result of converting one element +; 522 : case codecvt_base::partial: +; 523 : case codecvt_base::ok: +; 524 : if (_Dest != &_Ch) { // got an element, put back excess and deliver it - 00247 48 8d 85 a4 00 + 00249 48 8d 85 a4 00 00 00 lea rax, QWORD PTR _Ch$11[rbp] - 0024e 48 39 85 c8 00 + 00250 48 39 85 c8 00 00 00 cmp QWORD PTR _Dest$12[rbp], rax - 00255 0f 84 9b 00 00 - 00 je $LN15@uflow + 00257 0f 84 9b 00 00 + 00 je $LN14@uflow -; 526 : auto _Nleft = _Str.data() + _Str.size() - _Src; +; 525 : auto _Nleft = _Str.data() + _Str.size() - _Src; - 0025b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0025f e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data - 00264 48 89 85 38 02 + 0025d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00261 e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 00266 48 89 85 38 02 00 00 mov QWORD PTR tv178[rbp], rax - 0026b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0026f e8 00 00 00 00 call ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size - 00274 48 8b 8d 38 02 + 0026d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00271 e8 00 00 00 00 call ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size + 00276 48 8b 8d 38 02 00 00 mov rcx, QWORD PTR tv178[rbp] - 0027b 48 03 c8 add rcx, rax - 0027e 48 8b c1 mov rax, rcx - 00281 48 2b 45 68 sub rax, QWORD PTR _Src$9[rbp] - 00285 48 89 85 e8 00 + 0027d 48 03 c8 add rcx, rax + 00280 48 8b c1 mov rax, rcx + 00283 48 2b 45 68 sub rax, QWORD PTR _Src$9[rbp] + 00287 48 89 85 e8 00 00 00 mov QWORD PTR _Nleft$13[rbp], rax $LN7@uflow: -; 527 : while (0 < _Nleft) { +; 526 : while (0 < _Nleft) { - 0028c 48 83 bd e8 00 + 0028e 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Nleft$13[rbp], 0 - 00294 7e 3d jle SHORT $LN8@uflow + 00296 7e 3d jle SHORT $LN8@uflow -; 528 : _CSTD ungetc(_Src[--_Nleft], _Myfile); +; 527 : _CSTD ungetc(_Src[--_Nleft], _Myfile); - 00296 48 8b 85 e8 00 + 00298 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Nleft$13[rbp] - 0029d 48 ff c8 dec rax - 002a0 48 89 85 e8 00 + 0029f 48 ff c8 dec rax + 002a2 48 89 85 e8 00 00 00 mov QWORD PTR _Nleft$13[rbp], rax - 002a7 48 8b 85 e8 00 + 002a9 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Nleft$13[rbp] - 002ae 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] - 002b2 48 03 c8 add rcx, rax - 002b5 48 8b c1 mov rax, rcx - 002b8 0f be 00 movsx eax, BYTE PTR [rax] - 002bb 48 8b 8d 90 02 + 002b0 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] + 002b4 48 03 c8 add rcx, rax + 002b7 48 8b c1 mov rax, rcx + 002ba 0f be 00 movsx eax, BYTE PTR [rax] + 002bd 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR this$[rbp] - 002c2 48 8b 91 80 00 + 002c4 48 8b 91 80 00 00 00 mov rdx, QWORD PTR [rcx+128] - 002c9 8b c8 mov ecx, eax - 002cb ff 15 00 00 00 + 002cb 8b c8 mov ecx, eax + 002cd ff 15 00 00 00 00 call QWORD PTR __imp_ungetc -; 529 : } +; 528 : } - 002d1 eb b9 jmp SHORT $LN7@uflow + 002d3 eb b9 jmp SHORT $LN7@uflow $LN8@uflow: -; 530 : -; 531 : return _Traits::to_int_type(_Ch); +; 529 : +; 530 : return _Traits::to_int_type(_Ch); - 002d3 48 8d 8d a4 00 + 002d5 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Ch$11[rbp] - 002da e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type - 002df 89 85 e4 01 00 + 002dc e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 002e1 89 85 e4 01 00 00 mov DWORD PTR $T15[rbp], eax - 002e5 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 002e9 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > - 002ee 8b 85 e4 01 00 + 002e7 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 002eb e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 002f0 8b 85 e4 01 00 00 mov eax, DWORD PTR $T15[rbp] - 002f4 eb 71 jmp SHORT $LN1@uflow -$LN15@uflow: - -; 532 : } -; 533 : -; 534 : _Str.erase(0, static_cast(_Src - _Str.data())); // partial, discard used input + 002f6 eb 71 jmp SHORT $LN1@uflow +$LN14@uflow: - 002f6 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 002fa e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data - 002ff 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] - 00303 48 2b c8 sub rcx, rax - 00306 48 8b c1 mov rax, rcx - 00309 4c 8b c0 mov r8, rax - 0030c 33 d2 xor edx, edx - 0030e 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 00312 e8 00 00 00 00 call ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z ; std::basic_string,std::allocator >::erase +; 531 : } +; 532 : +; 533 : _Str.erase(0, static_cast(_Src - _Str.data())); // partial, discard used input -; 535 : break; + 002f8 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 002fc e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 00301 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] + 00305 48 2b c8 sub rcx, rax + 00308 48 8b c1 mov rax, rcx + 0030b 4c 8b c0 mov r8, rax + 0030e 33 d2 xor edx, edx + 00310 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00314 e8 00 00 00 00 call ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::erase - 00317 eb 3f jmp SHORT $LN5@uflow -$LN16@uflow: +; 534 : break; -; 536 : -; 537 : case codecvt_base::noconv: -; 538 : // noconv is only possible if _Elem is char, so we can use it directly -; 539 : return static_cast(_Str.front()); + 00319 eb 3f jmp SHORT $LN5@uflow +$LN15@uflow: - 00319 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0031d e8 00 00 00 00 call ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ; std::basic_string,std::allocator >::front - 00322 0f be 00 movsx eax, BYTE PTR [rax] - 00325 89 85 04 02 00 +; 535 : +; 536 : case codecvt_base::noconv: +; 537 : // noconv is only possible if _Elem is char, so we can use it directly +; 538 : return static_cast(_Str.front()); + + 0031b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0031f e8 00 00 00 00 call ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ; std::basic_string,std::allocator >::front + 00324 0f be 00 movsx eax, BYTE PTR [rax] + 00327 89 85 04 02 00 00 mov DWORD PTR $T16[rbp], eax - 0032b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0032f e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > - 00334 8b 85 04 02 00 + 0032d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00331 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 00336 8b 85 04 02 00 00 mov eax, DWORD PTR $T16[rbp] - 0033a eb 2b jmp SHORT $LN1@uflow -$LN17@uflow: + 0033c eb 2b jmp SHORT $LN1@uflow +$LN16@uflow: -; 540 : -; 541 : default: -; 542 : return _Traits::eof(); // conversion failed +; 539 : +; 540 : default: +; 541 : return _Traits::eof(); // conversion failed - 0033c e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00341 89 85 24 02 00 + 0033e e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00343 89 85 24 02 00 00 mov DWORD PTR $T17[rbp], eax - 00347 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0034b e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > - 00350 8b 85 24 02 00 + 00349 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0034d e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 00352 8b 85 24 02 00 00 mov eax, DWORD PTR $T17[rbp] - 00356 eb 0f jmp SHORT $LN1@uflow + 00358 eb 0f jmp SHORT $LN1@uflow $LN5@uflow: -; 543 : } -; 544 : } +; 542 : } +; 543 : } - 00358 e9 c9 fd ff ff jmp $LN2@uflow + 0035a e9 c5 fd ff ff jmp $LN2@uflow -; 545 : } +; 544 : } - 0035d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 00361 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > - 00366 90 npad 1 + 0035f 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00363 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 00368 90 npad 1 $LN1@uflow: - 00367 48 8b f8 mov rdi, rax - 0036a 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 0036e 48 8d 15 00 00 + 00369 48 8b f8 mov rdi, rax + 0036c 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 00370 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcFrameData - 00375 e8 00 00 00 00 call _RTC_CheckStackVars - 0037a 48 8b c7 mov rax, rdi - 0037d 48 8b 8d 60 02 + 00377 e8 00 00 00 00 call _RTC_CheckStackVars + 0037c 48 8b c7 mov rax, rdi + 0037f 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00384 48 33 cd xor rcx, rbp - 00387 e8 00 00 00 00 call __security_check_cookie - 0038c 48 8d a5 78 02 + 00386 48 33 cd xor rcx, rbp + 00389 e8 00 00 00 00 call __security_check_cookie + 0038e 48 8d a5 78 02 00 00 lea rsp, QWORD PTR [rbp+632] - 00393 5f pop rdi - 00394 5d pop rbp - 00395 c3 ret 0 + 00395 5f pop rdi + 00396 5d pop rbp + 00397 c3 ret 0 ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::uflow _TEXT ENDS ; COMDAT text$x @@ -10719,7 +11615,7 @@ this$ = 656 ?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA ENDP ; `std::basic_filebuf >::uflow'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ _TEXT SEGMENT _Meta$ = 4 @@ -10730,7 +11626,7 @@ __$ArrayPad$ = 256 this$ = 304 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ PROC ; std::basic_filebuf >::underflow, COMDAT -; 479 : virtual int_type __CLR_OR_THIS_CALL underflow() override { // get an element from stream, but don't point past it +; 478 : virtual int_type __CLR_OR_THIS_CALL underflow() override { // get an element from stream, but don't point past it $LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -10739,130 +11635,130 @@ $LN7: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 16 00 00 00 mov ecx, 22 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 58 + 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] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 00 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 00 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 480 : int_type _Meta; -; 481 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { +; 479 : int_type _Meta; +; 480 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { - 00049 48 8b 8d 30 01 + 00047 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 ff 15 00 00 00 + 0004e ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00056 48 85 c0 test rax, rax - 00059 74 46 je SHORT $LN2@underflow - 0005b 48 8b 8d 30 01 + 00054 48 85 c0 test rax, rax + 00057 74 46 je SHORT $LN2@underflow + 00059 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00062 ff 15 00 00 00 + 00060 ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00068 48 89 85 f8 00 + 00066 48 89 85 f8 00 00 00 mov QWORD PTR tv76[rbp], rax - 0006f 48 8b 8d 30 01 + 0006d 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 ff 15 00 00 00 + 00074 ff 15 00 00 00 00 call QWORD PTR __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0007c 48 8b 8d f8 00 + 0007a 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv76[rbp] - 00083 48 3b c8 cmp rcx, rax - 00086 73 19 jae SHORT $LN2@underflow + 00081 48 3b c8 cmp rcx, rax + 00084 73 19 jae SHORT $LN2@underflow -; 482 : return _Traits::to_int_type(*_Mysb::gptr()); // return buffered +; 481 : return _Traits::to_int_type(*_Mysb::gptr()); // return buffered - 00088 48 8b 8d 30 01 + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008f ff 15 00 00 00 + 0008d ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00095 48 8b c8 mov rcx, rax - 00098 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type - 0009d eb 6a jmp SHORT $LN1@underflow - 0009f eb 68 jmp SHORT $LN3@underflow + 00093 48 8b c8 mov rcx, rax + 00096 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 0009b eb 6a jmp SHORT $LN1@underflow + 0009d eb 68 jmp SHORT $LN3@underflow $LN2@underflow: -; 483 : } else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) { +; 482 : } else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) { - 000a1 48 8b 85 30 01 + 0009f 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a8 48 8b 00 mov rax, QWORD PTR [rax] - 000ab 48 8b 8d 30 01 + 000a6 48 8b 00 mov rax, QWORD PTR [rax] + 000a9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000b2 ff 50 38 call QWORD PTR [rax+56] - 000b5 89 45 04 mov DWORD PTR _Meta$[rbp], eax - 000b8 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 000bd 89 85 e4 00 00 + 000b0 ff 50 38 call QWORD PTR [rax+56] + 000b3 89 45 04 mov DWORD PTR _Meta$[rbp], eax + 000b6 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000bb 89 85 e4 00 00 00 mov DWORD PTR $T4[rbp], eax - 000c3 48 8d 55 04 lea rdx, QWORD PTR _Meta$[rbp] - 000c7 48 8d 8d e4 00 + 000c1 48 8d 55 04 lea rdx, QWORD PTR _Meta$[rbp] + 000c5 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T4[rbp] - 000ce e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 000d3 0f b6 c0 movzx eax, al - 000d6 85 c0 test eax, eax - 000d8 74 07 je SHORT $LN4@underflow + 000cc e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000d1 0f b6 c0 movzx eax, al + 000d4 85 c0 test eax, eax + 000d6 74 07 je SHORT $LN4@underflow -; 484 : return _Meta; // uflow failed, return EOF +; 483 : return _Meta; // uflow failed, return EOF - 000da 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] - 000dd eb 2a jmp SHORT $LN1@underflow + 000d8 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] + 000db eb 2a jmp SHORT $LN1@underflow -; 485 : } else { // get a char, don't point past it +; 484 : } else { // get a char, don't point past it - 000df eb 28 jmp SHORT $LN5@underflow + 000dd eb 28 jmp SHORT $LN5@underflow $LN4@underflow: -; 486 : pbackfail(_Meta); +; 485 : pbackfail(_Meta); - 000e1 48 8b 85 30 01 + 000df 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000e8 48 8b 00 mov rax, QWORD PTR [rax] - 000eb 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 000ef 48 89 85 f8 00 + 000e6 48 8b 00 mov rax, QWORD PTR [rax] + 000e9 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 000ed 48 89 85 f8 00 00 00 mov QWORD PTR tv148[rbp], rax - 000f6 8b 55 04 mov edx, DWORD PTR _Meta$[rbp] - 000f9 48 8b 8d 30 01 + 000f4 8b 55 04 mov edx, DWORD PTR _Meta$[rbp] + 000f7 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00100 ff 95 f8 00 00 + 000fe ff 95 f8 00 00 00 call QWORD PTR tv148[rbp] -; 487 : return _Meta; +; 486 : return _Meta; - 00106 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] + 00104 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] $LN5@underflow: $LN3@underflow: $LN1@underflow: -; 488 : } -; 489 : } +; 487 : } +; 488 : } - 00109 48 8b f8 mov rdi, rax - 0010c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00110 48 8d 15 00 00 + 00107 48 8b f8 mov rdi, rax + 0010a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0010e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcFrameData - 00117 e8 00 00 00 00 call _RTC_CheckStackVars - 0011c 48 8b c7 mov rax, rdi - 0011f 48 8b 8d 00 01 + 00115 e8 00 00 00 00 call _RTC_CheckStackVars + 0011a 48 8b c7 mov rax, rdi + 0011d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00126 48 33 cd xor rcx, rbp - 00129 e8 00 00 00 00 call __security_check_cookie - 0012e 48 8d a5 18 01 + 00124 48 33 cd xor rcx, rbp + 00127 e8 00 00 00 00 call __security_check_cookie + 0012c 48 8d a5 18 01 00 00 lea rsp, QWORD PTR [rbp+280] - 00135 5f pop rdi - 00136 5d pop rbp - 00137 c3 ret 0 + 00133 5f pop rdi + 00134 5d pop rbp + 00135 c3 ret 0 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::underflow _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z _TEXT SEGMENT $T1 = 196 @@ -10875,7 +11771,7 @@ this$ = 352 _Meta$ = 360 ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z PROC ; std::basic_filebuf >::pbackfail, COMDAT -; 458 : virtual int_type __CLR_OR_THIS_CALL pbackfail(int_type _Meta = _Traits::eof()) override { +; 457 : virtual int_type __CLR_OR_THIS_CALL pbackfail(int_type _Meta = _Traits::eof()) override { $LN13: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx @@ -10885,206 +11781,212 @@ $LN13: 0000b 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 459 : // put an element back to stream -; 460 : if (_Mysb::gptr() && _Mysb::eback() < _Mysb::gptr() -; 461 : && (_Traits::eq_int_type(_Traits::eof(), _Meta) - - 00023 48 8b 8d 60 01 + 00017 48 8b fc mov rdi, rsp + 0001a b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 458 : // put an element back to stream +; 459 : if (_Mysb::gptr() && _Mysb::eback() < _Mysb::gptr() +; 460 : && (_Traits::eq_int_type(_Traits::eof(), _Meta) + + 0003a 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0002a ff 15 00 00 00 + 00041 ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00030 48 85 c0 test rax, rax - 00033 0f 84 ba 00 00 + 00047 48 85 c0 test rax, rax + 0004a 0f 84 ba 00 00 00 je $LN2@pbackfail - 00039 48 8b 8d 60 01 + 00050 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00040 ff 15 00 00 00 + 00057 ff 15 00 00 00 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00046 48 89 85 38 01 + 0005d 48 89 85 38 01 00 00 mov QWORD PTR tv76[rbp], rax - 0004d 48 8b 8d 60 01 + 00064 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00054 ff 15 00 00 00 + 0006b ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0005a 48 8b 8d 38 01 + 00071 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv76[rbp] - 00061 48 3b c8 cmp rcx, rax - 00064 0f 83 89 00 00 + 00078 48 3b c8 cmp rcx, rax + 0007b 0f 83 89 00 00 00 jae $LN2@pbackfail - 0006a e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0006f 89 85 c4 00 00 + 00081 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00086 89 85 c4 00 00 00 mov DWORD PTR $T1[rbp], eax - 00075 48 8d 95 68 01 + 0008c 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 0007c 48 8d 8d c4 00 + 00093 48 8d 8d c4 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00083 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00088 0f b6 c0 movzx eax, al - 0008b 85 c0 test eax, eax - 0008d 75 41 jne SHORT $LN4@pbackfail - 0008f 48 8b 8d 60 01 + 0009a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0009f 0f b6 c0 movzx eax, al + 000a2 85 c0 test eax, eax + 000a4 75 41 jne SHORT $LN4@pbackfail + 000a6 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 ff 15 00 00 00 + 000ad ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0009c b9 01 00 00 00 mov ecx, 1 - 000a1 48 6b c9 ff imul rcx, rcx, -1 - 000a5 48 03 c1 add rax, rcx - 000a8 48 8b c8 mov rcx, rax - 000ab e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type - 000b0 89 85 e4 00 00 + 000b3 b9 01 00 00 00 mov ecx, 1 + 000b8 48 6b c9 ff imul rcx, rcx, -1 + 000bc 48 03 c1 add rax, rcx + 000bf 48 8b c8 mov rcx, rax + 000c2 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 000c7 89 85 e4 00 00 00 mov DWORD PTR $T2[rbp], eax - 000b6 48 8d 95 68 01 + 000cd 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 000bd 48 8d 8d e4 00 + 000d4 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 000c4 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 000c9 0f b6 c0 movzx eax, al - 000cc 85 c0 test eax, eax - 000ce 74 23 je SHORT $LN2@pbackfail + 000db e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000e0 0f b6 c0 movzx eax, al + 000e3 85 c0 test eax, eax + 000e5 74 23 je SHORT $LN2@pbackfail $LN4@pbackfail: -; 462 : || _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]), -; 463 : _Meta))) { // just back up position -; 464 : _Mysb::_Gndec(); +; 461 : || _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]), +; 462 : _Meta))) { // just back up position +; 463 : _Mysb::_Gndec(); - 000d0 48 8b 8d 60 01 + 000e7 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000d7 ff 15 00 00 00 + 000ee ff 15 00 00 00 00 call QWORD PTR __imp_?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ -; 465 : return _Traits::not_eof(_Meta); +; 464 : return _Traits::not_eof(_Meta); - 000dd 48 8d 8d 68 01 + 000f4 48 8d 8d 68 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 000e4 e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof - 000e9 e9 f1 00 00 00 jmp $LN1@pbackfail - 000ee e9 ec 00 00 00 jmp $LN3@pbackfail + 000fb e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof + 00100 e9 f1 00 00 00 jmp $LN1@pbackfail + 00105 e9 ec 00 00 00 jmp $LN3@pbackfail $LN2@pbackfail: -; 466 : } else if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), _Meta)) { +; 465 : } else if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), _Meta)) { - 000f3 48 8b 85 60 01 + 0010a 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fa 48 83 b8 80 00 + 00111 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00102 74 25 je SHORT $LN7@pbackfail - 00104 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00109 89 85 04 01 00 + 00119 74 25 je SHORT $LN7@pbackfail + 0011b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00120 89 85 04 01 00 00 mov DWORD PTR $T3[rbp], eax - 0010f 48 8d 95 68 01 + 00126 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 00116 48 8d 8d 04 01 + 0012d 48 8d 8d 04 01 00 00 lea rcx, QWORD PTR $T3[rbp] - 0011d e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00122 0f b6 c0 movzx eax, al - 00125 85 c0 test eax, eax - 00127 74 0f je SHORT $LN5@pbackfail + 00134 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00139 0f b6 c0 movzx eax, al + 0013c 85 c0 test eax, eax + 0013e 74 0f je SHORT $LN5@pbackfail $LN7@pbackfail: -; 467 : return _Traits::eof(); // no open C stream or EOF, fail +; 466 : return _Traits::eof(); // no open C stream or EOF, fail - 00129 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0012e e9 ac 00 00 00 jmp $LN1@pbackfail - 00133 e9 a7 00 00 00 jmp $LN6@pbackfail + 00140 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00145 e9 ac 00 00 00 jmp $LN1@pbackfail + 0014a e9 a7 00 00 00 jmp $LN6@pbackfail $LN5@pbackfail: -; 468 : } else if (!_Pcvt && _Ungetc(_Traits::to_char_type(_Meta), _Myfile)) { +; 467 : } else if (!_Pcvt && _Ungetc(_Traits::to_char_type(_Meta), _Myfile)) { - 00138 48 8b 85 60 01 + 0014f 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0013f 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 00144 75 4b jne SHORT $LN8@pbackfail - 00146 48 8b 85 60 01 + 00156 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0015b 75 4b jne SHORT $LN8@pbackfail + 0015d 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0014d 48 8b 80 80 00 + 00164 48 8b 80 80 00 00 00 mov rax, QWORD PTR [rax+128] - 00154 48 89 85 38 01 + 0016b 48 89 85 38 01 00 00 mov QWORD PTR tv162[rbp], rax - 0015b 48 8d 8d 68 01 + 00172 48 8d 8d 68 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 00162 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type - 00167 88 85 24 01 00 + 00179 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 0017e 88 85 24 01 00 00 mov BYTE PTR $T4[rbp], al - 0016d 48 8b 95 38 01 + 00184 48 8b 95 38 01 00 00 mov rdx, QWORD PTR tv162[rbp] - 00174 48 8d 8d 24 01 + 0018b 48 8d 8d 24 01 00 00 lea rcx, QWORD PTR $T4[rbp] - 0017b e8 00 00 00 00 call ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ; std::_Ungetc - 00180 0f b6 c0 movzx eax, al - 00183 85 c0 test eax, eax - 00185 74 0a je SHORT $LN8@pbackfail + 00192 e8 00 00 00 00 call ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ; std::_Ungetc + 00197 0f b6 c0 movzx eax, al + 0019a 85 c0 test eax, eax + 0019c 74 0a je SHORT $LN8@pbackfail -; 469 : return _Meta; // no facet and unget succeeded, return +; 468 : return _Meta; // no facet and unget succeeded, return - 00187 8b 85 68 01 00 + 0019e 8b 85 68 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 0018d eb 50 jmp SHORT $LN1@pbackfail - 0018f eb 4e jmp SHORT $LN9@pbackfail + 001a4 eb 50 jmp SHORT $LN1@pbackfail + 001a6 eb 4e jmp SHORT $LN9@pbackfail $LN8@pbackfail: -; 470 : } else if (_Mysb::gptr() != &_Mychar) { // putback to _Mychar +; 469 : } else if (_Mysb::gptr() != &_Mychar) { // putback to _Mychar - 00191 48 8b 8d 60 01 + 001a8 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00198 ff 15 00 00 00 + 001af ff 15 00 00 00 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 0019e 48 8b 8d 60 01 + 001b5 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 001a5 48 83 c1 70 add rcx, 112 ; 00000070H - 001a9 48 3b c1 cmp rax, rcx - 001ac 74 2c je SHORT $LN10@pbackfail + 001bc 48 83 c1 70 add rcx, 112 ; 00000070H + 001c0 48 3b c1 cmp rax, rcx + 001c3 74 2c je SHORT $LN10@pbackfail -; 471 : _Mychar = _Traits::to_char_type(_Meta); +; 470 : _Mychar = _Traits::to_char_type(_Meta); - 001ae 48 8d 8d 68 01 + 001c5 48 8d 8d 68 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 001b5 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type - 001ba 48 8b 8d 60 01 + 001cc e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 001d1 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 001c1 88 41 70 mov BYTE PTR [rcx+112], al + 001d8 88 41 70 mov BYTE PTR [rcx+112], al -; 472 : _Set_back(); // switch to _Mychar buffer +; 471 : _Set_back(); // switch to _Mychar buffer - 001c4 48 8b 8d 60 01 + 001db 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 001cb e8 00 00 00 00 call ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Set_back + 001e2 e8 00 00 00 00 call ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Set_back -; 473 : return _Meta; +; 472 : return _Meta; - 001d0 8b 85 68 01 00 + 001e7 8b 85 68 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 001d6 eb 07 jmp SHORT $LN1@pbackfail + 001ed eb 07 jmp SHORT $LN1@pbackfail -; 474 : } else { +; 473 : } else { - 001d8 eb 05 jmp SHORT $LN11@pbackfail + 001ef eb 05 jmp SHORT $LN11@pbackfail $LN10@pbackfail: -; 475 : return _Traits::eof(); // nowhere to put back +; 474 : return _Traits::eof(); // nowhere to put back - 001da e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001f1 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof $LN11@pbackfail: $LN9@pbackfail: $LN6@pbackfail: $LN3@pbackfail: $LN1@pbackfail: -; 476 : } -; 477 : } +; 475 : } +; 476 : } - 001df 48 8d a5 48 01 + 001f6 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001e6 5f pop rdi - 001e7 5d pop rbp - 001e8 c3 ret 0 + 001fd 5f pop rdi + 001fe 5d pop rbp + 001ff c3 ret 0 ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z ENDP ; std::basic_filebuf >::pbackfail _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z _TEXT SEGMENT _Codecvt_temp_buf$ = 8 @@ -11109,7 +12011,7 @@ _Meta$ = 504 ; 406 : virtual int_type __CLR_OR_THIS_CALL overflow(int_type _Meta = _Traits::eof()) override { // put an element to stream -$LN19: +$LN18: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp @@ -11117,155 +12019,155 @@ $LN19: 0000b 48 81 ec 18 02 00 00 sub rsp, 536 ; 00000218H 00012 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] - 00017 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] - 0001c b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 38 + 00017 48 8b fc mov rdi, rsp + 0001a b9 86 00 00 00 mov ecx, 134 ; 00000086H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] - 00030 48 8b 05 00 00 + 0002e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 c8 01 + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 c8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 407 : if (_Traits::eq_int_type(_Traits::eof(), _Meta)) { - 0004d e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00052 89 85 a4 01 00 + 0004b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00050 89 85 a4 01 00 00 mov DWORD PTR $T8[rbp], eax - 00058 48 8d 95 f8 01 + 00056 48 8d 95 f8 01 00 00 lea rdx, QWORD PTR _Meta$[rbp] - 0005f 48 8d 8d a4 01 + 0005d 48 8d 8d a4 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 00066 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0006b 0f b6 c0 movzx eax, al - 0006e 85 c0 test eax, eax - 00070 74 11 je SHORT $LN4@overflow + 00064 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00069 0f b6 c0 movzx eax, al + 0006c 85 c0 test eax, eax + 0006e 74 11 je SHORT $LN4@overflow ; 408 : return _Traits::not_eof(_Meta); // EOF, return success code - 00072 48 8d 8d f8 01 + 00070 48 8d 8d f8 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 00079 e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof - 0007e e9 6d 02 00 00 jmp $LN1@overflow + 00077 e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof + 0007c e9 71 02 00 00 jmp $LN1@overflow $LN4@overflow: ; 409 : } ; 410 : ; 411 : if (_Mysb::pptr() && _Mysb::pptr() < _Mysb::epptr()) { // room in buffer, store it - 00083 48 8b 8d f0 01 + 00081 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008a ff 15 00 00 00 + 00088 ff 15 00 00 00 00 call QWORD PTR __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 00090 48 85 c0 test rax, rax - 00093 74 60 je SHORT $LN5@overflow - 00095 48 8b 8d f0 01 + 0008e 48 85 c0 test rax, rax + 00091 74 60 je SHORT $LN5@overflow + 00093 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009c ff 15 00 00 00 + 0009a ff 15 00 00 00 00 call QWORD PTR __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 000a2 48 89 85 b8 01 + 000a0 48 89 85 b8 01 00 00 mov QWORD PTR tv84[rbp], rax - 000a9 48 8b 8d f0 01 + 000a7 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000b0 ff 15 00 00 00 + 000ae ff 15 00 00 00 00 call QWORD PTR __imp_?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ - 000b6 48 8b 8d b8 01 + 000b4 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR tv84[rbp] - 000bd 48 3b c8 cmp rcx, rax - 000c0 73 33 jae SHORT $LN5@overflow + 000bb 48 3b c8 cmp rcx, rax + 000be 73 33 jae SHORT $LN5@overflow ; 412 : *_Mysb::_Pninc() = _Traits::to_char_type(_Meta); - 000c2 48 8d 8d f8 01 + 000c0 48 8d 8d f8 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 000c9 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type - 000ce 88 85 b4 01 00 + 000c7 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 000cc 88 85 b4 01 00 00 mov BYTE PTR tv133[rbp], al - 000d4 48 8b 8d f0 01 + 000d2 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000db ff 15 00 00 00 + 000d9 ff 15 00 00 00 00 call QWORD PTR __imp_?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ - 000e1 0f b6 8d b4 01 + 000df 0f b6 8d b4 01 00 00 movzx ecx, BYTE PTR tv133[rbp] - 000e8 88 08 mov BYTE PTR [rax], cl + 000e6 88 08 mov BYTE PTR [rax], cl ; 413 : return _Meta; - 000ea 8b 85 f8 01 00 + 000e8 8b 85 f8 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 000f0 e9 fb 01 00 00 jmp $LN1@overflow + 000ee e9 ff 01 00 00 jmp $LN1@overflow $LN5@overflow: ; 414 : } ; 415 : ; 416 : if (!_Myfile) { - 000f5 48 8b 85 f0 01 + 000f3 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fc 48 83 b8 80 00 + 000fa 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 00104 75 0a jne SHORT $LN6@overflow + 00102 75 0a jne SHORT $LN6@overflow ; 417 : return _Traits::eof(); // no open C stream, fail - 00106 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0010b e9 e0 01 00 00 jmp $LN1@overflow + 00104 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00109 e9 e4 01 00 00 jmp $LN1@overflow $LN6@overflow: ; 418 : } ; 419 : ; 420 : _Reset_back(); // revert from _Mychar buffer - 00110 48 8b 8d f0 01 + 0010e 48 8b 8d f0 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00117 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + 00115 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back ; 421 : if (!_Pcvt) { // no codecvt facet, put as is - 0011c 48 8b 85 f0 01 + 0011a 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00123 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 - 00128 75 65 jne SHORT $LN7@overflow + 00121 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00126 75 65 jne SHORT $LN7@overflow ; 422 : return _Fputc(_Traits::to_char_type(_Meta), _Myfile) ? _Meta : _Traits::eof(); - 0012a 48 8b 85 f0 01 + 00128 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00131 48 8b 80 80 00 + 0012f 48 8b 80 80 00 00 00 mov rax, QWORD PTR [rax+128] - 00138 48 89 85 b8 01 + 00136 48 89 85 b8 01 00 00 mov QWORD PTR tv149[rbp], rax - 0013f 48 8d 8d f8 01 + 0013d 48 8d 8d f8 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 00146 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type - 0014b 88 85 c0 01 00 + 00144 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 00149 88 85 c0 01 00 00 mov BYTE PTR tv147[rbp], al - 00151 48 8b 95 b8 01 + 0014f 48 8b 95 b8 01 00 00 mov rdx, QWORD PTR tv149[rbp] - 00158 0f b6 8d c0 01 + 00156 0f b6 8d c0 01 00 00 movzx ecx, BYTE PTR tv147[rbp] - 0015f e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc - 00164 0f b6 c0 movzx eax, al - 00167 85 c0 test eax, eax - 00169 74 0e je SHORT $LN15@overflow - 0016b 8b 85 f8 01 00 + 0015d e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc + 00162 0f b6 c0 movzx eax, al + 00165 85 c0 test eax, eax + 00167 74 0e je SHORT $LN14@overflow + 00169 8b 85 f8 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 00171 89 85 c4 01 00 + 0016f 89 85 c4 01 00 00 mov DWORD PTR tv153[rbp], eax - 00177 eb 0b jmp SHORT $LN16@overflow -$LN15@overflow: - 00179 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0017e 89 85 c4 01 00 + 00175 eb 0b jmp SHORT $LN15@overflow +$LN14@overflow: + 00177 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0017c 89 85 c4 01 00 00 mov DWORD PTR tv153[rbp], eax -$LN16@overflow: - 00184 8b 85 c4 01 00 +$LN15@overflow: + 00182 8b 85 c4 01 00 00 mov eax, DWORD PTR tv153[rbp] - 0018a e9 61 01 00 00 jmp $LN1@overflow + 00188 e9 65 01 00 00 jmp $LN1@overflow $LN7@overflow: ; 423 : } @@ -11273,190 +12175,189 @@ $LN7@overflow: ; 425 : // put using codecvt facet ; 426 : constexpr size_t _Codecvt_temp_buf = 32; - 0018f 48 c7 45 08 20 + 0018d 48 c7 45 08 20 00 00 00 mov QWORD PTR _Codecvt_temp_buf$[rbp], 32 ; 00000020H ; 427 : char _Str[_Codecvt_temp_buf]; ; 428 : const _Elem _Ch = _Traits::to_char_type(_Meta); - 00197 48 8d 8d f8 01 + 00195 48 8d 8d f8 01 00 00 lea rcx, QWORD PTR _Meta$[rbp] - 0019e e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type - 001a3 88 45 64 mov BYTE PTR _Ch$[rbp], al + 0019c e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 001a1 88 45 64 mov BYTE PTR _Ch$[rbp], al ; 429 : const _Elem* _Src; ; 430 : char* _Dest; ; 431 : switch (_Pcvt->out(_State, &_Ch, &_Ch + 1, _Src, _Str, _Str + _Codecvt_temp_buf, - 001a6 48 8b 85 f0 01 + 001a4 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 001ad 48 8b 40 68 mov rax, QWORD PTR [rax+104] - 001b1 48 89 85 b8 01 + 001ab 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 001af 48 89 85 b8 01 00 00 mov QWORD PTR tv170[rbp], rax - 001b8 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] - 001bc 48 8d 4d 65 lea rcx, QWORD PTR _Ch$[rbp+1] - 001c0 48 8b 95 f0 01 + 001b6 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] + 001ba 48 8d 4d 65 lea rcx, QWORD PTR _Ch$[rbp+1] + 001be 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR this$[rbp] - 001c7 48 83 c2 74 add rdx, 116 ; 00000074H - 001cb 4c 8d 85 a8 00 + 001c5 48 83 c2 74 add rdx, 116 ; 00000074H + 001c9 4c 8d 85 a8 00 00 00 lea r8, QWORD PTR _Dest$[rbp] - 001d2 4c 89 44 24 38 mov QWORD PTR [rsp+56], r8 - 001d7 48 89 44 24 30 mov QWORD PTR [rsp+48], rax - 001dc 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] - 001e0 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 001e5 48 8d 85 88 00 + 001d0 4c 89 44 24 38 mov QWORD PTR [rsp+56], r8 + 001d5 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 001da 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 001de 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 001e3 48 8d 85 88 00 00 00 lea rax, QWORD PTR _Src$[rbp] - 001ec 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001f1 4c 8b c9 mov r9, rcx - 001f4 4c 8d 45 64 lea r8, QWORD PTR _Ch$[rbp] - 001f8 48 8b 8d b8 01 + 001ea 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001ef 4c 8b c9 mov r9, rcx + 001f2 4c 8d 45 64 lea r8, QWORD PTR _Ch$[rbp] + 001f6 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR tv170[rbp] - 001ff ff 15 00 00 00 + 001fd ff 15 00 00 00 00 call QWORD PTR __imp_?out@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z - 00205 89 85 c0 01 00 + 00203 89 85 c0 01 00 00 mov DWORD PTR tv171[rbp], eax - 0020b 83 bd c0 01 00 + 00209 83 bd c0 01 00 00 00 cmp DWORD PTR tv171[rbp], 0 - 00212 74 1b je SHORT $LN9@overflow - 00214 83 bd c0 01 00 + 00210 0f 8c d7 00 00 + 00 jl $LN12@overflow + 00216 83 bd c0 01 00 00 01 cmp DWORD PTR tv171[rbp], 1 - 0021b 74 12 je SHORT $LN8@overflow - 0021d 83 bd c0 01 00 + 0021d 7e 12 jle SHORT $LN8@overflow + 0021f 83 bd c0 01 00 00 03 cmp DWORD PTR tv171[rbp], 3 - 00224 0f 84 82 00 00 - 00 je $LN12@overflow - 0022a e9 bc 00 00 00 jmp $LN13@overflow + 00226 0f 84 82 00 00 + 00 je $LN11@overflow + 0022c e9 bc 00 00 00 jmp $LN12@overflow $LN8@overflow: -$LN9@overflow: ; 432 : _Dest)) { // test result of converting one element ; 433 : case codecvt_base::partial: -; 434 : case codecvt_base::ok: -; 435 : { // converted something, try to put it out -; 436 : const auto _Count = static_cast(_Dest - _Str); +; 434 : case codecvt_base::ok: { // converted something, try to put it out +; 435 : const auto _Count = static_cast(_Dest - _Str); - 0022f 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] - 00233 48 8b 8d a8 00 + 00231 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 00235 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 0023a 48 2b c8 sub rcx, rax - 0023d 48 8b c1 mov rax, rcx - 00240 48 89 85 c8 00 + 0023c 48 2b c8 sub rcx, rax + 0023f 48 8b c1 mov rax, rcx + 00242 48 89 85 c8 00 00 00 mov QWORD PTR _Count$7[rbp], rax -; 437 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { +; 436 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { - 00247 48 83 bd c8 00 + 00249 48 83 bd c8 00 00 00 00 cmp QWORD PTR _Count$7[rbp], 0 - 0024f 76 34 jbe SHORT $LN10@overflow - 00251 48 8b 85 f0 01 + 00251 76 34 jbe SHORT $LN9@overflow + 00253 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00258 4c 8b 88 80 00 + 0025a 4c 8b 88 80 00 00 00 mov r9, QWORD PTR [rax+128] - 0025f 4c 8b 85 c8 00 + 00261 4c 8b 85 c8 00 00 00 mov r8, QWORD PTR _Count$7[rbp] - 00266 ba 01 00 00 00 mov edx, 1 - 0026b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] - 0026f ff 15 00 00 00 + 00268 ba 01 00 00 00 mov edx, 1 + 0026d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00271 ff 15 00 00 00 00 call QWORD PTR __imp_fwrite - 00275 48 39 85 c8 00 + 00277 48 39 85 c8 00 00 00 cmp QWORD PTR _Count$7[rbp], rax - 0027c 74 07 je SHORT $LN10@overflow + 0027e 74 07 je SHORT $LN9@overflow -; 438 : return _Traits::eof(); // write failed +; 437 : return _Traits::eof(); // write failed - 0027e e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00283 eb 6b jmp SHORT $LN1@overflow -$LN10@overflow: + 00280 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00285 eb 6b jmp SHORT $LN1@overflow +$LN9@overflow: -; 439 : } -; 440 : -; 441 : _Wrotesome = true; // write succeeded +; 438 : } +; 439 : +; 440 : _Wrotesome = true; // write succeeded - 00285 48 8b 85 f0 01 + 00287 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 0028c c6 40 71 01 mov BYTE PTR [rax+113], 1 + 0028e c6 40 71 01 mov BYTE PTR [rax+113], 1 -; 442 : if (_Src != &_Ch) { +; 441 : if (_Src != &_Ch) { - 00290 48 8d 45 64 lea rax, QWORD PTR _Ch$[rbp] - 00294 48 39 85 88 00 + 00292 48 8d 45 64 lea rax, QWORD PTR _Ch$[rbp] + 00296 48 39 85 88 00 00 00 cmp QWORD PTR _Src$[rbp], rax - 0029b 74 08 je SHORT $LN11@overflow + 0029d 74 08 je SHORT $LN10@overflow -; 443 : return _Meta; // converted whole element +; 442 : return _Meta; // converted whole element - 0029d 8b 85 f8 01 00 + 0029f 8b 85 f8 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 002a3 eb 4b jmp SHORT $LN1@overflow -$LN11@overflow: + 002a5 eb 4b jmp SHORT $LN1@overflow +$LN10@overflow: -; 444 : } -; 445 : -; 446 : return _Traits::eof(); // conversion failed +; 443 : } +; 444 : +; 445 : return _Traits::eof(); // conversion failed - 002a5 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 002aa eb 44 jmp SHORT $LN1@overflow -$LN12@overflow: + 002a7 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002ac eb 44 jmp SHORT $LN1@overflow +$LN11@overflow: -; 447 : } -; 448 : -; 449 : case codecvt_base::noconv: -; 450 : // no conversion, put as is -; 451 : return _Fputc(_Ch, _Myfile) ? _Meta : _Traits::eof(); +; 446 : } +; 447 : +; 448 : case codecvt_base::noconv: +; 449 : // no conversion, put as is +; 450 : return _Fputc(_Ch, _Myfile) ? _Meta : _Traits::eof(); - 002ac 48 8b 85 f0 01 + 002ae 48 8b 85 f0 01 00 00 mov rax, QWORD PTR this$[rbp] - 002b3 48 8b 90 80 00 + 002b5 48 8b 90 80 00 00 00 mov rdx, QWORD PTR [rax+128] - 002ba 0f b6 4d 64 movzx ecx, BYTE PTR _Ch$[rbp] - 002be e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc - 002c3 0f b6 c0 movzx eax, al - 002c6 85 c0 test eax, eax - 002c8 74 0e je SHORT $LN17@overflow - 002ca 8b 85 f8 01 00 + 002bc 0f b6 4d 64 movzx ecx, BYTE PTR _Ch$[rbp] + 002c0 e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc + 002c5 0f b6 c0 movzx eax, al + 002c8 85 c0 test eax, eax + 002ca 74 0e je SHORT $LN16@overflow + 002cc 8b 85 f8 01 00 00 mov eax, DWORD PTR _Meta$[rbp] - 002d0 89 85 b4 01 00 + 002d2 89 85 b4 01 00 00 mov DWORD PTR tv192[rbp], eax - 002d6 eb 0b jmp SHORT $LN18@overflow -$LN17@overflow: - 002d8 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 002dd 89 85 b4 01 00 + 002d8 eb 0b jmp SHORT $LN17@overflow +$LN16@overflow: + 002da e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002df 89 85 b4 01 00 00 mov DWORD PTR tv192[rbp], eax -$LN18@overflow: - 002e3 8b 85 b4 01 00 +$LN17@overflow: + 002e5 8b 85 b4 01 00 00 mov eax, DWORD PTR tv192[rbp] - 002e9 eb 05 jmp SHORT $LN1@overflow -$LN13@overflow: + 002eb eb 05 jmp SHORT $LN1@overflow +$LN12@overflow: -; 452 : -; 453 : default: -; 454 : return _Traits::eof(); // conversion failed +; 451 : +; 452 : default: +; 453 : return _Traits::eof(); // conversion failed - 002eb e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002ed e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof $LN1@overflow: -; 455 : } -; 456 : } +; 454 : } +; 455 : } - 002f0 48 8b f8 mov rdi, rax - 002f3 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] - 002f7 48 8d 15 00 00 + 002f2 48 8b f8 mov rdi, rax + 002f5 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 002f9 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcFrameData - 002fe e8 00 00 00 00 call _RTC_CheckStackVars - 00303 48 8b c7 mov rax, rdi - 00306 48 8b 8d c8 01 + 00300 e8 00 00 00 00 call _RTC_CheckStackVars + 00305 48 8b c7 mov rax, rdi + 00308 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0030d 48 33 cd xor rcx, rbp - 00310 e8 00 00 00 00 call __security_check_cookie - 00315 48 8d a5 d8 01 + 0030f 48 33 cd xor rcx, rbp + 00312 e8 00 00 00 00 call __security_check_cookie + 00317 48 8d a5 d8 01 00 00 lea rsp, QWORD PTR [rbp+472] - 0031c 5f pop rdi - 0031d 5d pop rbp - 0031e c3 ret 0 + 0031e 5f pop rdi + 0031f 5d pop rbp + 00320 c3 ret 0 ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z ENDP ; std::basic_filebuf >::overflow _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ _TEXT SEGMENT this$ = 224 @@ -11471,40 +12372,46 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 400 : if (_Myfile) { - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 b8 80 00 + 0003d 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0002e 74 14 je SHORT $LN2@Unlock + 00045 74 14 je SHORT $LN2@Unlock ; 401 : _CSTD _unlock_file(_Myfile); - 00030 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 8b 88 80 00 + 0004e 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0003e ff 15 00 00 00 + 00055 ff 15 00 00 00 00 call QWORD PTR __imp__unlock_file $LN2@Unlock: ; 402 : } ; 403 : } - 00044 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ ENDP ; std::basic_filebuf >::_Unlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ _TEXT SEGMENT this$ = 224 @@ -11519,40 +12426,46 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 394 : if (_Myfile) { - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 b8 80 00 + 0003d 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0002e 74 14 je SHORT $LN2@Lock + 00045 74 14 je SHORT $LN2@Lock ; 395 : _CSTD _lock_file(_Myfile); - 00030 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 8b 88 80 00 + 0004e 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 0003e ff 15 00 00 00 + 00055 ff 15 00 00 00 00 call QWORD PTR __imp__lock_file $LN2@Lock: ; 396 : } ; 397 : } - 00044 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ ENDP ; std::basic_filebuf >::_Lock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ _TEXT SEGMENT _Ans$ = 8 @@ -11568,37 +12481,43 @@ $LN7: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 375 : basic_filebuf* _Ans; ; 376 : if (_Myfile) { // put any homing sequence and close file - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 b8 80 00 + 0003d 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0002e 74 48 je SHORT $LN2@close + 00045 74 48 je SHORT $LN2@close ; 377 : _Ans = this; - 00030 48 8b 85 00 01 + 00047 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 89 45 08 mov QWORD PTR _Ans$[rbp], rax + 0004e 48 89 45 08 mov QWORD PTR _Ans$[rbp], rax ; 378 : if (!_Endwrite()) { - 0003b 48 8b 8d 00 01 + 00052 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00042 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite - 00047 0f b6 c0 movzx eax, al - 0004a 85 c0 test eax, eax - 0004c 75 08 jne SHORT $LN4@close + 00059 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 0005e 0f b6 c0 movzx eax, al + 00061 85 c0 test eax, eax + 00063 75 08 jne SHORT $LN4@close ; 379 : _Ans = nullptr; - 0004e 48 c7 45 08 00 + 00065 48 c7 45 08 00 00 00 00 mov QWORD PTR _Ans$[rbp], 0 $LN4@close: @@ -11606,30 +12525,30 @@ $LN4@close: ; 381 : ; 382 : if (_CSTD fclose(_Myfile) != 0) { - 00056 48 8b 85 00 01 + 0006d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005d 48 8b 88 80 00 + 00074 48 8b 88 80 00 00 00 mov rcx, QWORD PTR [rax+128] - 00064 ff 15 00 00 00 + 0007b ff 15 00 00 00 00 call QWORD PTR __imp_fclose - 0006a 85 c0 test eax, eax - 0006c 74 08 je SHORT $LN5@close + 00081 85 c0 test eax, eax + 00083 74 08 je SHORT $LN5@close ; 383 : _Ans = nullptr; - 0006e 48 c7 45 08 00 + 00085 48 c7 45 08 00 00 00 00 mov QWORD PTR _Ans$[rbp], 0 $LN5@close: ; 384 : } ; 385 : } else { - 00076 eb 08 jmp SHORT $LN3@close + 0008d eb 08 jmp SHORT $LN3@close $LN2@close: ; 386 : _Ans = nullptr; - 00078 48 c7 45 08 00 + 0008f 48 c7 45 08 00 00 00 00 mov QWORD PTR _Ans$[rbp], 0 $LN3@close: @@ -11637,28 +12556,28 @@ $LN3@close: ; 388 : ; 389 : _Init(nullptr, _Closefl); - 00080 41 b8 02 00 00 + 00097 41 b8 02 00 00 00 mov r8d, 2 - 00086 33 d2 xor edx, edx - 00088 48 8b 8d 00 01 + 0009d 33 d2 xor edx, edx + 0009f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008f e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + 000a6 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init ; 390 : return _Ans; - 00094 48 8b 45 08 mov rax, QWORD PTR _Ans$[rbp] + 000ab 48 8b 45 08 mov rax, QWORD PTR _Ans$[rbp] ; 391 : } - 00098 48 8d a5 e8 00 + 000af 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0009f 5f pop rdi - 000a0 5d pop rbp - 000a1 c3 ret 0 + 000b6 5f pop rdi + 000b7 5d pop rbp + 000b8 c3 ret 0 ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ENDP ; std::basic_filebuf >::close _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z _TEXT SEGMENT _File$ = 8 @@ -11683,99 +12602,105 @@ $LN6: 00016 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 276 : // _Prot is an extension ; 277 : if (_Myfile) { - 0002e 48 8b 85 40 01 + 00045 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00035 48 83 b8 80 00 + 0004c 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0003d 74 07 je SHORT $LN2@open + 00054 74 07 je SHORT $LN2@open ; 278 : return nullptr; - 0003f 33 c0 xor eax, eax - 00041 e9 96 00 00 00 jmp $LN1@open + 00056 33 c0 xor eax, eax + 00058 e9 96 00 00 00 jmp $LN1@open $LN2@open: ; 279 : } ; 280 : ; 281 : const auto _File = _Fiopen(_Filename, _Mode, _Prot); - 00046 44 8b 85 58 01 + 0005d 44 8b 85 58 01 00 00 mov r8d, DWORD PTR _Prot$[rbp] - 0004d 8b 95 50 01 00 + 00064 8b 95 50 01 00 00 mov edx, DWORD PTR _Mode$[rbp] - 00053 48 8b 8d 48 01 + 0006a 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR _Filename$[rbp] - 0005a e8 00 00 00 00 call ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z ; std::_Fiopen - 0005f 48 89 45 08 mov QWORD PTR _File$[rbp], rax + 00071 e8 00 00 00 00 call ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z ; std::_Fiopen + 00076 48 89 45 08 mov QWORD PTR _File$[rbp], rax ; 282 : if (!_File) { - 00063 48 83 7d 08 00 cmp QWORD PTR _File$[rbp], 0 - 00068 75 04 jne SHORT $LN3@open + 0007a 48 83 7d 08 00 cmp QWORD PTR _File$[rbp], 0 + 0007f 75 04 jne SHORT $LN3@open ; 283 : return nullptr; // open failed - 0006a 33 c0 xor eax, eax - 0006c eb 6e jmp SHORT $LN1@open + 00081 33 c0 xor eax, eax + 00083 eb 6e jmp SHORT $LN1@open $LN3@open: ; 284 : } ; 285 : ; 286 : _Init(_File, _Openfl); - 0006e 41 b8 01 00 00 + 00085 41 b8 01 00 00 00 mov r8d, 1 - 00074 48 8b 55 08 mov rdx, QWORD PTR _File$[rbp] - 00078 48 8b 8d 40 01 + 0008b 48 8b 55 08 mov rdx, QWORD PTR _File$[rbp] + 0008f 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007f e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + 00096 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init ; 287 : _Initcvt(_STD use_facet<_Cvt>(_Mysb::getloc())); - 00084 48 8d 95 e8 00 + 0009b 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0008b 48 8b 8d 40 01 + 000a2 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00092 ff 15 00 00 00 + 000a9 ff 15 00 00 00 00 call QWORD PTR __imp_?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ - 00098 48 89 85 08 01 + 000af 48 89 85 08 01 00 00 mov QWORD PTR tv90[rbp], rax - 0009f 48 8b 85 08 01 + 000b6 48 8b 85 08 01 00 00 mov rax, QWORD PTR tv90[rbp] - 000a6 48 89 85 10 01 + 000bd 48 89 85 10 01 00 00 mov QWORD PTR tv89[rbp], rax - 000ad 48 8b 8d 10 01 + 000c4 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR tv89[rbp] - 000b4 e8 00 00 00 00 call ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > - 000b9 48 8b d0 mov rdx, rax - 000bc 48 8b 8d 40 01 + 000cb e8 00 00 00 00 call ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > + 000d0 48 8b d0 mov rdx, rax + 000d3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c3 e8 00 00 00 00 call ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt - 000c8 90 npad 1 - 000c9 48 8d 8d e8 00 + 000da e8 00 00 00 00 call ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt + 000df 90 npad 1 + 000e0 48 8d 8d e8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 000d0 e8 00 00 00 00 call ??1locale@std@@QEAA@XZ ; std::locale::~locale + 000e7 e8 00 00 00 00 call ??1locale@std@@QEAA@XZ ; std::locale::~locale ; 288 : return this; // open succeeded - 000d5 48 8b 85 40 01 + 000ec 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] $LN1@open: ; 289 : } - 000dc 48 8d a5 28 01 + 000f3 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000e3 5f pop rdi - 000e4 5d pop rbp - 000e5 c3 ret 0 + 000fa 5f pop rdi + 000fb 5d pop rbp + 000fc c3 ret 0 ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ENDP ; std::basic_filebuf >::open _TEXT ENDS ; COMDAT text$x @@ -11832,7 +12757,7 @@ _Prot$ = 344 ?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA ENDP ; `std::basic_filebuf >::open'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -11847,64 +12772,70 @@ $LN5: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d 0d 00 00 + 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ - 0002d 48 89 08 mov QWORD PTR [rax], rcx + 00044 48 89 08 mov QWORD PTR [rax], rcx ; 171 : if (_Myfile) { - 00030 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 83 b8 80 00 + 0004e 48 83 b8 80 00 00 00 00 cmp QWORD PTR [rax+128], 0 - 0003f 74 0c je SHORT $LN2@basic_file + 00056 74 0c je SHORT $LN2@basic_file ; 172 : _Reset_back(); // revert from _Mychar buffer - 00041 48 8b 8d e0 00 + 00058 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00048 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + 0005f e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back $LN2@basic_file: ; 173 : } ; 174 : ; 175 : if (_Closef) { - 0004d 48 8b 85 e0 00 + 00064 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00054 0f b6 40 7c movzx eax, BYTE PTR [rax+124] - 00058 85 c0 test eax, eax - 0005a 74 0c je SHORT $LN3@basic_file + 0006b 0f b6 40 7c movzx eax, BYTE PTR [rax+124] + 0006f 85 c0 test eax, eax + 00071 74 0c je SHORT $LN3@basic_file ; 176 : close(); - 0005c 48 8b 8d e0 00 + 00073 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00063 e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close + 0007a e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close $LN3@basic_file: ; 177 : } ; 178 : } - 00068 48 8b 8d e0 00 + 0007f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0006f ff 15 00 00 00 + 00086 ff 15 00 00 00 00 call QWORD PTR __imp_??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ - 00075 90 npad 1 - 00076 48 8d a5 c8 00 + 0008c 90 npad 1 + 0008d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007d 5f pop rdi - 0007e 5d pop rbp - 0007f c3 ret 0 + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ENDP ; std::basic_filebuf >::~basic_filebuf > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -11919,38 +12850,44 @@ $LN4: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ - 0002c 90 npad 1 - 0002d 48 8b 85 e0 00 + 00043 90 npad 1 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8d 0d 00 00 + 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ - 0003b 48 89 08 mov QWORD PTR [rax], rcx + 00052 48 89 08 mov QWORD PTR [rax], rcx ; 163 : _Init(nullptr, _Newfl); - 0003e 45 33 c0 xor r8d, r8d - 00041 33 d2 xor edx, edx - 00043 48 8b 8d e0 00 + 00055 45 33 c0 xor r8d, r8d + 00058 33 d2 xor edx, edx + 0005a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004a e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init - 0004f 90 npad 1 + 00061 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + 00066 90 npad 1 ; 164 : } - 00050 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00057 48 8d a5 c8 00 + 0006e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_filebuf >::basic_filebuf > _TEXT ENDS ; COMDAT text$x @@ -11995,14 +12932,14 @@ this$ = 224 ?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_filebuf >::basic_filebuf >'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ _TEXT SEGMENT tv82 = 192 this$ = 240 ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ PROC ; std::basic_ofstream >::close, COMDAT -; 1169 : void close() { +; 1168 : void close() { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -12011,52 +12948,58 @@ $LN4: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1170 : if (!_Filebuffer.close()) { - - 0001f 48 8b 85 f0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1169 : if (!_Filebuffer.close()) { + + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 c0 08 add rax, 8 - 0002a 48 8b c8 mov rcx, rax - 0002d e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close - 00032 48 85 c0 test rax, rax - 00035 75 37 jne SHORT $LN2@close + 0003d 48 83 c0 08 add rax, 8 + 00041 48 8b c8 mov rcx, rax + 00044 e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close + 00049 48 85 c0 test rax, rax + 0004c 75 37 jne SHORT $LN2@close -; 1171 : _Myios::setstate(ios_base::failbit); +; 1170 : _Myios::setstate(ios_base::failbit); - 00037 48 8b 85 f0 00 + 0004e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8b 00 mov rax, QWORD PTR [rax] - 00041 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00045 48 8b 8d f0 00 + 00055 48 8b 00 mov rax, QWORD PTR [rax] + 00058 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005c 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004c 48 03 c8 add rcx, rax - 0004f 48 8b c1 mov rax, rcx - 00052 48 89 85 c0 00 + 00063 48 03 c8 add rcx, rax + 00066 48 8b c1 mov rax, rcx + 00069 48 89 85 c0 00 00 00 mov QWORD PTR tv82[rbp], rax - 00059 45 33 c0 xor r8d, r8d - 0005c ba 02 00 00 00 mov edx, 2 - 00061 48 8b 8d c0 00 + 00070 45 33 c0 xor r8d, r8d + 00073 ba 02 00 00 00 mov edx, 2 + 00078 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv82[rbp] - 00068 ff 15 00 00 00 + 0007f ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z $LN2@close: -; 1172 : } -; 1173 : } +; 1171 : } +; 1172 : } - 0006e 48 8d a5 d8 00 + 00085 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ENDP ; std::basic_ofstream >::close _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z _TEXT SEGMENT tv135 = 192 @@ -12068,7 +13011,7 @@ _Mode$ = 256 _Prot$ = 264 ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z PROC ; std::basic_ofstream >::open, COMDAT -; 1149 : const char* _Filename, ios_base::openmode _Mode = ios_base::out, int _Prot = ios_base::_Default_open_prot) { +; 1148 : const char* _Filename, ios_base::openmode _Mode = ios_base::out, int _Prot = ios_base::_Default_open_prot) { $LN5: 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d @@ -12080,94 +13023,100 @@ $LN5: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1150 : // _Prot is an extension -; 1151 : if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot)) { +; 1149 : // _Prot is an extension +; 1150 : if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot)) { - 0002e 48 8b 85 f0 00 + 00045 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00035 48 83 c0 08 add rax, 8 - 00039 48 89 85 c0 00 + 0004c 48 83 c0 08 add rax, 8 + 00050 48 89 85 c0 00 00 00 mov QWORD PTR tv72[rbp], rax - 00040 8b 85 00 01 00 + 00057 8b 85 00 01 00 00 mov eax, DWORD PTR _Mode$[rbp] - 00046 83 c8 02 or eax, 2 - 00049 44 8b 8d 08 01 + 0005d 83 c8 02 or eax, 2 + 00060 44 8b 8d 08 01 00 00 mov r9d, DWORD PTR _Prot$[rbp] - 00050 44 8b c0 mov r8d, eax - 00053 48 8b 95 f8 00 + 00067 44 8b c0 mov r8d, eax + 0006a 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _Filename$[rbp] - 0005a 48 8b 8d c0 00 + 00071 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv72[rbp] - 00061 e8 00 00 00 00 call ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ; std::basic_filebuf >::open - 00066 48 85 c0 test rax, rax - 00069 74 36 je SHORT $LN2@open + 00078 e8 00 00 00 00 call ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ; std::basic_filebuf >::open + 0007d 48 85 c0 test rax, rax + 00080 74 36 je SHORT $LN2@open -; 1152 : _Myios::clear(); +; 1151 : _Myios::clear(); - 0006b 48 8b 85 f0 00 + 00082 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00072 48 8b 00 mov rax, QWORD PTR [rax] - 00075 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00079 48 8b 8d f0 00 + 00089 48 8b 00 mov rax, QWORD PTR [rax] + 0008c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00090 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00080 48 03 c8 add rcx, rax - 00083 48 8b c1 mov rax, rcx - 00086 48 89 85 c0 00 + 00097 48 03 c8 add rcx, rax + 0009a 48 8b c1 mov rax, rcx + 0009d 48 89 85 c0 00 00 00 mov QWORD PTR tv88[rbp], rax - 0008d 45 33 c0 xor r8d, r8d - 00090 33 d2 xor edx, edx - 00092 48 8b 8d c0 00 + 000a4 45 33 c0 xor r8d, r8d + 000a7 33 d2 xor edx, edx + 000a9 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv88[rbp] - 00099 ff 15 00 00 00 + 000b0 ff 15 00 00 00 00 call QWORD PTR __imp_?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 1153 : } else { +; 1152 : } else { - 0009f eb 37 jmp SHORT $LN3@open + 000b6 eb 37 jmp SHORT $LN3@open $LN2@open: -; 1154 : _Myios::setstate(ios_base::failbit); +; 1153 : _Myios::setstate(ios_base::failbit); - 000a1 48 8b 85 f0 00 + 000b8 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000a8 48 8b 00 mov rax, QWORD PTR [rax] - 000ab 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000af 48 8b 8d f0 00 + 000bf 48 8b 00 mov rax, QWORD PTR [rax] + 000c2 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000c6 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 85 c0 00 + 000cd 48 03 c8 add rcx, rax + 000d0 48 8b c1 mov rax, rcx + 000d3 48 89 85 c0 00 00 00 mov QWORD PTR tv135[rbp], rax - 000c3 45 33 c0 xor r8d, r8d - 000c6 ba 02 00 00 00 mov edx, 2 - 000cb 48 8b 8d c0 00 + 000da 45 33 c0 xor r8d, r8d + 000dd ba 02 00 00 00 mov edx, 2 + 000e2 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv135[rbp] - 000d2 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z $LN3@open: -; 1155 : } -; 1156 : } +; 1154 : } +; 1155 : } - 000d8 48 8d a5 d8 00 + 000ef 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000df 5f pop rdi - 000e0 5d pop rbp - 000e1 c3 ret 0 + 000f6 5f pop rdi + 000f7 5d pop rbp + 000f8 c3 ret 0 ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ENDP ; std::basic_ofstream >::open _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ PROC ; std::basic_ofstream >::~basic_ofstream >, COMDAT -; 1138 : virtual __CLR_OR_THIS_CALL ~basic_ofstream() noexcept {} +; 1137 : virtual __CLR_OR_THIS_CALL ~basic_ofstream() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -12176,58 +13125,65 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 80 58 ff + 0003d 48 8b 80 58 ff ff ff mov rax, QWORD PTR [rax-168] - 0002d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00031 48 8b 8d e0 00 + 00044 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00038 48 8d 15 00 00 + 0004f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ - 0003f 48 89 94 01 58 + 00056 48 89 94 01 58 ff ff ff mov QWORD PTR [rcx+rax-168], rdx - 00047 48 8b 85 e0 00 + 0005e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 8b 80 58 ff + 00065 48 8b 80 58 ff ff ff mov rax, QWORD PTR [rax-168] - 00055 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00059 48 2d a8 00 00 + 0006c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00070 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 0005f 48 8b 8d e0 00 + 00076 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00066 48 8b 89 58 ff + 0007d 48 8b 89 58 ff ff ff mov rcx, QWORD PTR [rcx-168] - 0006d 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] - 00071 48 8b 95 e0 00 + 00084 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] + 00088 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR this$[rbp] - 00078 89 84 0a 54 ff + 0008f 89 84 0a 54 ff ff ff mov DWORD PTR [rdx+rcx-172], eax - 0007f 48 8b 85 e0 00 + 00096 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00086 48 2d a0 00 00 + 0009d 48 2d a0 00 00 00 sub rax, 160 ; 000000a0H - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > - 00094 48 8b 85 e0 00 + 000a3 48 8b c8 mov rcx, rax + 000a6 e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > + 000ab 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0009b 48 2d 98 00 00 + 000b2 48 2d 98 00 00 00 sub rax, 152 ; 00000098H - 000a1 48 8b c8 mov rcx, rax - 000a4 ff 15 00 00 00 + 000b8 48 8b c8 mov rcx, rax + 000bb ff 15 00 00 00 00 call QWORD PTR __imp_??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ - 000aa 48 8d a5 c8 00 + 000c1 90 npad 1 + 000c2 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000b1 5f pop rdi - 000b2 5d pop rbp - 000b3 c3 ret 0 + 000c9 5f pop rdi + 000ca 5d pop rbp + 000cb c3 ret 0 ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ENDP ; std::basic_ofstream >::~basic_ofstream > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -12235,7 +13191,7 @@ this$ = 256 $initVBases$ = 264 ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ofstream >::basic_ofstream >, COMDAT -; 999 : basic_ofstream() : _Mybase(_STD addressof(_Filebuffer)) {} +; 998 : basic_ofstream() : _Mybase(_STD addressof(_Filebuffer)) {} $LN8: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx @@ -12245,81 +13201,87 @@ $LN8: 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 c7 85 c4 00 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002e c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR $T1[rbp], 0 - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0002d 83 bd 08 01 00 + 00038 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0003f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 83 bd 08 01 00 00 00 cmp DWORD PTR $initVBases$[rbp], 0 - 00034 74 37 je SHORT $LN2@basic_ofst - 00036 48 8b 85 00 01 + 0004b 74 37 je SHORT $LN2@basic_ofst + 0004d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d 0d 00 00 + 00054 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ - 00044 48 89 08 mov QWORD PTR [rax], rcx - 00047 48 8b 85 00 01 + 0005b 48 89 08 mov QWORD PTR [rax], rcx + 0005e 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 05 a8 00 00 + 00065 48 05 a8 00 00 00 add rax, 168 ; 000000a8H - 00054 48 8b c8 mov rcx, rax - 00057 ff 15 00 00 00 + 0006b 48 8b c8 mov rcx, rax + 0006e ff 15 00 00 00 00 call QWORD PTR __imp_??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ - 0005d 90 npad 1 - 0005e 8b 85 c4 00 00 + 00074 90 npad 1 + 00075 8b 85 c4 00 00 00 mov eax, DWORD PTR $T1[rbp] - 00064 83 c8 01 or eax, 1 - 00067 89 85 c4 00 00 + 0007b 83 c8 01 or eax, 1 + 0007e 89 85 c4 00 00 00 mov DWORD PTR $T1[rbp], eax $LN2@basic_ofst: - 0006d 48 8b 85 00 01 + 00084 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00074 48 83 c0 08 add rax, 8 - 00078 48 8b c8 mov rcx, rax - 0007b e8 00 00 00 00 call ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z ; std::addressof > > - 00080 45 33 c9 xor r9d, r9d - 00083 45 33 c0 xor r8d, r8d - 00086 48 8b d0 mov rdx, rax - 00089 48 8b 8d 00 01 + 0008b 48 83 c0 08 add rax, 8 + 0008f 48 8b c8 mov rcx, rax + 00092 e8 00 00 00 00 call ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z ; std::addressof > > + 00097 45 33 c9 xor r9d, r9d + 0009a 45 33 c0 xor r8d, r8d + 0009d 48 8b d0 mov rdx, rax + 000a0 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00090 ff 15 00 00 00 + 000a7 ff 15 00 00 00 00 call QWORD PTR __imp_??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z - 00096 90 npad 1 - 00097 48 8b 85 00 01 + 000ad 90 npad 1 + 000ae 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0009e 48 8b 00 mov rax, QWORD PTR [rax] - 000a1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000a5 48 8b 8d 00 01 + 000b5 48 8b 00 mov rax, QWORD PTR [rax] + 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000bc 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ac 48 8d 15 00 00 + 000c3 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ - 000b3 48 89 14 01 mov QWORD PTR [rcx+rax], rdx - 000b7 48 8b 85 00 01 + 000ca 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 000ce 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000be 48 8b 00 mov rax, QWORD PTR [rax] - 000c1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000c5 48 2d a8 00 00 + 000d5 48 8b 00 mov rax, QWORD PTR [rax] + 000d8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000dc 48 2d a8 00 00 00 sub rax, 168 ; 000000a8H - 000cb 48 8b 8d 00 01 + 000e2 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000d2 48 8b 09 mov rcx, QWORD PTR [rcx] - 000d5 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] - 000d9 48 8b 95 00 01 + 000e9 48 8b 09 mov rcx, QWORD PTR [rcx] + 000ec 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] + 000f0 48 8b 95 00 01 00 00 mov rdx, QWORD PTR this$[rbp] - 000e0 89 44 0a fc mov DWORD PTR [rdx+rcx-4], eax - 000e4 48 8b 85 00 01 + 000f7 89 44 0a fc mov DWORD PTR [rdx+rcx-4], eax + 000fb 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000eb 48 83 c0 08 add rax, 8 - 000ef 48 8b c8 mov rcx, rax - 000f2 e8 00 00 00 00 call ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_filebuf >::basic_filebuf > - 000f7 90 npad 1 - 000f8 48 8b 85 00 01 + 00102 48 83 c0 08 add rax, 8 + 00106 48 8b c8 mov rcx, rax + 00109 e8 00 00 00 00 call ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_filebuf >::basic_filebuf > + 0010e 90 npad 1 + 0010f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000ff 48 8d a5 e8 00 + 00116 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00106 5f pop rdi - 00107 5d pop rbp - 00108 c3 ret 0 + 0011d 5f pop rdi + 0011e 5d pop rbp + 0011f c3 ret 0 ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ofstream >::basic_ofstream > _TEXT ENDS ; COMDAT text$x @@ -12435,7 +13397,7 @@ $initVBases$ = 264 ?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?PutToFile@@YAXPEAXK@Z _TEXT SEGMENT fout$ = 16 @@ -12454,78 +13416,78 @@ $LN4: 0000b 48 81 ec 18 02 00 00 sub rsp, 536 ; 00000218H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 38 + 00017 48 8b fc mov rdi, rsp + 0001a b9 86 00 00 00 mov ecx, 134 ; 00000086H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] - 00030 48 8b 05 00 00 + 0002e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 e8 01 + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 e8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : std::ofstream fout; - 0004d ba 08 01 00 00 mov edx, 264 ; 00000108H - 00052 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] - 00056 e8 00 00 00 00 call ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z - 0005b ba 01 00 00 00 mov edx, 1 - 00060 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] - 00064 e8 00 00 00 00 call ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ofstream >::basic_ofstream > - 00069 90 npad 1 + 0004b ba 08 01 00 00 mov edx, 264 ; 00000108H + 00050 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00054 e8 00 00 00 00 call ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z + 00059 ba 01 00 00 00 mov edx, 1 + 0005e 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00062 e8 00 00 00 00 call ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ofstream >::basic_ofstream > + 00067 90 npad 1 ; 30 : // -; 31 : fout.open("C:\\Users\\James\\Desktop\\fantern\\Test.m", std::ios::binary | std::ios::out); +; 31 : //fout.open("C:\\Users\\James\\Desktop\\fantern\\Test.m", std::ios::binary | std::ios::out); +; 32 : fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); - 0006a 41 b9 40 00 00 + 00068 41 b9 40 00 00 00 mov r9d, 64 ; 00000040H - 00070 41 b8 22 00 00 + 0006e 41 b8 22 00 00 00 mov r8d, 34 ; 00000022H - 00076 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0CG@DEACEPBM@C?3?2Users?2James?2Desktop?2fantern?2@ - 0007d 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] - 00081 e8 00 00 00 00 call ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ; std::basic_ofstream >::open + 00074 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ + 0007b 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 0007f e8 00 00 00 00 call ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ; std::basic_ofstream >::open -; 32 : //fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); ; 33 : fout.write((PCHAR)Buffer, BufferSize); - 00086 8b 85 18 02 00 + 00084 8b 85 18 02 00 00 mov eax, DWORD PTR BufferSize$[rbp] - 0008c 44 8b c0 mov r8d, eax - 0008f 48 8b 95 10 02 + 0008a 44 8b c0 mov r8d, eax + 0008d 48 8b 95 10 02 00 00 mov rdx, QWORD PTR Buffer$[rbp] - 00096 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] - 0009a ff 15 00 00 00 + 00094 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z ; 34 : fout.close(); - 000a0 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] - 000a4 e8 00 00 00 00 call ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ; std::basic_ofstream >::close - 000a9 90 npad 1 + 0009e 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 000a2 e8 00 00 00 00 call ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ; std::basic_ofstream >::close + 000a7 90 npad 1 ; 35 : } - 000aa 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] - 000ae e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ - 000b3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b7 48 8d 15 00 00 + 000a8 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 000ac e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 000b1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?PutToFile@@YAXPEAXK@Z$rtcFrameData - 000be e8 00 00 00 00 call _RTC_CheckStackVars - 000c3 48 8b 8d e8 01 + 000bc e8 00 00 00 00 call _RTC_CheckStackVars + 000c1 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000ca 48 33 cd xor rcx, rbp - 000cd e8 00 00 00 00 call __security_check_cookie - 000d2 48 8d a5 f8 01 + 000c8 48 33 cd xor rcx, rbp + 000cb e8 00 00 00 00 call __security_check_cookie + 000d0 48 8d a5 f8 01 00 00 lea rsp, QWORD PTR [rbp+504] - 000d9 5f pop rdi - 000da 5d pop rbp - 000db c3 ret 0 + 000d7 5f pop rdi + 000d8 5d pop rbp + 000d9 c3 ret 0 ?PutToFile@@YAXPEAXK@Z ENDP ; PutToFile _TEXT ENDS ; COMDAT text$x @@ -12572,75 +13534,299 @@ BufferSize$ = 536 ?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA ENDP ; `PutToFile'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp -; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z +_TEXT SEGMENT +ExecBuffer$ = 8 +Buffer$ = 256 +BufferSize$ = 264 +?MakeExecutableBuffer@@YAPEAXPEAXK@Z PROC ; MakeExecutableBuffer, COMDAT + +; 20 : { + +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 21 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + + 0003a 8b 85 08 01 00 + 00 mov eax, DWORD PTR BufferSize$[rbp] + 00040 41 b9 40 00 00 + 00 mov r9d, 64 ; 00000040H + 00046 41 b8 00 10 00 + 00 mov r8d, 4096 ; 00001000H + 0004c 8b d0 mov edx, eax + 0004e 33 c9 xor ecx, ecx + 00050 ff 15 00 00 00 + 00 call QWORD PTR __imp_VirtualAlloc + 00056 48 89 45 08 mov QWORD PTR ExecBuffer$[rbp], rax + +; 22 : if (!ExecBuffer) + + 0005a 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 + 0005f 75 04 jne SHORT $LN2@MakeExecut + +; 23 : return NULL; + + 00061 33 c0 xor eax, eax + 00063 eb 19 jmp SHORT $LN1@MakeExecut +$LN2@MakeExecut: + +; 24 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); + + 00065 8b 85 08 01 00 + 00 mov eax, DWORD PTR BufferSize$[rbp] + 0006b 44 8b c0 mov r8d, eax + 0006e 48 8b 95 00 01 + 00 00 mov rdx, QWORD PTR Buffer$[rbp] + 00075 48 8b 4d 08 mov rcx, QWORD PTR ExecBuffer$[rbp] + 00079 e8 00 00 00 00 call memcpy +$LN1@MakeExecut: + +; 25 : } + + 0007e 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00085 5f pop rdi + 00086 5d pop rbp + 00087 c3 ret 0 +?MakeExecutableBuffer@@YAPEAXPEAXK@Z ENDP ; MakeExecutableBuffer +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT + +; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); +; 51 : +; 52 : _Ostr.fill(_Manip._Fill); + + 0003b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00049 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00050 48 03 c8 add rcx, rax + 00053 48 8b c1 mov rax, rcx + 00056 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 0005d 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 00064 0f b6 10 movzx edx, BYTE PTR [rax] + 00067 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv79[rbp] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z + +; 53 : return _Ostr; + + 00074 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 54 : } + + 0007b 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z +_TEXT SEGMENT +this$ = 224 +_Ch$ = 232 +??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT + +; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00041 0f b6 8d e8 00 + 00 00 movzx ecx, BYTE PTR _Ch$[rbp] + 00048 88 08 mov BYTE PTR [rax], cl + 0004a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00051 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 +??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z _TEXT SEGMENT -ExecBuffer$ = 8 -Buffer$ = 256 -BufferSize$ = 264 -?MakeExecutableBuffer@@YAPEAXPEAXK@Z PROC ; MakeExecutableBuffer, COMDAT +__$ReturnUdt$ = 224 +_Ch$ = 232 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT -; 20 : { +; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { -$LN4: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi - 0000b 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 21 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +; 35 : return _Fillobj<_Elem>(_Ch); - 00023 8b 85 08 01 00 - 00 mov eax, DWORD PTR BufferSize$[rbp] - 00029 41 b9 40 00 00 - 00 mov r9d, 64 ; 00000040H - 0002f 41 b8 00 10 00 - 00 mov r8d, 4096 ; 00001000H - 00035 8b d0 mov edx, eax - 00037 33 c9 xor ecx, ecx - 00039 ff 15 00 00 00 - 00 call QWORD PTR __imp_VirtualAlloc - 0003f 48 89 45 08 mov QWORD PTR ExecBuffer$[rbp], rax + 0003a 0f b6 95 e8 00 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 00041 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj + 0004d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 22 : if (!ExecBuffer) +; 36 : } - 00043 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 - 00048 75 04 jne SHORT $LN2@MakeExecut + 00054 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT -; 23 : return NULL; +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument - 0004a 33 c0 xor eax, eax - 0004c eb 19 jmp SHORT $LN1@MakeExecut -$LN2@MakeExecut: +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 24 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - 0004e 8b 85 08 01 00 - 00 mov eax, DWORD PTR BufferSize$[rbp] - 00054 44 8b c0 mov r8d, eax - 00057 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR Buffer$[rbp] - 0005e 48 8b 4d 08 mov rcx, QWORD PTR ExecBuffer$[rbp] - 00062 e8 00 00 00 00 call memcpy -$LN1@MakeExecut: + 0003b 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 0004c 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005a 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00061 48 03 c8 add rcx, rax + 00064 48 8b c1 mov rax, rcx + 00067 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Manip$[rbp] + 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] + 00072 48 8b c8 mov rcx, rax + 00075 ff 95 c0 00 00 + 00 call QWORD PTR tv79[rbp] -; 25 : } +; 425 : return _Ostr; - 00067 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0006e 5f pop rdi - 0006f 5d pop rbp - 00070 c3 ret 0 -?MakeExecutableBuffer@@YAPEAXPEAXK@Z ENDP ; MakeExecutableBuffer + 0007b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 426 : } + + 00082 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b c3 ret 0 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream ; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z _TEXT SEGMENT _State$ = 4 @@ -12676,7 +13862,7 @@ _Ostr$ = 592 _Ch$ = 600 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT -; 779 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream +; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream $LN23: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -12686,414 +13872,414 @@ $LN23: 0000b 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 78 + 00017 48 8b fc mov rdi, rsp + 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 78 02 00 00 mov rcx, QWORD PTR [rsp+632] - 00030 48 8b 05 00 00 + 0002e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 20 02 + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 780 : using _Elem = char; -; 781 : using _Myos = basic_ostream<_Elem, _Traits>; -; 782 : -; 783 : ios_base::iostate _State = ios_base::goodbit; +; 781 : using _Elem = char; +; 782 : using _Myos = basic_ostream<_Elem, _Traits>; +; 783 : +; 784 : ios_base::iostate _State = ios_base::goodbit; - 0004d c7 45 04 00 00 + 0004b c7 45 04 00 00 00 00 mov DWORD PTR _State$[rbp], 0 -; 784 : const typename _Myos::sentry _Ok(_Ostr); +; 785 : const typename _Myos::sentry _Ok(_Ostr); - 00054 48 8b 95 50 02 + 00052 48 8b 95 50 02 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 0005b 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0005f e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry - 00064 90 npad 1 - -; 785 : -; 786 : if (_Ok) { // state okay, insert - - 00065 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00069 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool - 0006e 0f b6 c0 movzx eax, al - 00071 85 c0 test eax, eax - 00073 0f 84 1d 03 00 + 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry + 00062 90 npad 1 + +; 786 : +; 787 : if (_Ok) { // state okay, insert + + 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool + 0006c 0f b6 c0 movzx eax, al + 0006f 85 c0 test eax, eax + 00071 0f 84 1d 03 00 00 je $LN8@operator -; 787 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; +; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - 00079 48 8b 85 50 02 + 00077 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00080 48 8b 00 mov rax, QWORD PTR [rax] - 00083 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00087 48 8b 8d 50 02 + 0007e 48 8b 00 mov rax, QWORD PTR [rax] + 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00085 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0008e 48 03 c8 add rcx, rax - 00091 48 8b c1 mov rax, rcx - 00094 48 8b c8 mov rcx, rax - 00097 ff 15 00 00 00 + 0008c 48 03 c8 add rcx, rax + 0008f 48 8b c1 mov rax, rcx + 00092 48 8b c8 mov rcx, rax + 00095 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 0009d 48 83 f8 01 cmp rax, 1 - 000a1 7f 0d jg SHORT $LN15@operator - 000a3 48 c7 85 08 02 + 0009b 48 83 f8 01 cmp rax, 1 + 0009f 7f 0d jg SHORT $LN15@operator + 000a1 48 c7 85 08 02 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 - 000ae eb 2e jmp SHORT $LN16@operator + 000ac eb 2e jmp SHORT $LN16@operator $LN15@operator: - 000b0 48 8b 85 50 02 + 000ae 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000b7 48 8b 00 mov rax, QWORD PTR [rax] - 000ba 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000be 48 8b 8d 50 02 + 000b5 48 8b 00 mov rax, QWORD PTR [rax] + 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000bc 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000c5 48 03 c8 add rcx, rax - 000c8 48 8b c1 mov rax, rcx - 000cb 48 8b c8 mov rcx, rax - 000ce ff 15 00 00 00 + 000c3 48 03 c8 add rcx, rax + 000c6 48 8b c1 mov rax, rcx + 000c9 48 8b c8 mov rcx, rax + 000cc ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 000d4 48 ff c8 dec rax - 000d7 48 89 85 08 02 + 000d2 48 ff c8 dec rax + 000d5 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax $LN16@operator: - 000de 48 8b 85 08 02 + 000dc 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv130[rbp] - 000e5 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -; 788 : -; 789 : _TRY_IO_BEGIN -; 790 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { +; 789 : +; 790 : _TRY_IO_BEGIN +; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - 000e9 48 8b 85 50 02 + 000e7 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000f0 48 8b 00 mov rax, QWORD PTR [rax] - 000f3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000f7 48 8b 8d 50 02 + 000ee 48 8b 00 mov rax, QWORD PTR [rax] + 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000f5 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000fe 48 03 c8 add rcx, rax - 00101 48 8b c1 mov rax, rcx - 00104 48 8b c8 mov rcx, rax - 00107 ff 15 00 00 00 + 000fc 48 03 c8 add rcx, rax + 000ff 48 8b c1 mov rax, rcx + 00102 48 8b c8 mov rcx, rax + 00105 ff 15 00 00 00 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ - 0010d 89 85 04 02 00 + 0010b 89 85 04 02 00 00 mov DWORD PTR tv65[rbp], eax - 00113 8b 85 04 02 00 + 00111 8b 85 04 02 00 00 mov eax, DWORD PTR tv65[rbp] - 00119 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011e 83 f8 40 cmp eax, 64 ; 00000040H - 00121 0f 84 eb 00 00 + 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H + 0011c 83 f8 40 cmp eax, 64 ; 00000040H + 0011f 0f 84 eb 00 00 00 je $LN10@operator -; 791 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left +; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left - 00127 eb 0b jmp SHORT $LN4@operator + 00125 eb 0b jmp SHORT $LN4@operator $LN2@operator: - 00129 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 0012d 48 ff c8 dec rax - 00130 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 0012b 48 ff c8 dec rax + 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN4@operator: - 00134 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00138 0f 85 d4 00 00 + 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00136 0f 85 d4 00 00 00 jne $LN10@operator - 0013e 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00143 0f 8e c9 00 00 + 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00141 0f 8e c9 00 00 00 jle $LN10@operator -; 792 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 00149 48 8b 85 50 02 + 00147 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00150 48 8b 00 mov rax, QWORD PTR [rax] - 00153 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00157 48 8b 8d 50 02 + 0014e 48 8b 00 mov rax, QWORD PTR [rax] + 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00155 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0015e 48 03 c8 add rcx, rax - 00161 48 8b c1 mov rax, rcx - 00164 48 8b c8 mov rcx, rax - 00167 ff 15 00 00 00 + 0015c 48 03 c8 add rcx, rax + 0015f 48 8b c1 mov rax, rcx + 00162 48 8b c8 mov rcx, rax + 00165 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0016d 48 89 85 08 02 + 0016b 48 89 85 08 02 00 00 mov QWORD PTR tv300[rbp], rax - 00174 48 8b 85 08 02 + 00172 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv300[rbp] - 0017b 48 89 85 10 02 + 00179 48 89 85 10 02 00 00 mov QWORD PTR tv179[rbp], rax - 00182 48 8b 85 50 02 + 00180 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00189 48 8b 00 mov rax, QWORD PTR [rax] - 0018c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00190 48 8b 8d 50 02 + 00187 48 8b 00 mov rax, QWORD PTR [rax] + 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0018e 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 8b c8 mov rcx, rax - 001a0 ff 15 00 00 00 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 8b c8 mov rcx, rax + 0019e ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 001a6 88 85 18 02 00 + 001a4 88 85 18 02 00 00 mov BYTE PTR tv301[rbp], al - 001ac 0f b6 85 18 02 + 001aa 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b3 88 85 19 02 00 + 001b1 88 85 19 02 00 00 mov BYTE PTR tv177[rbp], al - 001b9 0f b6 95 19 02 + 001b7 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv177[rbp] - 001c0 48 8b 8d 10 02 + 001be 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c7 ff 15 00 00 00 + 001c5 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cd 89 85 1c 02 00 + 001cb 89 85 1c 02 00 00 mov DWORD PTR tv302[rbp], eax - 001d3 8b 85 1c 02 00 + 001d1 8b 85 1c 02 00 00 mov eax, DWORD PTR tv302[rbp] - 001d9 89 85 34 01 00 + 001d7 89 85 34 01 00 00 mov DWORD PTR $T5[rbp], eax - 001df e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 001e4 89 85 54 01 00 + 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001e2 89 85 54 01 00 00 mov DWORD PTR $T6[rbp], eax - 001ea 48 8d 95 34 01 + 001e8 48 8d 95 34 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 001f1 48 8d 8d 54 01 + 001ef 48 8d 8d 54 01 00 00 lea rcx, QWORD PTR $T6[rbp] - 001f8 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 001fd 0f b6 c0 movzx eax, al - 00200 85 c0 test eax, eax - 00202 74 09 je SHORT $LN11@operator + 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 001fb 0f b6 c0 movzx eax, al + 001fe 85 c0 test eax, eax + 00200 74 09 je SHORT $LN11@operator -; 793 : _State |= ios_base::badbit; +; 794 : _State |= ios_base::badbit; - 00204 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00207 83 c8 04 or eax, 4 - 0020a 89 45 04 mov DWORD PTR _State$[rbp], eax + 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00205 83 c8 04 or eax, 4 + 00208 89 45 04 mov DWORD PTR _State$[rbp], eax $LN11@operator: -; 794 : } -; 795 : } +; 795 : } +; 796 : } - 0020d e9 17 ff ff ff jmp $LN2@operator + 0020b e9 17 ff ff ff jmp $LN2@operator $LN10@operator: -; 796 : } -; 797 : -; 798 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { +; 797 : } +; 798 : +; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { - 00212 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00216 0f 85 8d 00 00 + 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00214 0f 85 8d 00 00 00 jne $LN12@operator - 0021c 48 8b 85 50 02 + 0021a 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00223 48 8b 00 mov rax, QWORD PTR [rax] - 00226 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0022a 48 8b 8d 50 02 + 00221 48 8b 00 mov rax, QWORD PTR [rax] + 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00228 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00231 48 03 c8 add rcx, rax - 00234 48 8b c1 mov rax, rcx - 00237 48 8b c8 mov rcx, rax - 0023a ff 15 00 00 00 + 0022f 48 03 c8 add rcx, rax + 00232 48 8b c1 mov rax, rcx + 00235 48 8b c8 mov rcx, rax + 00238 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00240 48 89 85 08 02 + 0023e 48 89 85 08 02 00 00 mov QWORD PTR tv303[rbp], rax - 00247 48 8b 85 08 02 + 00245 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv303[rbp] - 0024e 48 89 85 10 02 + 0024c 48 89 85 10 02 00 00 mov QWORD PTR tv204[rbp], rax - 00255 0f b6 95 58 02 + 00253 0f b6 95 58 02 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025c 48 8b 8d 10 02 + 0025a 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv204[rbp] - 00263 ff 15 00 00 00 + 00261 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00269 89 85 18 02 00 + 00267 89 85 18 02 00 00 mov DWORD PTR tv304[rbp], eax - 0026f 8b 85 18 02 00 + 0026d 8b 85 18 02 00 00 mov eax, DWORD PTR tv304[rbp] - 00275 89 85 74 01 00 + 00273 89 85 74 01 00 00 mov DWORD PTR $T7[rbp], eax - 0027b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00280 89 85 94 01 00 + 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0027e 89 85 94 01 00 00 mov DWORD PTR $T8[rbp], eax - 00286 48 8d 95 74 01 + 00284 48 8d 95 74 01 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028d 48 8d 8d 94 01 + 0028b 48 8d 8d 94 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 00294 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00299 0f b6 c0 movzx eax, al - 0029c 85 c0 test eax, eax - 0029e 74 09 je SHORT $LN12@operator + 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00297 0f b6 c0 movzx eax, al + 0029a 85 c0 test eax, eax + 0029c 74 09 je SHORT $LN12@operator -; 799 : _State |= ios_base::badbit; +; 800 : _State |= ios_base::badbit; - 002a0 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 002a3 83 c8 04 or eax, 4 - 002a6 89 45 04 mov DWORD PTR _State$[rbp], eax + 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 002a1 83 c8 04 or eax, 4 + 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax $LN12@operator: -; 800 : } -; 801 : -; 802 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right +; 801 : } +; 802 : +; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right - 002a9 eb 0b jmp SHORT $LN7@operator + 002a7 eb 0b jmp SHORT $LN7@operator $LN5@operator: - 002ab 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 002af 48 ff c8 dec rax - 002b2 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 002ad 48 ff c8 dec rax + 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN7@operator: - 002b6 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002ba 0f 85 d4 00 00 + 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002b8 0f 85 d4 00 00 00 jne $LN6@operator - 002c0 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c5 0f 8e c9 00 00 + 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c3 0f 8e c9 00 00 00 jle $LN6@operator -; 803 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 002cb 48 8b 85 50 02 + 002c9 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 002d2 48 8b 00 mov rax, QWORD PTR [rax] - 002d5 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 002d9 48 8b 8d 50 02 + 002d0 48 8b 00 mov rax, QWORD PTR [rax] + 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 002d7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 002e0 48 03 c8 add rcx, rax - 002e3 48 8b c1 mov rax, rcx - 002e6 48 8b c8 mov rcx, rax - 002e9 ff 15 00 00 00 + 002de 48 03 c8 add rcx, rax + 002e1 48 8b c1 mov rax, rcx + 002e4 48 8b c8 mov rcx, rax + 002e7 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 002ef 48 89 85 08 02 + 002ed 48 89 85 08 02 00 00 mov QWORD PTR tv305[rbp], rax - 002f6 48 8b 85 08 02 + 002f4 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv305[rbp] - 002fd 48 89 85 10 02 + 002fb 48 89 85 10 02 00 00 mov QWORD PTR tv245[rbp], rax - 00304 48 8b 85 50 02 + 00302 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0030b 48 8b 00 mov rax, QWORD PTR [rax] - 0030e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00312 48 8b 8d 50 02 + 00309 48 8b 00 mov rax, QWORD PTR [rax] + 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00310 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00319 48 03 c8 add rcx, rax - 0031c 48 8b c1 mov rax, rcx - 0031f 48 8b c8 mov rcx, rax - 00322 ff 15 00 00 00 + 00317 48 03 c8 add rcx, rax + 0031a 48 8b c1 mov rax, rcx + 0031d 48 8b c8 mov rcx, rax + 00320 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 00328 88 85 18 02 00 + 00326 88 85 18 02 00 00 mov BYTE PTR tv306[rbp], al - 0032e 0f b6 85 18 02 + 0032c 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv306[rbp] - 00335 88 85 19 02 00 + 00333 88 85 19 02 00 00 mov BYTE PTR tv243[rbp], al - 0033b 0f b6 95 19 02 + 00339 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv243[rbp] - 00342 48 8b 8d 10 02 + 00340 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv245[rbp] - 00349 ff 15 00 00 00 + 00347 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034f 89 85 1c 02 00 + 0034d 89 85 1c 02 00 00 mov DWORD PTR tv307[rbp], eax - 00355 8b 85 1c 02 00 + 00353 8b 85 1c 02 00 00 mov eax, DWORD PTR tv307[rbp] - 0035b 89 85 b4 01 00 + 00359 89 85 b4 01 00 00 mov DWORD PTR $T9[rbp], eax - 00361 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00366 89 85 d4 01 00 + 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00364 89 85 d4 01 00 00 mov DWORD PTR $T10[rbp], eax - 0036c 48 8d 95 b4 01 + 0036a 48 8d 95 b4 01 00 00 lea rdx, QWORD PTR $T9[rbp] - 00373 48 8d 8d d4 01 + 00371 48 8d 8d d4 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 0037a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0037f 0f b6 c0 movzx eax, al - 00382 85 c0 test eax, eax - 00384 74 09 je SHORT $LN13@operator + 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0037d 0f b6 c0 movzx eax, al + 00380 85 c0 test eax, eax + 00382 74 09 je SHORT $LN13@operator -; 804 : _State |= ios_base::badbit; +; 805 : _State |= ios_base::badbit; - 00386 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00389 83 c8 04 or eax, 4 - 0038c 89 45 04 mov DWORD PTR _State$[rbp], eax + 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00387 83 c8 04 or eax, 4 + 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax $LN13@operator: -; 805 : } -; 806 : } +; 806 : } +; 807 : } - 0038f e9 17 ff ff ff jmp $LN5@operator + 0038d e9 17 ff ff ff jmp $LN5@operator $LN6@operator: - 00394 eb 00 jmp SHORT $LN8@operator + 00392 eb 00 jmp SHORT $LN8@operator $LN21@operator: $LN8@operator: -; 807 : _CATCH_IO_(ios_base, _Ostr) -; 808 : } -; 809 : -; 810 : _Ostr.width(0); +; 808 : _CATCH_IO_(ios_base, _Ostr) +; 809 : } +; 810 : +; 811 : _Ostr.width(0); - 00396 48 8b 85 50 02 + 00394 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0039d 48 8b 00 mov rax, QWORD PTR [rax] - 003a0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003a4 48 8b 8d 50 02 + 0039b 48 8b 00 mov rax, QWORD PTR [rax] + 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003a2 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003ab 48 03 c8 add rcx, rax - 003ae 48 8b c1 mov rax, rcx - 003b1 48 89 85 08 02 + 003a9 48 03 c8 add rcx, rax + 003ac 48 8b c1 mov rax, rcx + 003af 48 89 85 08 02 00 00 mov QWORD PTR tv281[rbp], rax - 003b8 33 d2 xor edx, edx - 003ba 48 8b 8d 08 02 + 003b6 33 d2 xor edx, edx + 003b8 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv281[rbp] - 003c1 ff 15 00 00 00 + 003bf ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z -; 811 : _Ostr.setstate(_State); +; 812 : _Ostr.setstate(_State); - 003c7 48 8b 85 50 02 + 003c5 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 003ce 48 8b 00 mov rax, QWORD PTR [rax] - 003d1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003d5 48 8b 8d 50 02 + 003cc 48 8b 00 mov rax, QWORD PTR [rax] + 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003d3 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003dc 48 03 c8 add rcx, rax - 003df 48 8b c1 mov rax, rcx - 003e2 48 89 85 08 02 + 003da 48 03 c8 add rcx, rax + 003dd 48 8b c1 mov rax, rcx + 003e0 48 89 85 08 02 00 00 mov QWORD PTR tv295[rbp], rax - 003e9 45 33 c0 xor r8d, r8d - 003ec 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ef 48 8b 8d 08 02 + 003e7 45 33 c0 xor r8d, r8d + 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] + 003ed 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv295[rbp] - 003f6 ff 15 00 00 00 + 003f4 ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 812 : return _Ostr; +; 813 : return _Ostr; - 003fc 48 8b 85 50 02 + 003fa 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00403 48 89 85 f8 01 + 00401 48 89 85 f8 01 00 00 mov QWORD PTR $T11[rbp], rax - 0040a 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0040e e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 00413 48 8b 85 f8 01 + 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00411 48 8b 85 f8 01 00 00 mov rax, QWORD PTR $T11[rbp] -; 813 : } +; 814 : } - 0041a 48 8b f8 mov rdi, rax - 0041d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00421 48 8d 15 00 00 + 00418 48 8b f8 mov rdi, rax + 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0041f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData - 00428 e8 00 00 00 00 call _RTC_CheckStackVars - 0042d 48 8b c7 mov rax, rdi - 00430 48 8b 8d 20 02 + 00426 e8 00 00 00 00 call _RTC_CheckStackVars + 0042b 48 8b c7 mov rax, rdi + 0042e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00437 48 33 cd xor rcx, rbp - 0043a e8 00 00 00 00 call __security_check_cookie - 0043f 48 8d a5 38 02 + 00435 48 33 cd xor rcx, rbp + 00438 e8 00 00 00 00 call __security_check_cookie + 0043d 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 00446 5f pop rdi - 00447 5d pop rbp - 00448 c3 ret 0 + 00444 5f pop rdi + 00445 5d pop rbp + 00446 c3 ret 0 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > _TEXT ENDS ; COMDAT text$x @@ -13179,7 +14365,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 807 : _CATCH_IO_(ios_base, _Ostr) +; 808 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -13299,237 +14485,43 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 807 : _CATCH_IO_(ios_base, _Ostr) +; 808 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] -__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: - 00014 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0001b 48 8b 00 mov rax, QWORD PTR [rax] - 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00029 48 03 c8 add rcx, rax - 0002c 48 8b c1 mov rax, rcx - 0002f 48 89 85 08 02 - 00 00 mov QWORD PTR tv266[rbp], rax - 00036 41 b0 01 mov r8b, 1 - 00039 ba 04 00 00 00 mov edx, 4 - 0003e 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv266[rbp] - 00045 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z - 0004b 90 npad 1 - 0004c 48 8d 05 00 00 - 00 00 lea rax, $LN21@catch$1 - 00053 48 83 c4 28 add rsp, 40 ; 00000028H - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 - 0005a cc int 3 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z -_TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT - -; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); -; 51 : -; 52 : _Ostr.fill(_Manip._Fill); - - 00024 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00032 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00039 48 03 c8 add rcx, rax - 0003c 48 8b c1 mov rax, rcx - 0003f 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 00046 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 0004d 0f b6 10 movzx edx, BYTE PTR [rax] - 00050 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv79[rbp] - 00057 ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z - -; 53 : return _Ostr; - - 0005d 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 54 : } - - 00064 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0006b 5f pop rdi - 0006c 5d pop rbp - 0006d c3 ret 0 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z -_TEXT SEGMENT -this$ = 224 -_Ch$ = 232 -??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT - -; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} - -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002a 0f b6 8d e8 00 - 00 00 movzx ecx, BYTE PTR _Ch$[rbp] - 00031 88 08 mov BYTE PTR [rax], cl - 00033 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003a 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 -??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z -_TEXT SEGMENT -__$ReturnUdt$ = 224 -_Ch$ = 232 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT - -; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { - -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 35 : return _Fillobj<_Elem>(_Ch); - - 00023 0f b6 95 e8 00 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0002a 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00031 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - -; 36 : } - - 0003d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z -_TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT - -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - - 00024 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 00035 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0003c 48 8b 00 mov rax, QWORD PTR [rax] - 0003f 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00043 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0004a 48 03 c8 add rcx, rax - 0004d 48 8b c1 mov rax, rcx - 00050 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Manip$[rbp] - 00057 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] - 0005b 48 8b c8 mov rcx, rax - 0005e ff 95 c0 00 00 - 00 call QWORD PTR tv79[rbp] - -; 425 : return _Ostr; - - 00064 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 426 : } - - 0006b 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> -_TEXT ENDS + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: + 00014 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0001b 48 8b 00 mov rax, QWORD PTR [rax] + 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00029 48 03 c8 add rcx, rax + 0002c 48 8b c1 mov rax, rcx + 0002f 48 89 85 08 02 + 00 00 mov QWORD PTR tv266[rbp], rax + 00036 41 b0 01 mov r8b, 1 + 00039 ba 04 00 00 00 mov edx, 4 + 0003e 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv266[rbp] + 00045 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z + 0004b 90 npad 1 + 0004c 48 8d 05 00 00 + 00 00 lea rax, $LN21@catch$1 + 00053 48 83 c4 28 add rsp, 40 ; 00000028H + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 + 0005a cc int 3 +?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?PrintByteArr@@YAXPEAXK@Z _TEXT SEGMENT i$1 = 4 @@ -13555,91 +14547,97 @@ $LN6: 0000b 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 62 00 00 00 mov ecx, 98 ; 00000062H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 a8 + 01 00 00 mov rcx, QWORD PTR [rsp+424] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : for (uint32_t i = 0; i < BufSize; i++) - 00023 c7 45 04 00 00 + 0003a c7 45 04 00 00 00 00 mov DWORD PTR i$1[rbp], 0 - 0002a eb 08 jmp SHORT $LN4@PrintByteA + 00041 eb 08 jmp SHORT $LN4@PrintByteA $LN2@PrintByteA: - 0002c 8b 45 04 mov eax, DWORD PTR i$1[rbp] - 0002f ff c0 inc eax - 00031 89 45 04 mov DWORD PTR i$1[rbp], eax + 00043 8b 45 04 mov eax, DWORD PTR i$1[rbp] + 00046 ff c0 inc eax + 00048 89 45 04 mov DWORD PTR i$1[rbp], eax $LN4@PrintByteA: - 00034 8b 85 88 01 00 + 0004b 8b 85 88 01 00 00 mov eax, DWORD PTR BufSize$[rbp] - 0003a 39 45 04 cmp DWORD PTR i$1[rbp], eax - 0003d 0f 83 b2 00 00 + 00051 39 45 04 cmp DWORD PTR i$1[rbp], eax + 00054 0f 83 b2 00 00 00 jae $LN3@PrintByteA ; 14 : { ; 15 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)((PUCHAR)Buff)[i] << ' '; - 00043 48 8d 15 00 00 + 0005a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 0004a 48 8b 0d 00 00 + 00061 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 00051 ff 15 00 00 00 + 00068 ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z - 00057 48 89 85 28 01 + 0006e 48 89 85 28 01 00 00 mov QWORD PTR tv83[rbp], rax - 0005e ba 02 00 00 00 mov edx, 2 - 00063 48 8d 8d 08 01 + 00075 ba 02 00 00 00 mov edx, 2 + 0007a 48 8d 8d 08 01 00 00 lea rcx, QWORD PTR $T3[rbp] - 0006a e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 0006f 48 89 85 30 01 + 00081 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 00086 48 89 85 30 01 00 00 mov QWORD PTR tv85[rbp], rax - 00076 48 8b 95 30 01 + 0008d 48 8b 95 30 01 00 00 mov rdx, QWORD PTR tv85[rbp] - 0007d 48 8b 8d 28 01 + 00094 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR tv83[rbp] - 00084 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> - 00089 48 89 85 38 01 + 0009b e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> + 000a0 48 89 85 38 01 00 00 mov QWORD PTR tv88[rbp], rax - 00090 b2 30 mov dl, 48 ; 00000030H - 00092 48 8d 8d e4 00 + 000a7 b2 30 mov dl, 48 ; 00000030H + 000a9 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 00099 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill - 0009e 48 89 85 40 01 + 000b0 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill + 000b5 48 89 85 40 01 00 00 mov QWORD PTR tv90[rbp], rax - 000a5 48 8b 95 40 01 + 000bc 48 8b 95 40 01 00 00 mov rdx, QWORD PTR tv90[rbp] - 000ac 48 8b 8d 38 01 + 000c3 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv88[rbp] - 000b3 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> - 000b8 48 89 85 48 01 + 000ca e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> + 000cf 48 89 85 48 01 00 00 mov QWORD PTR tv133[rbp], rax - 000bf 8b 45 04 mov eax, DWORD PTR i$1[rbp] - 000c2 48 8b 8d 80 01 + 000d6 8b 45 04 mov eax, DWORD PTR i$1[rbp] + 000d9 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Buff$[rbp] - 000c9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 000cd 89 85 50 01 00 + 000e0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 000e4 89 85 50 01 00 00 mov DWORD PTR tv131[rbp], eax - 000d3 8b 95 50 01 00 + 000ea 8b 95 50 01 00 00 mov edx, DWORD PTR tv131[rbp] - 000d9 48 8b 8d 48 01 + 000f0 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR tv133[rbp] - 000e0 ff 15 00 00 00 + 000f7 ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 000e6 b2 20 mov dl, 32 ; 00000020H - 000e8 48 8b c8 mov rcx, rax - 000eb e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > + 000fd b2 20 mov dl, 32 ; 00000020H + 000ff 48 8b c8 mov rcx, rax + 00102 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > ; 16 : } - 000f0 e9 37 ff ff ff jmp $LN2@PrintByteA + 00107 e9 37 ff ff ff jmp $LN2@PrintByteA $LN3@PrintByteA: ; 17 : } - 000f5 48 8d a5 68 01 + 0010c 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 000fc 5f pop rdi - 000fd 5d pop rbp - 000fe c3 ret 0 + 00113 5f pop rdi + 00114 5d pop rbp + 00115 c3 ret 0 ?PrintByteArr@@YAXPEAXK@Z ENDP ; PrintByteArr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -13654,26 +14652,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0001a 48 83 c0 10 add rax, 16 - 0001e 48 8b c8 mov rcx, rax - 00021 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > - 00026 48 8d a5 c8 00 + 00031 48 83 c0 10 add rax, 16 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13682,32 +14686,38 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; -; 1378 : return *this; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1379 : } +; 1345 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { +; 1731 : _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13716,28 +14726,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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(); -; 1818 : return _Mypair._Get_first(); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 -; 1819 : } +; 1733 : } - 0002e 48 8d a5 c8 00 + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -13750,7 +14767,7 @@ tv86 = 328 this$ = 368 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage +; 1685 : void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13759,117 +14776,123 @@ $LN4: 00007 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1756 : auto& _My_data = _Mypair._Myval2; - - 0001f 48 8b 85 70 01 + 00013 48 8b fc mov rdi, rsp + 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1686 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1757 : pointer& _Myfirst = _My_data._Myfirst; +; 1687 : pointer& _Myfirst = _My_data._Myfirst; - 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0002e 48 83 c0 08 add rax, 8 - 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1758 : pointer& _Mylast = _My_data._Mylast; +; 1688 : pointer& _Mylast = _My_data._Mylast; - 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0003a 48 83 c0 10 add rax, 16 - 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00051 48 83 c0 10 add rax, 16 + 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1759 : pointer& _Myend = _My_data._Myend; +; 1689 : pointer& _Myend = _My_data._Myend; - 00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00046 48 83 c0 18 add rax, 24 - 0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005d 48 83 c0 18 add rax, 24 + 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1760 : -; 1761 : _My_data._Orphan_all(); +; 1690 : +; 1691 : _My_data._Orphan_all(); - 0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1762 : -; 1763 : if (_Myfirst) { // destroy and deallocate old array +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array - 00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0005b 48 83 38 00 cmp QWORD PTR [rax], 0 - 0005f 0f 84 92 00 00 + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 00 je $LN2@Tidy -; 1764 : _Destroy(_Myfirst, _Mylast); +; 1694 : _Destroy(_Myfirst, _Mylast); - 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00069 4c 8b 00 mov r8, QWORD PTR [rax] - 0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00070 48 8b 10 mov rdx, QWORD PTR [rax] - 00073 48 8b 8d 70 01 + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0007f 48 8b 8d 70 01 + 00096 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0008b 48 89 85 38 01 + 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000a2 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0009d 48 8b 00 mov rax, QWORD PTR [rax] - 000a0 48 2b c1 sub rax, rcx - 000a3 48 c1 f8 02 sar rax, 2 - 000a7 48 89 85 40 01 + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 02 sar rax, 2 + 000be 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000b2 48 8b 00 mov rax, QWORD PTR [rax] - 000b5 48 89 85 48 01 + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000bc 4c 8b 85 40 01 + 000d3 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000c3 48 8b 95 48 01 + 000da 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000ca 48 8b 8d 38 01 + 000e1 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1766 : -; 1767 : _Myfirst = nullptr; +; 1696 : +; 1697 : _Myfirst = pointer(); - 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000da 48 c7 00 00 00 + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1768 : _Mylast = nullptr; +; 1698 : _Mylast = pointer(); - 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000e5 48 c7 00 00 00 + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1769 : _Myend = nullptr; +; 1699 : _Myend = pointer(); - 000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000f0 48 c7 00 00 00 + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN2@Tidy: -; 1770 : } -; 1771 : } +; 1700 : } +; 1701 : } - 000f7 48 8d a5 58 01 + 0010e 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 000fe 5f pop rdi - 000ff 5d pop rbp - 00100 c3 ret 0 + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -13877,7 +14900,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -13888,34 +14911,39 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1679 : // destroy [_First, _Last) using allocator -; 1680 : _Destroy_range(_First, _Last, _Getal()); +; 1612 : _Destroy_range(_First, _Last, _Getal()); - 00029 48 8b 8d e0 00 + 00040 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00035 4c 8b c0 mov r8, rax - 00038 48 8b 95 f0 00 + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d e8 00 + 00056 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1681 : } +; 1613 : } - 0004b 48 8d a5 c8 00 + 00062 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -13925,7 +14953,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { +; 672 : ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13934,74 +14962,75 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 1a 00 00 00 mov ecx, 26 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 68 + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 18 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 712 : _Tidy(); +; 673 : _Tidy(); - 00049 48 8b 8d 40 01 + 00047 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00055 48 8b 8d 40 01 + 00053 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00061 48 8b d0 mov rdx, rax - 00064 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] - 00068 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] - 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00075 48 c7 85 04 01 + 00073 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 00080 48 8b 85 40 01 + 0007e 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00087 48 8d 95 04 01 + 00085 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008e 48 8b c8 mov rcx, rax - 00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00096 48 8b d0 mov rdx, rax - 00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 717 : } +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } - 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a6 48 8d 15 00 00 + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData - 000ad e8 00 00 00 00 call _RTC_CheckStackVars - 000b2 48 8b 8d 18 01 + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b9 48 33 cd xor rcx, rbp - 000bc e8 00 00 00 00 call __security_check_cookie - 000c1 48 8d a5 28 01 + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c8 5f pop rdi - 000c9 5d pop rbp - 000ca c3 ret 0 + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -14009,7 +15038,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14020,32 +15049,38 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 834 : // no overflow check on the following multiply; we assume _Allocate did that check -; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Count$[rbp] - 00030 48 c1 e0 02 shl rax, 2 - 00034 48 8b d0 mov rdx, rax - 00037 48 8b 8d e8 00 + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 836 : } +; 804 : } - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -14056,7 +15091,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14068,141 +15103,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -14213,7 +15254,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14225,141 +15266,188 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\time.h +; COMDAT time +_TEXT SEGMENT +_Time$ = 224 +time PROC ; COMDAT + +; 521 : { + + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A0B61CF9_time@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 522 : return _time64(_Time); + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Time$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp__time64 + +; 523 : } + + 00043 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 +time ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z _TEXT SEGMENT tv69 = 192 @@ -14377,43 +15465,49 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 130 : return _CSTD ungetc(static_cast(_Byte), _File) != EOF; - 00024 48 8b 85 f0 00 + 0003b 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Byte$[rbp] - 0002b 0f b6 00 movzx eax, BYTE PTR [rax] - 0002e 48 8b 95 f8 00 + 00042 0f b6 00 movzx eax, BYTE PTR [rax] + 00045 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _File$[rbp] - 00035 8b c8 mov ecx, eax - 00037 ff 15 00 00 00 + 0004c 8b c8 mov ecx, eax + 0004e ff 15 00 00 00 00 call QWORD PTR __imp_ungetc - 0003d 83 f8 ff cmp eax, -1 - 00040 74 0c je SHORT $LN3@Ungetc - 00042 c7 85 c0 00 00 + 00054 83 f8 ff cmp eax, -1 + 00057 74 0c je SHORT $LN3@Ungetc + 00059 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 0004c eb 0a jmp SHORT $LN4@Ungetc + 00063 eb 0a jmp SHORT $LN4@Ungetc $LN3@Ungetc: - 0004e c7 85 c0 00 00 + 00065 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@Ungetc: - 00058 0f b6 85 c0 00 + 0006f 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] ; 131 : } - 0005f 48 8d a5 d8 00 + 00076 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f c3 ret 0 ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ENDP ; std::_Ungetc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z _TEXT SEGMENT tv69 = 192 @@ -14431,42 +15525,48 @@ $LN5: 0000b 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 0f b6 8c 24 18 + 01 00 00 movzx ecx, BYTE PTR [rsp+280] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 107 : return _CSTD fputc(_Byte, _File) != EOF; - 00023 0f be 85 f0 00 + 0003a 0f be 85 f0 00 00 00 movsx eax, BYTE PTR _Byte$[rbp] - 0002a 48 8b 95 f8 00 + 00041 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _File$[rbp] - 00031 8b c8 mov ecx, eax - 00033 ff 15 00 00 00 + 00048 8b c8 mov ecx, eax + 0004a ff 15 00 00 00 00 call QWORD PTR __imp_fputc - 00039 83 f8 ff cmp eax, -1 - 0003c 74 0c je SHORT $LN3@Fputc - 0003e c7 85 c0 00 00 + 00050 83 f8 ff cmp eax, -1 + 00053 74 0c je SHORT $LN3@Fputc + 00055 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00048 eb 0a jmp SHORT $LN4@Fputc + 0005f eb 0a jmp SHORT $LN4@Fputc $LN3@Fputc: - 0004a c7 85 c0 00 00 + 00061 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@Fputc: - 00054 0f b6 85 c0 00 + 0006b 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] ; 108 : } - 0005b 48 8d a5 d8 00 + 00072 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b c3 ret 0 ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ENDP ; std::_Fputc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\fstream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\fstream ; COMDAT ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z _TEXT SEGMENT _Meta$ = 4 @@ -14484,56 +15584,62 @@ $LN5: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F05DDCE0_fstream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 66 : int _Meta; ; 67 : if ((_Meta = _CSTD fgetc(_File)) == EOF) { - 00024 48 8b 8d 08 01 + 0003b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _File$[rbp] - 0002b ff 15 00 00 00 + 00042 ff 15 00 00 00 00 call QWORD PTR __imp_fgetc - 00031 89 45 04 mov DWORD PTR _Meta$[rbp], eax - 00034 83 7d 04 ff cmp DWORD PTR _Meta$[rbp], -1 - 00038 75 06 jne SHORT $LN2@Fgetc + 00048 89 45 04 mov DWORD PTR _Meta$[rbp], eax + 0004b 83 7d 04 ff cmp DWORD PTR _Meta$[rbp], -1 + 0004f 75 06 jne SHORT $LN2@Fgetc ; 68 : return false; - 0003a 32 c0 xor al, al - 0003c eb 11 jmp SHORT $LN1@Fgetc + 00051 32 c0 xor al, al + 00053 eb 11 jmp SHORT $LN1@Fgetc ; 69 : } else { // got one, convert to char - 0003e eb 0f jmp SHORT $LN3@Fgetc + 00055 eb 0f jmp SHORT $LN3@Fgetc $LN2@Fgetc: ; 70 : _Byte = static_cast(_Meta); - 00040 48 8b 85 00 01 + 00057 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Byte$[rbp] - 00047 0f b6 4d 04 movzx ecx, BYTE PTR _Meta$[rbp] - 0004b 88 08 mov BYTE PTR [rax], cl + 0005e 0f b6 4d 04 movzx ecx, BYTE PTR _Meta$[rbp] + 00062 88 08 mov BYTE PTR [rax], cl ; 71 : return true; - 0004d b0 01 mov al, 1 + 00064 b0 01 mov al, 1 $LN3@Fgetc: $LN1@Fgetc: ; 72 : } ; 73 : } - 0004f 48 8d a5 e8 00 + 00066 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0006d 5f pop rdi + 0006e 5d pop rbp + 0006f c3 ret 0 ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ENDP ; std::_Fgetc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ios +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ios ; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z _TEXT SEGMENT _Iosbase$ = 224 @@ -14548,36 +15654,42 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FD1AE8DD_ios - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); - 0001f 41 b8 00 0e 00 + 00036 41 b8 00 0e 00 00 mov r8d, 3584 ; 00000e00H - 00025 ba 00 08 00 00 mov edx, 2048 ; 00000800H - 0002a 48 8b 8d e0 00 + 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H + 00041 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00031 ff 15 00 00 00 + 00048 ff 15 00 00 00 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z ; 208 : return _Iosbase; - 00037 48 8b 85 e0 00 + 0004e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Iosbase$[rbp] ; 209 : } - 0003e 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -14588,7 +15700,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14599,98 +15711,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00029 48 8b 8d 40 01 + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -14707,73 +15825,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iosfwd ; COMDAT ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ _TEXT SEGMENT this$ = 224 @@ -14788,32 +15912,38 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 68 : // TRANSITION, ABI: We currently always set _Fpos to 0 but older .objs containing old ; 69 : // basic_filebuf would set _Fpos. ; 70 : return _Myoff + _Fpos; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 8b 8d e0 00 + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 48 03 41 08 add rax, QWORD PTR [rcx+8] + 00047 48 03 41 08 add rax, QWORD PTR [rcx+8] ; 71 : } - 00034 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ENDP ; std::fpos<_Mbstatet>::operator __int64 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iosfwd ; COMDAT ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ _TEXT SEGMENT this$ = 224 @@ -14830,32 +15960,38 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 60 : return _Mystate; - 00024 48 8b 85 e0 00 + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 0002f 48 8b 8d e8 00 + 00042 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00046 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00036 48 89 01 mov QWORD PTR [rcx], rax - 00039 48 8b 85 e8 00 + 0004d 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 8b 85 e8 00 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] ; 61 : } - 00040 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ENDP ; std::fpos<_Mbstatet>::state _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iosfwd ; COMDAT ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z _TEXT SEGMENT this$ = 224 @@ -14874,34 +16010,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 85 e0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8b 8d f0 00 + 00047 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _Fileposition$[rbp] - 00037 48 89 08 mov QWORD PTR [rax], rcx - 0003a 48 8b 85 e0 00 + 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00041 48 c7 40 08 00 + 00058 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00049 48 8b 85 e0 00 + 00060 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 8b 8d e8 00 + 00067 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _State$[rbp] - 00057 48 89 48 10 mov QWORD PTR [rax+16], rcx - 0005b 48 8b 85 e0 00 + 0006e 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00072 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00062 48 8d a5 c8 00 + 00079 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 + 00080 5f pop rdi + 00081 5d pop rbp + 00082 c3 ret 0 ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ENDP ; std::fpos<_Mbstatet>::fpos<_Mbstatet> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iosfwd +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iosfwd ; COMDAT ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z _TEXT SEGMENT this$ = 224 @@ -14918,36 +16060,42 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886FDBE2_iosfwd - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__3E6EDFAA_iosfwd + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00042 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Off$[rbp] - 00032 48 89 08 mov QWORD PTR [rax], rcx - 00035 48 8b 85 e0 00 + 00049 48 89 08 mov QWORD PTR [rax], rcx + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 c7 40 08 00 + 00053 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00044 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 83 c0 10 add rax, 16 - 0004f 48 8b f8 mov rdi, rax - 00052 33 c0 xor eax, eax - 00054 b9 08 00 00 00 mov ecx, 8 - 00059 f3 aa rep stosb 0005b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00062 48 8d a5 c8 00 + 00062 48 83 c0 10 add rax, 16 + 00066 48 8b f8 mov rdi, rax + 00069 33 c0 xor eax, eax + 0006b b9 08 00 00 00 mov ecx, 8 + 00070 f3 aa rep stosb + 00072 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00079 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00080 5f pop rdi + 00081 5d pop rbp + 00082 c3 ret 0 ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ENDP ; std::fpos<_Mbstatet>::fpos<_Mbstatet> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -14966,7 +16114,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14977,255 +16125,255 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z _TEXT SEGMENT _Facptr$ = 8 @@ -15245,54 +16393,60 @@ $LN8: 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 374 : const facet* _Facptr = _Id < _Ptr->_Facetcount ? _Ptr->_Facetvec[_Id] : nullptr; // null if id off end - 00024 48 8b 85 20 01 + 0003b 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0002f 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00033 48 39 85 28 01 + 00042 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00046 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0004a 48 39 85 28 01 00 00 cmp QWORD PTR _Id$[rbp], rax - 0003a 73 23 jae SHORT $LN6@Getfacet - 0003c 48 8b 85 20 01 + 00051 73 23 jae SHORT $LN6@Getfacet + 00053 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00047 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 0004b 48 8b 8d 28 01 + 0005a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0005e 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00062 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Id$[rbp] - 00052 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] - 00056 48 89 85 f8 00 + 00069 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] + 0006d 48 89 85 f8 00 00 00 mov QWORD PTR tv71[rbp], rax - 0005d eb 0b jmp SHORT $LN7@Getfacet + 00074 eb 0b jmp SHORT $LN7@Getfacet $LN6@Getfacet: - 0005f 48 c7 85 f8 00 + 00076 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 $LN7@Getfacet: - 0006a 48 8b 85 f8 00 + 00081 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv71[rbp] - 00071 48 89 45 08 mov QWORD PTR _Facptr$[rbp], rax + 00088 48 89 45 08 mov QWORD PTR _Facptr$[rbp], rax ; 375 : if (_Facptr || !_Ptr->_Xparent) { - 00075 48 83 7d 08 00 cmp QWORD PTR _Facptr$[rbp], 0 - 0007a 75 13 jne SHORT $LN3@Getfacet - 0007c 48 8b 85 20 01 + 0008c 48 83 7d 08 00 cmp QWORD PTR _Facptr$[rbp], 0 + 00091 75 13 jne SHORT $LN3@Getfacet + 00093 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00083 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00087 0f b6 40 24 movzx eax, BYTE PTR [rax+36] - 0008b 85 c0 test eax, eax - 0008d 75 06 jne SHORT $LN2@Getfacet + 0009a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0009e 0f b6 40 24 movzx eax, BYTE PTR [rax+36] + 000a2 85 c0 test eax, eax + 000a4 75 06 jne SHORT $LN2@Getfacet $LN3@Getfacet: ; 376 : return _Facptr; // found facet or not transparent - 0008f 48 8b 45 08 mov rax, QWORD PTR _Facptr$[rbp] - 00093 eb 31 jmp SHORT $LN1@Getfacet + 000a6 48 8b 45 08 mov rax, QWORD PTR _Facptr$[rbp] + 000aa eb 31 jmp SHORT $LN1@Getfacet $LN2@Getfacet: ; 377 : } @@ -15300,45 +16454,45 @@ $LN2@Getfacet: ; 379 : // look in current locale ; 380 : locale::_Locimp* _Ptr0 = _Getgloballocale(); - 00095 e8 00 00 00 00 call ?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ ; std::locale::_Getgloballocale - 0009a 48 89 45 28 mov QWORD PTR _Ptr0$[rbp], rax + 000ac e8 00 00 00 00 call ?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ ; std::locale::_Getgloballocale + 000b1 48 89 45 28 mov QWORD PTR _Ptr0$[rbp], rax ; 381 : if (_Id < _Ptr0->_Facetcount) { - 0009e 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] - 000a2 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 000a6 48 39 85 28 01 + 000b5 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] + 000b9 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 000bd 48 39 85 28 01 00 00 cmp QWORD PTR _Id$[rbp], rax - 000ad 73 15 jae SHORT $LN4@Getfacet + 000c4 73 15 jae SHORT $LN4@Getfacet ; 382 : return _Ptr0->_Facetvec[_Id]; // get from current locale - 000af 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] - 000b3 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000b7 48 8b 8d 28 01 + 000c6 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] + 000ca 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000ce 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Id$[rbp] - 000be 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] - 000c2 eb 02 jmp SHORT $LN1@Getfacet + 000d5 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] + 000d9 eb 02 jmp SHORT $LN1@Getfacet $LN4@Getfacet: ; 383 : } ; 384 : ; 385 : return nullptr; // no entry in current locale - 000c4 33 c0 xor eax, eax + 000db 33 c0 xor eax, eax $LN1@Getfacet: ; 386 : } - 000c6 48 8d a5 08 01 + 000dd 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000cd 5f pop rdi - 000ce 5d pop rbp - 000cf c3 ret 0 + 000e4 5f pop rdi + 000e5 5d pop rbp + 000e6 c3 ret 0 ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ENDP ; std::locale::_Getfacet _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??1locale@std@@QEAA@XZ _TEXT SEGMENT $T1 = 200 @@ -15356,48 +16510,54 @@ $LN6: 00007 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 351 : if (_Ptr) { - 0001f 48 8b 85 10 01 + 00036 48 8b 85 10 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0002b 74 67 je SHORT $LN2@locale + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 67 je SHORT $LN2@locale ; 352 : delete _Ptr->_Decref(); - 0002d 48 8b 85 10 01 + 00044 48 8b 85 10 01 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00038 48 8b 8d 10 01 + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0003f 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 ff 50 10 call QWORD PTR [rax+16] - 00049 48 89 85 c8 00 + 00056 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d ff 50 10 call QWORD PTR [rax+16] + 00060 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00050 48 83 bd c8 00 + 00067 48 83 bd c8 00 00 00 00 cmp QWORD PTR $T1[rbp], 0 - 00058 74 2f je SHORT $LN4@locale - 0005a 48 8b 85 c8 00 + 0006f 74 2f je SHORT $LN4@locale + 00071 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] - 00061 48 8b 00 mov rax, QWORD PTR [rax] - 00064 48 8b 00 mov rax, QWORD PTR [rax] - 00067 48 89 85 d8 00 + 00078 48 8b 00 mov rax, QWORD PTR [rax] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 89 85 d8 00 00 00 mov QWORD PTR tv85[rbp], rax - 0006e ba 01 00 00 00 mov edx, 1 - 00073 48 8b 8d c8 00 + 00085 ba 01 00 00 00 mov edx, 1 + 0008a 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0007a ff 95 d8 00 00 + 00091 ff 95 d8 00 00 00 call QWORD PTR tv85[rbp] - 00080 48 89 85 e0 00 + 00097 48 89 85 e0 00 00 00 mov QWORD PTR tv86[rbp], rax - 00087 eb 0b jmp SHORT $LN2@locale + 0009e eb 0b jmp SHORT $LN2@locale $LN4@locale: - 00089 48 c7 85 e0 00 + 000a0 48 c7 85 e0 00 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN2@locale: @@ -15405,15 +16565,15 @@ $LN2@locale: ; 353 : } ; 354 : } - 00094 48 8d a5 f8 00 + 000ab 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 0009b 5f pop rdi - 0009c 5d pop rbp - 0009d c3 ret 0 + 000b2 5f pop rdi + 000b3 5d pop rbp + 000b4 c3 ret 0 ??1locale@std@@QEAA@XZ ENDP ; std::locale::~locale _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\typeinfo +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\typeinfo ; COMDAT ?_Throw_bad_cast@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -15427,29 +16587,33 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C3682BF_typeinfo - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__33FB35AA_typeinfo + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 65 : _THROW(bad_cast{}); - 0001b 48 8d 8d c8 00 + 0002a 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00022 e8 00 00 00 00 call ??0bad_cast@std@@QEAA@XZ ; std::bad_cast::bad_cast - 00027 48 8d 15 00 00 + 00031 e8 00 00 00 00 call ??0bad_cast@std@@QEAA@XZ ; std::bad_cast::bad_cast + 00036 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI2?AVbad_cast@std@@ - 0002e 48 8d 8d c8 00 + 0003d 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00035 e8 00 00 00 00 call _CxxThrowException + 00044 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 66 : } - 0003a 48 8d a5 f8 00 + 00049 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 ?_Throw_bad_cast@std@@YAXXZ ENDP ; std::_Throw_bad_cast _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -15466,26 +16630,32 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_cast@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_cast@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gbad_cast@std@@UEAAPEAXI@Z ENDP ; std::bad_cast::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -15502,23 +16672,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0bad_cast@std@@QEAA@AEBV01@@Z ENDP ; std::bad_cast::bad_cast _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -15533,99 +16709,76 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0001f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 -??1bad_cast@std@@UEAA@XZ ENDP ; std::bad_cast::~bad_cast -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_typeinfo.h -; COMDAT ??0bad_cast@std@@QEAA@XZ -_TEXT SEGMENT -this$ = 224 -??0bad_cast@std@@QEAA@XZ PROC ; std::bad_cast::bad_cast, COMDAT - -; 137 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65F43743_vcruntime_typeinfo@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 136 : : exception("bad cast", 1) - - 0001f 41 b8 01 00 00 - 00 mov r8d, 1 - 00025 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast@ - 0002c 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception - -; 137 : { - - 00038 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ - 00046 48 89 08 mov QWORD PTR [rax], rcx - -; 138 : } - - 00049 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 -??0bad_cast@std@@QEAA@XZ ENDP ; std::bad_cast::bad_cast + 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00036 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +??1bad_cast@std@@UEAA@XZ ENDP ; std::bad_cast::~bad_cast _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\time.h -; COMDAT time +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_typeinfo.h +; COMDAT ??0bad_cast@std@@QEAA@XZ _TEXT SEGMENT -_Time$ = 224 -time PROC ; COMDAT +this$ = 224 +??0bad_cast@std@@QEAA@XZ PROC ; std::bad_cast::bad_cast, COMDAT -; 521 : { +; 135 : { +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A0B61CF9_time@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FB364CBD_vcruntime_typeinfo@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 134 : : exception("bad cast", 1) + + 00036 41 b8 01 00 00 + 00 mov r8d, 1 + 0003c 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast@ + 00043 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004a e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception -; 522 : return _time64(_Time); +; 135 : { - 0001f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Time$[rbp] - 00026 ff 15 00 00 00 - 00 call QWORD PTR __imp__time64 + 0004f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00056 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ + 0005d 48 89 08 mov QWORD PTR [rax], rcx -; 523 : } +; 136 : } - 0002c 48 8d a5 c8 00 + 00060 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00033 5f pop rdi - 00034 5d pop rbp - 00035 c3 ret 0 -time ENDP + 0006e 5f pop rdi + 0006f 5d pop rbp + 00070 c3 ret 0 +??0bad_cast@std@@QEAA@XZ ENDP ; std::bad_cast::bad_cast _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ @@ -15639,25 +16792,31 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0001a 48 8b c8 mov rcx, rax - 0001d e8 00 00 00 00 call ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ - 00022 48 8d a5 c8 00 + 00031 48 8b c8 mov rcx, rax + 00034 e8 00 00 00 00 call ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ + 00039 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 + 00040 5f pop rdi + 00041 5d pop rbp + 00042 c3 ret 0 ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ ENDP ; std::_Compressed_pair,std::_String_val >,1>::~_Compressed_pair,std::_String_val >,1> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ PROC ; std::_Compressed_pair,std::_String_val >,1>::_Get_first, COMDAT -; 1381 : constexpr const _Ty1& _Get_first() const noexcept { +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15666,32 +16825,38 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; -; 1382 : return *this; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1383 : } +; 1349 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ ENDP ; std::_Compressed_pair,std::_String_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ _TEXT SEGMENT this$ = 224 ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ PROC ; std::_Compressed_pair,std::_String_val >,1>::_Get_first, COMDAT -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15700,32 +16865,38 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; -; 1378 : return *this; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1379 : } +; 1345 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ ENDP ; std::_Compressed_pair,std::_String_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ PROC ; std::basic_string,std::allocator >::_Getal, COMDAT -; 4654 : _CONSTEXPR20_CONTAINER const _Alty& _Getal() const noexcept { +; 4328 : const _Alty& _Getal() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15734,34 +16905,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4329 : return _Mypair._Get_first(); -; 4655 : return _Mypair._Get_first(); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first + 00045 90 npad 1 -; 4656 : } +; 4330 : } - 0002e 48 8d a5 c8 00 + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ ENDP ; std::basic_string,std::allocator >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ PROC ; std::basic_string,std::allocator >::_Getal, COMDAT -; 4650 : _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { +; 4324 : _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15770,28 +16948,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4325 : return _Mypair._Get_first(); -; 4651 : return _Mypair._Get_first(); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first + 00045 90 npad 1 -; 4652 : } +; 4326 : } - 0002e 48 8d a5 c8 00 + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ENDP ; std::basic_string,std::allocator >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ _TEXT SEGMENT _Ptr$1 = 8 @@ -15800,7 +16985,7 @@ $T3 = 260 this$ = 320 ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ PROC ; std::basic_string,std::allocator >::_Tidy_deallocate, COMDAT -; 4616 : _CONSTEXPR20_CONTAINER void _Tidy_deallocate() noexcept { // initialize buffer, deallocating any storage +; 4299 : void _Tidy_deallocate() noexcept { // initialize buffer, deallocating any storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15809,190 +16994,176 @@ $LN4: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4617 : _Mypair._Myval2._Orphan_all(); +; 4300 : _Mypair._Myval2._Orphan_all(); - 0001f 48 8b 85 40 01 + 00036 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 4618 : if (_Mypair._Myval2._Large_string_engaged()) { +; 4301 : if (_Mypair._Myval2._Large_string_engaged()) { - 0002e 48 8b 85 40 01 + 00045 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged - 0003d 0f b6 c0 movzx eax, al - 00040 85 c0 test eax, eax - 00042 74 50 je SHORT $LN2@Tidy_deall + 0004c 48 8b c8 mov rcx, rax + 0004f e8 00 00 00 00 call ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged + 00054 0f b6 c0 movzx eax, al + 00057 85 c0 test eax, eax + 00059 74 50 je SHORT $LN2@Tidy_deall -; 4619 : const pointer _Ptr = _Mypair._Myval2._Bx._Ptr; +; 4302 : const pointer _Ptr = _Mypair._Myval2._Bx._Ptr; - 00044 48 8b 85 40 01 + 0005b 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004f 48 89 45 08 mov QWORD PTR _Ptr$1[rbp], rax + 00062 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00066 48 89 45 08 mov QWORD PTR _Ptr$1[rbp], rax -; 4620 : auto& _Al = _Getal(); +; 4303 : auto& _Al = _Getal(); - 00053 48 8b 8d 40 01 + 0006a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal - 0005f 48 89 45 28 mov QWORD PTR _Al$2[rbp], rax + 00071 e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 00076 48 89 45 28 mov QWORD PTR _Al$2[rbp], rax -; 4621 : _Destroy_in_place(_Mypair._Myval2._Bx._Ptr); +; 4304 : _Destroy_in_place(_Mypair._Myval2._Bx._Ptr); - 00063 48 8b 85 40 01 + 0007a 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 83 c0 08 add rax, 8 - 0006e 48 8b c8 mov rcx, rax - 00071 e8 00 00 00 00 call ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ; std::_Destroy_in_place + 00081 48 83 c0 08 add rax, 8 + 00085 48 8b c8 mov rcx, rax + 00088 e8 00 00 00 00 call ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ; std::_Destroy_in_place -; 4622 : _Al.deallocate(_Ptr, _Mypair._Myval2._Myres + 1); +; 4305 : _Al.deallocate(_Ptr, _Mypair._Myval2._Myres + 1); - 00076 48 8b 85 40 01 + 0008d 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007d 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00081 48 ff c0 inc rax - 00084 4c 8b c0 mov r8, rax - 00087 48 8b 55 08 mov rdx, QWORD PTR _Ptr$1[rbp] - 0008b 48 8b 4d 28 mov rcx, QWORD PTR _Al$2[rbp] - 0008f e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate + 00094 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00098 48 ff c0 inc rax + 0009b 4c 8b c0 mov r8, rax + 0009e 48 8b 55 08 mov rdx, QWORD PTR _Ptr$1[rbp] + 000a2 48 8b 4d 28 mov rcx, QWORD PTR _Al$2[rbp] + 000a6 e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate $LN2@Tidy_deall: -; 4623 : } -; 4624 : -; 4625 : #ifdef __cpp_lib_constexpr_string -; 4626 : if (_STD is_constant_evaluated()) { -; 4627 : _Mypair._Myval2._Bx._Ptr = nullptr; -; 4628 : _Mypair._Myval2._Mysize = 0; -; 4629 : _Mypair._Myval2._Myres = 0; -; 4630 : } else -; 4631 : #endif // __cpp_lib_constexpr_string -; 4632 : { -; 4633 : _Mypair._Myval2._Mysize = 0; - - 00094 48 8b 85 40 01 +; 4306 : } +; 4307 : +; 4308 : _Mypair._Myval2._Mysize = 0; + + 000ab 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0009b 48 c7 40 18 00 + 000b2 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 -; 4634 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; +; 4309 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; - 000a3 48 8b 85 40 01 + 000ba 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 c7 40 20 0f + 000c1 48 c7 40 20 0f 00 00 00 mov QWORD PTR [rax+32], 15 -; 4635 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this -; 4636 : _Traits::assign(_Mypair._Myval2._Bx._Buf[0], _Elem()); +; 4310 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this +; 4311 : _Traits::assign(_Mypair._Myval2._Bx._Buf[0], _Elem()); - 000b2 c6 85 04 01 00 + 000c9 c6 85 04 01 00 00 00 mov BYTE PTR $T3[rbp], 0 - 000b9 b8 01 00 00 00 mov eax, 1 - 000be 48 6b c0 00 imul rax, rax, 0 - 000c2 48 8b 8d 40 01 + 000d0 b8 01 00 00 00 mov eax, 1 + 000d5 48 6b c0 00 imul rax, rax, 0 + 000d9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c9 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] - 000ce 48 8d 95 04 01 + 000e0 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] + 000e5 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T3[rbp] - 000d5 48 8b c8 mov rcx, rax - 000d8 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign - 000dd 90 npad 1 + 000ec 48 8b c8 mov rcx, rax + 000ef e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 000f4 90 npad 1 -; 4637 : } -; 4638 : } +; 4312 : } - 000de 48 8d a5 28 01 + 000f5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000e5 5f pop rdi - 000e6 5d pop rbp - 000e7 c3 ret 0 + 000fc 5f pop rdi + 000fd 5d pop rbp + 000fe c3 ret 0 ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ENDP ; std::basic_string,std::allocator >::_Tidy_deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ _TEXT SEGMENT -_My_data$ = 8 -$T1 = 228 -this$ = 288 +$T1 = 196 +this$ = 256 ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ PROC ; std::basic_string,std::allocator >::_Tidy_init, COMDAT -; 4594 : _CONSTEXPR20_CONTAINER void _Tidy_init() noexcept { // initialize basic_string data members +; 4292 : void _Tidy_init() noexcept { // initialize basic_string data members $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4595 : auto& _My_data = _Mypair._Myval2; +; 4293 : _Mypair._Myval2._Mysize = 0; - 0001f 48 8b 85 20 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax - -; 4596 : _My_data._Mysize = 0; - - 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0002e 48 c7 40 18 00 + 0003d 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 -; 4597 : -; 4598 : #ifdef __cpp_lib_constexpr_string -; 4599 : if (_STD is_constant_evaluated()) { -; 4600 : _My_data._Myres = _BUF_SIZE; // SSO disabled in constexpr context -; 4601 : auto& _Al = _Getal(); -; 4602 : const pointer _New_ptr = _Al.allocate(_BUF_SIZE + 1); // throws -; 4603 : _My_data._Bx._Ptr = _New_ptr; -; 4604 : -; 4605 : _Elem* const _Raw_new = _Unfancy(_New_ptr); -; 4606 : _Traits::assign(_Raw_new, _BUF_SIZE + 1, _Elem()); -; 4607 : } else -; 4608 : #endif // __cpp_lib_constexpr_string -; 4609 : { -; 4610 : _My_data._Myres = _BUF_SIZE - 1; - - 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0003a 48 c7 40 20 0f +; 4294 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; + + 00045 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004c 48 c7 40 20 0f 00 00 00 mov QWORD PTR [rax+32], 15 -; 4611 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this -; 4612 : _Traits::assign(_My_data._Bx._Buf[0], _Elem()); +; 4295 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this +; 4296 : _Traits::assign(_Mypair._Myval2._Bx._Buf[0], _Elem()); - 00042 c6 85 e4 00 00 + 00054 c6 85 c4 00 00 00 00 mov BYTE PTR $T1[rbp], 0 - 00049 b8 01 00 00 00 mov eax, 1 - 0004e 48 6b c0 00 imul rax, rax, 0 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00056 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] - 0005b 48 8d 95 e4 00 + 0005b b8 01 00 00 00 mov eax, 1 + 00060 48 6b c0 00 imul rax, rax, 0 + 00064 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006b 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] + 00070 48 8d 95 c4 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00062 48 8b c8 mov rcx, rax - 00065 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 00077 48 8b c8 mov rcx, rax + 0007a e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 0007f 90 npad 1 -; 4613 : } -; 4614 : } +; 4297 : } - 0006a 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 00080 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00087 5f pop rdi + 00088 5d pop rbp + 00089 c3 ret 0 ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ENDP ; std::basic_string,std::allocator >::_Tidy_init _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z _TEXT SEGMENT tv76 = 192 @@ -16001,7 +17172,7 @@ this$ = 240 _Requested$ = 248 ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z PROC ; std::basic_string,std::allocator >::_Calculate_growth, COMDAT -; 4500 : _NODISCARD _CONSTEXPR20_CONTAINER size_type _Calculate_growth(const size_type _Requested) const noexcept { +; 4213 : _NODISCARD size_type _Calculate_growth(const size_type _Requested) const noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -16011,41 +17182,48 @@ $LN3: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4501 : return _Calculate_growth(_Requested, _Mypair._Myval2._Myres, max_size()); - - 00024 48 8b 8d f0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4214 : return _Calculate_growth(_Requested, _Mypair._Myval2._Myres, max_size()); + + 0003b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002b e8 00 00 00 00 call ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size - 00030 48 89 85 c0 00 + 00042 e8 00 00 00 00 call ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size + 00047 48 89 85 c0 00 00 00 mov QWORD PTR tv76[rbp], rax - 00037 48 8b 85 f0 00 + 0004e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00042 48 89 85 c8 00 + 00055 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00059 48 89 85 c8 00 00 00 mov QWORD PTR tv74[rbp], rax - 00049 4c 8b 85 c0 00 + 00060 4c 8b 85 c0 00 00 00 mov r8, QWORD PTR tv76[rbp] - 00050 48 8b 95 c8 00 + 00067 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR tv74[rbp] - 00057 48 8b 8d f8 00 + 0006e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Requested$[rbp] - 0005e e8 00 00 00 00 call ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z ; std::basic_string,std::allocator >::_Calculate_growth + 00075 e8 00 00 00 00 call ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z ; std::basic_string,std::allocator >::_Calculate_growth + 0007a 90 npad 1 -; 4502 : } +; 4215 : } - 00063 48 8d a5 d8 00 + 0007b 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0006a 5f pop rdi - 0006b 5d pop rbp - 0006c c3 ret 0 + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z ENDP ; std::basic_string,std::allocator >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z _TEXT SEGMENT _Masked$ = 8 @@ -16056,7 +17234,7 @@ _Old$ = 296 _Max$ = 304 ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z PROC ; std::basic_string,std::allocator >::_Calculate_growth, COMDAT -; 4487 : const size_type _Requested, const size_type _Old, const size_type _Max) noexcept { +; 4200 : const size_type _Requested, const size_type _Old, const size_type _Max) noexcept { $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16067,109 +17245,109 @@ $LN5: 00011 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 12 00 00 00 mov ecx, 18 - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 48 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 00 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4488 : const size_type _Masked = _Requested | _ALLOC_MASK; +; 4201 : const size_type _Masked = _Requested | _ALLOC_MASK; - 00053 48 8b 85 20 01 + 00051 48 8b 85 20 01 00 00 mov rax, QWORD PTR _Requested$[rbp] - 0005a 48 83 c8 0f or rax, 15 - 0005e 48 89 45 08 mov QWORD PTR _Masked$[rbp], rax + 00058 48 83 c8 0f or rax, 15 + 0005c 48 89 45 08 mov QWORD PTR _Masked$[rbp], rax -; 4489 : if (_Masked > _Max) { // the mask overflows, settle for max_size() +; 4202 : if (_Masked > _Max) { // the mask overflows, settle for max_size() - 00062 48 8b 85 30 01 + 00060 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Max$[rbp] - 00069 48 39 45 08 cmp QWORD PTR _Masked$[rbp], rax - 0006d 76 09 jbe SHORT $LN2@Calculate_ + 00067 48 39 45 08 cmp QWORD PTR _Masked$[rbp], rax + 0006b 76 09 jbe SHORT $LN2@Calculate_ -; 4490 : return _Max; +; 4203 : return _Max; - 0006f 48 8b 85 30 01 + 0006d 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Max$[rbp] - 00076 eb 68 jmp SHORT $LN1@Calculate_ + 00074 eb 68 jmp SHORT $LN1@Calculate_ $LN2@Calculate_: -; 4491 : } -; 4492 : -; 4493 : if (_Old > _Max - _Old / 2) { // similarly, geometric overflows +; 4204 : } +; 4205 : +; 4206 : if (_Old > _Max - _Old / 2) { // similarly, geometric overflows - 00078 33 d2 xor edx, edx - 0007a 48 8b 85 28 01 + 00076 33 d2 xor edx, edx + 00078 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Old$[rbp] - 00081 b9 02 00 00 00 mov ecx, 2 - 00086 48 f7 f1 div rcx - 00089 48 8b 8d 30 01 + 0007f b9 02 00 00 00 mov ecx, 2 + 00084 48 f7 f1 div rcx + 00087 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR _Max$[rbp] - 00090 48 2b c8 sub rcx, rax - 00093 48 8b c1 mov rax, rcx - 00096 48 39 85 28 01 + 0008e 48 2b c8 sub rcx, rax + 00091 48 8b c1 mov rax, rcx + 00094 48 39 85 28 01 00 00 cmp QWORD PTR _Old$[rbp], rax - 0009d 76 09 jbe SHORT $LN3@Calculate_ + 0009b 76 09 jbe SHORT $LN3@Calculate_ -; 4494 : return _Max; +; 4207 : return _Max; - 0009f 48 8b 85 30 01 + 0009d 48 8b 85 30 01 00 00 mov rax, QWORD PTR _Max$[rbp] - 000a6 eb 38 jmp SHORT $LN1@Calculate_ + 000a4 eb 38 jmp SHORT $LN1@Calculate_ $LN3@Calculate_: -; 4495 : } -; 4496 : -; 4497 : return (_STD max)(_Masked, _Old + _Old / 2); +; 4208 : } +; 4209 : +; 4210 : return (_STD max)(_Masked, _Old + _Old / 2); - 000a8 33 d2 xor edx, edx - 000aa 48 8b 85 28 01 + 000a6 33 d2 xor edx, edx + 000a8 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Old$[rbp] - 000b1 b9 02 00 00 00 mov ecx, 2 - 000b6 48 f7 f1 div rcx - 000b9 48 8b 8d 28 01 + 000af b9 02 00 00 00 mov ecx, 2 + 000b4 48 f7 f1 div rcx + 000b7 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Old$[rbp] - 000c0 48 03 c8 add rcx, rax - 000c3 48 8b c1 mov rax, rcx - 000c6 48 89 85 e8 00 + 000be 48 03 c8 add rcx, rax + 000c1 48 8b c1 mov rax, rcx + 000c4 48 89 85 e8 00 00 00 mov QWORD PTR $T4[rbp], rax - 000cd 48 8d 95 e8 00 + 000cb 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T4[rbp] - 000d4 48 8d 4d 08 lea rcx, QWORD PTR _Masked$[rbp] - 000d8 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max - 000dd 48 8b 00 mov rax, QWORD PTR [rax] + 000d2 48 8d 4d 08 lea rcx, QWORD PTR _Masked$[rbp] + 000d6 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max + 000db 48 8b 00 mov rax, QWORD PTR [rax] $LN1@Calculate_: -; 4498 : } +; 4211 : } - 000e0 48 8b f8 mov rdi, rax - 000e3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000e7 48 8d 15 00 00 + 000de 48 8b f8 mov rdi, rax + 000e1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcFrameData - 000ee e8 00 00 00 00 call _RTC_CheckStackVars - 000f3 48 8b c7 mov rax, rdi - 000f6 48 8b 8d f8 00 + 000ec e8 00 00 00 00 call _RTC_CheckStackVars + 000f1 48 8b c7 mov rax, rdi + 000f4 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000fd 48 33 cd xor rcx, rbp - 00100 e8 00 00 00 00 call __security_check_cookie - 00105 48 8d a5 08 01 + 000fb 48 33 cd xor rcx, rbp + 000fe e8 00 00 00 00 call __security_check_cookie + 00103 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0010c 5f pop rdi - 0010d 5d pop rbp - 0010e c3 ret 0 + 0010a 5f pop rdi + 0010b 5d pop rbp + 0010c c3 ret 0 ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z ENDP ; std::basic_string,std::allocator >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ _TEXT SEGMENT _Alloc_max$ = 8 @@ -16181,7 +17359,7 @@ __$ArrayPad$ = 344 this$ = 384 ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ PROC ; std::basic_string,std::allocator >::max_size, COMDAT -; 3943 : _NODISCARD _CONSTEXPR20_CONTAINER size_type max_size() const noexcept { +; 3689 : _NODISCARD size_type max_size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16190,88 +17368,88 @@ $LN3: 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 a8 + 00013 48 8b fc mov rdi, rsp + 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 58 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3944 : const size_type _Alloc_max = _Alty_traits::max_size(_Getal()); +; 3690 : const size_type _Alloc_max = _Alty_traits::max_size(_Getal()); - 00049 48 8b 8d 80 01 + 00047 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal - 00055 48 8b c8 mov rcx, rax - 00058 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z ; std::_Default_allocator_traits >::max_size - 0005d 48 89 45 08 mov QWORD PTR _Alloc_max$[rbp], rax + 0004e e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 00053 48 8b c8 mov rcx, rax + 00056 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z ; std::_Default_allocator_traits >::max_size + 0005b 48 89 45 08 mov QWORD PTR _Alloc_max$[rbp], rax -; 3945 : const size_type _Storage_max = // can always store small string +; 3691 : const size_type _Storage_max = // can always store small string - 00061 48 c7 85 08 01 + 0005f 48 c7 85 08 01 00 00 10 00 00 00 mov QWORD PTR $T4[rbp], 16 - 0006c 48 8d 95 08 01 + 0006a 48 8d 95 08 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 00073 48 8d 4d 08 lea rcx, QWORD PTR _Alloc_max$[rbp] - 00077 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max - 0007c 48 8b 00 mov rax, QWORD PTR [rax] - 0007f 48 89 45 28 mov QWORD PTR _Storage_max$[rbp], rax + 00071 48 8d 4d 08 lea rcx, QWORD PTR _Alloc_max$[rbp] + 00075 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 89 45 28 mov QWORD PTR _Storage_max$[rbp], rax -; 3946 : (_STD max)(_Alloc_max, static_cast(_BUF_SIZE)); -; 3947 : return (_STD min)(static_cast((numeric_limits::max)()), +; 3692 : (_STD max)(_Alloc_max, static_cast(_BUF_SIZE)); +; 3693 : return (_STD min)(static_cast((numeric_limits::max)()), - 00083 48 8b 45 28 mov rax, QWORD PTR _Storage_max$[rbp] - 00087 48 ff c8 dec rax - 0008a 48 89 85 28 01 + 00081 48 8b 45 28 mov rax, QWORD PTR _Storage_max$[rbp] + 00085 48 ff c8 dec rax + 00088 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 00091 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max - 00096 48 89 85 48 01 + 0008f e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 00094 48 89 85 48 01 00 00 mov QWORD PTR $T6[rbp], rax - 0009d 48 8d 95 28 01 + 0009b 48 8d 95 28 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 000a4 48 8d 8d 48 01 + 000a2 48 8d 8d 48 01 00 00 lea rcx, QWORD PTR $T6[rbp] - 000ab e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min - 000b0 48 8b 00 mov rax, QWORD PTR [rax] + 000a9 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 000ae 48 8b 00 mov rax, QWORD PTR [rax] -; 3948 : _Storage_max - 1 // -1 is for null terminator and/or npos -; 3949 : ); -; 3950 : } +; 3694 : _Storage_max - 1 // -1 is for null terminator and/or npos +; 3695 : ); +; 3696 : } - 000b3 48 8b f8 mov rdi, rax - 000b6 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000ba 48 8d 15 00 00 + 000b1 48 8b f8 mov rdi, rax + 000b4 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b8 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcFrameData - 000c1 e8 00 00 00 00 call _RTC_CheckStackVars - 000c6 48 8b c7 mov rax, rdi - 000c9 48 8b 8d 58 01 + 000bf e8 00 00 00 00 call _RTC_CheckStackVars + 000c4 48 8b c7 mov rax, rdi + 000c7 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d0 48 33 cd xor rcx, rbp - 000d3 e8 00 00 00 00 call __security_check_cookie - 000d8 48 8d a5 68 01 + 000ce 48 33 cd xor rcx, rbp + 000d1 e8 00 00 00 00 call __security_check_cookie + 000d6 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 000df 5f pop rdi - 000e0 5d pop rbp - 000e1 c3 ret 0 + 000dd 5f pop rdi + 000de 5d pop rbp + 000df c3 ret 0 ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ENDP ; std::basic_string,std::allocator >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ _TEXT SEGMENT this$ = 224 ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ PROC ; std::basic_string,std::allocator >::size, COMDAT -; 3939 : _NODISCARD _CONSTEXPR20_CONTAINER size_type size() const noexcept { +; 3685 : _NODISCARD size_type size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16280,33 +17458,39 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3686 : return _Mypair._Myval2._Mysize; -; 3940 : return _Mypair._Myval2._Mysize; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0003d 48 8b 40 18 mov rax, QWORD PTR [rax+24] -; 3941 : } +; 3687 : } - 0002a 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ENDP ; std::basic_string,std::allocator >::size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ _TEXT SEGMENT this$ = 224 ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ PROC ; std::basic_string,std::allocator >::data, COMDAT -; 3930 : _NODISCARD _CONSTEXPR20_CONTAINER _Ret_z_ _Elem* data() noexcept { +; 3676 : _NODISCARD _Ret_z_ _Elem* data() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16315,34 +17499,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3677 : return _Mypair._Myval2._Myptr(); -; 3931 : return _Mypair._Myval2._Myptr(); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 00045 90 npad 1 -; 3932 : } +; 3678 : } - 0002e 48 8d a5 c8 00 + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ENDP ; std::basic_string,std::allocator >::data _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ _TEXT SEGMENT this$ = 224 ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ PROC ; std::basic_string,std::allocator >::front, COMDAT -; 3889 : _NODISCARD _CONSTEXPR20_CONTAINER reference front() noexcept /* strengthened */ { +; 3635 : _NODISCARD reference front() noexcept /* strengthened */ { $LN12: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16351,83 +17542,89 @@ $LN12: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@front: -; 3890 : #if _CONTAINER_DEBUG_LEVEL > 0 -; 3891 : _STL_VERIFY(_Mypair._Myval2._Mysize != 0, "front() called on empty string"); +; 3636 : #if _CONTAINER_DEBUG_LEVEL > 0 +; 3637 : _STL_VERIFY(_Mypair._Myval2._Mysize != 0, "front() called on empty string"); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 - 0002b 74 02 je SHORT $LN7@front - 0002d eb 6b jmp SHORT $LN9@front + 0003d 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 + 00042 74 02 je SHORT $LN7@front + 00044 eb 6b jmp SHORT $LN9@front $LN7@front: - 0002f 48 8d 05 00 00 + 00046 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ - 00036 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0003b 48 8d 05 00 00 + 0004d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00052 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00042 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00047 45 33 c9 xor r9d, r9d - 0004a 41 b8 33 0f 00 - 00 mov r8d, 3891 ; 00000f33H - 00050 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@FKEOHBGC@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00057 b9 02 00 00 00 mov ecx, 2 - 0005c ff 15 00 00 00 + 00059 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0005e 45 33 c9 xor r9d, r9d + 00061 41 b8 35 0e 00 + 00 mov r8d, 3637 ; 00000e35H + 00067 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0006e b9 02 00 00 00 mov ecx, 2 + 00073 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 00062 83 f8 01 cmp eax, 1 - 00065 75 03 jne SHORT $LN11@front - 00067 cc int 3 - 00068 33 c0 xor eax, eax + 00079 83 f8 01 cmp eax, 1 + 0007c 75 03 jne SHORT $LN11@front + 0007e cc int 3 + 0007f 33 c0 xor eax, eax $LN11@front: - 0006a 48 c7 44 24 20 + 00081 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00073 41 b9 33 0f 00 - 00 mov r9d, 3891 ; 00000f33H - 00079 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@LAIGCHJK@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00080 48 8d 15 00 00 + 0008a 41 b9 35 0e 00 + 00 mov r9d, 3637 ; 00000e35H + 00090 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00097 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1LC@BJDDPGPA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi@ - 00087 48 8d 0d 00 00 + 0009e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1EC@DINNLDHA@?$AA?$CC?$AAf?$AAr?$AAo?$AAn?$AAt?$AA?$CI?$AA?$CJ?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAe?$AAd@ - 0008e ff 15 00 00 00 + 000a5 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00094 33 c0 xor eax, eax - 00096 85 c0 test eax, eax - 00098 75 95 jne SHORT $LN7@front + 000ab 33 c0 xor eax, eax + 000ad 85 c0 test eax, eax + 000af 75 95 jne SHORT $LN7@front $LN9@front: - 0009a 33 c0 xor eax, eax - 0009c 85 c0 test eax, eax - 0009e 0f 85 7b ff ff + 000b1 33 c0 xor eax, eax + 000b3 85 c0 test eax, eax + 000b5 0f 85 7b ff ff ff jne $LN4@front -; 3892 : #endif // _CONTAINER_DEBUG_LEVEL > 0 -; 3893 : -; 3894 : return _Mypair._Myval2._Myptr()[0]; +; 3638 : #endif // _CONTAINER_DEBUG_LEVEL > 0 +; 3639 : +; 3640 : return _Mypair._Myval2._Myptr()[0]; - 000a4 48 8b 85 e0 00 + 000bb 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000ab 48 8b c8 mov rcx, rax - 000ae e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr - 000b3 b9 01 00 00 00 mov ecx, 1 - 000b8 48 6b c9 00 imul rcx, rcx, 0 - 000bc 48 03 c1 add rax, rcx + 000c2 48 8b c8 mov rcx, rax + 000c5 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 000ca b9 01 00 00 00 mov ecx, 1 + 000cf 48 6b c9 00 imul rcx, rcx, 0 + 000d3 48 03 c1 add rax, rcx -; 3895 : } +; 3641 : } - 000bf 48 8d a5 c8 00 + 000d6 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000c6 5f pop rdi - 000c7 5d pop rbp - 000c8 c3 ret 0 + 000dd 5f pop rdi + 000de 5d pop rbp + 000df c3 ret 0 ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ENDP ; std::basic_string,std::allocator >::front _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z _TEXT SEGMENT _Old_size$ = 8 @@ -16438,7 +17635,7 @@ this$ = 352 _Ch$ = 360 ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z PROC ; std::basic_string,std::allocator >::push_back, COMDAT -; 3861 : _CONSTEXPR20_CONTAINER void push_back(const _Elem _Ch) { // insert element at end +; 3607 : void push_back(const _Elem _Ch) { // insert element at end $LN4: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -16448,177 +17645,127 @@ $LN4: 0000b 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 3862 : const size_type _Old_size = _Mypair._Myval2._Mysize; - - 00023 48 8b 85 60 01 + 00017 48 8b fc mov rdi, rsp + 0001a b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3608 : const size_type _Old_size = _Mypair._Myval2._Mysize; + + 0003a 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002a 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0002e 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax + 00041 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00045 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax -; 3863 : if (_Old_size < _Mypair._Myval2._Myres) { +; 3609 : if (_Old_size < _Mypair._Myval2._Myres) { - 00032 48 8b 85 60 01 + 00049 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0003d 48 39 45 08 cmp QWORD PTR _Old_size$[rbp], rax - 00041 73 67 jae SHORT $LN2@push_back + 00050 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00054 48 39 45 08 cmp QWORD PTR _Old_size$[rbp], rax + 00058 73 67 jae SHORT $LN2@push_back -; 3864 : _Mypair._Myval2._Mysize = _Old_size + 1; +; 3610 : _Mypair._Myval2._Mysize = _Old_size + 1; - 00043 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] - 00047 48 ff c0 inc rax - 0004a 48 8b 8d 60 01 + 0005a 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] + 0005e 48 ff c0 inc rax + 00061 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00051 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00068 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 3865 : _Elem* const _Ptr = _Mypair._Myval2._Myptr(); +; 3611 : _Elem* const _Ptr = _Mypair._Myval2._Myptr(); - 00055 48 8b 85 60 01 + 0006c 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005c 48 8b c8 mov rcx, rax - 0005f e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr - 00064 48 89 45 28 mov QWORD PTR _Ptr$1[rbp], rax + 00073 48 8b c8 mov rcx, rax + 00076 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 0007b 48 89 45 28 mov QWORD PTR _Ptr$1[rbp], rax -; 3866 : _Traits::assign(_Ptr[_Old_size], _Ch); +; 3612 : _Traits::assign(_Ptr[_Old_size], _Ch); - 00068 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] - 0006c 48 8b 4d 28 mov rcx, QWORD PTR _Ptr$1[rbp] - 00070 48 03 c8 add rcx, rax - 00073 48 8b c1 mov rax, rcx - 00076 48 8d 95 68 01 + 0007f 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] + 00083 48 8b 4d 28 mov rcx, QWORD PTR _Ptr$1[rbp] + 00087 48 03 c8 add rcx, rax + 0008a 48 8b c1 mov rax, rcx + 0008d 48 8d 95 68 01 00 00 lea rdx, QWORD PTR _Ch$[rbp] - 0007d 48 8b c8 mov rcx, rax - 00080 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 00094 48 8b c8 mov rcx, rax + 00097 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 3867 : _Traits::assign(_Ptr[_Old_size + 1], _Elem()); +; 3613 : _Traits::assign(_Ptr[_Old_size + 1], _Elem()); - 00085 c6 85 04 01 00 + 0009c c6 85 04 01 00 00 00 mov BYTE PTR $T2[rbp], 0 - 0008c 48 8b 45 28 mov rax, QWORD PTR _Ptr$1[rbp] - 00090 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] - 00094 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] - 00099 48 8d 95 04 01 + 000a3 48 8b 45 28 mov rax, QWORD PTR _Ptr$1[rbp] + 000a7 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] + 000ab 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] + 000b0 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T2[rbp] - 000a0 48 8b c8 mov rcx, rax - 000a3 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 000b7 48 8b c8 mov rcx, rax + 000ba e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign -; 3868 : return; +; 3614 : return; - 000a8 eb 34 jmp SHORT $LN1@push_back + 000bf eb 34 jmp SHORT $LN1@push_back $LN2@push_back: -; 3869 : } -; 3870 : -; 3871 : _Reallocate_grow_by( +; 3615 : } +; 3616 : +; 3617 : _Reallocate_grow_by( - 000aa 48 8d 85 24 01 + 000c1 48 8d 85 24 01 00 00 lea rax, QWORD PTR $T3[rbp] - 000b1 48 8b f8 mov rdi, rax - 000b4 33 c0 xor eax, eax - 000b6 b9 01 00 00 00 mov ecx, 1 - 000bb f3 aa rep stosb - 000bd 44 0f b6 8d 68 + 000c8 48 8b f8 mov rdi, rax + 000cb 33 c0 xor eax, eax + 000cd b9 01 00 00 00 mov ecx, 1 + 000d2 f3 aa rep stosb + 000d4 44 0f b6 8d 68 01 00 00 movzx r9d, BYTE PTR _Ch$[rbp] - 000c5 44 0f b6 85 24 + 000dc 44 0f b6 85 24 01 00 00 movzx r8d, BYTE PTR $T3[rbp] - 000cd ba 01 00 00 00 mov edx, 1 - 000d2 48 8b 8d 60 01 + 000e4 ba 01 00 00 00 mov edx, 1 + 000e9 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000d9 e8 00 00 00 00 call ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> + 000f0 e8 00 00 00 00 call ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> $LN1@push_back: -; 3872 : 1, -; 3873 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { -; 3874 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); -; 3875 : _Traits::assign(_New_ptr[_Old_size], _Ch); -; 3876 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); -; 3877 : }, -; 3878 : _Ch); -; 3879 : } +; 3618 : 1, +; 3619 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { +; 3620 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); +; 3621 : _Traits::assign(_New_ptr[_Old_size], _Ch); +; 3622 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); +; 3623 : }, +; 3624 : _Ch); +; 3625 : } - 000de 48 8d a5 48 01 + 000f5 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 000e5 5f pop rdi - 000e6 5d pop rbp - 000e7 c3 ret 0 + 000fc 5f pop rdi + 000fd 5d pop rbp + 000fe c3 ret 0 ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ENDP ; std::basic_string,std::allocator >::push_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring -; COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z -_TEXT SEGMENT -tv69 = 192 -this$ = 240 -_Off$ = 248 -_Count$ = 256 -?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z PROC ; std::basic_string,std::allocator >::erase, COMDAT - -; 3472 : _CONSTEXPR20_CONTAINER basic_string& erase(const size_type _Off, const size_type _Count) { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 3473 : // erase elements [_Off, _Off + _Count) -; 3474 : _Mypair._Myval2._Check_offset(_Off); - - 00029 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 89 85 c0 00 - 00 00 mov QWORD PTR tv69[rbp], rax - 00037 48 8b 95 f8 00 - 00 00 mov rdx, QWORD PTR _Off$[rbp] - 0003e 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv69[rbp] - 00045 e8 00 00 00 00 call ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ; std::_String_val >::_Check_offset - -; 3475 : return _Erase_noexcept(_Off, _Count); - - 0004a 4c 8b 85 00 01 - 00 00 mov r8, QWORD PTR _Count$[rbp] - 00051 48 8b 95 f8 00 - 00 00 mov rdx, QWORD PTR _Off$[rbp] - 00058 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f e8 00 00 00 00 call ?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::_Erase_noexcept - -; 3476 : } - - 00064 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0006b 5f pop rdi - 0006c 5d pop rbp - 0006d c3 ret 0 -?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z ENDP ; std::basic_string,std::allocator >::erase -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring -; COMDAT ?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z _TEXT SEGMENT _Old_size$ = 8 _My_ptr$ = 40 _Erase_at$ = 72 _New_size$ = 104 -tv71 = 312 +tv77 = 312 +tv69 = 312 this$ = 352 _Off$ = 360 _Count$ = 368 -?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z PROC ; std::basic_string,std::allocator >::_Erase_noexcept, COMDAT +?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z PROC ; std::basic_string,std::allocator >::erase, COMDAT -; 3460 : _CONSTEXPR20_CONTAINER basic_string& _Erase_noexcept(const size_type _Off, size_type _Count) noexcept { +; 3215 : basic_string& erase(const size_type _Off, size_type _Count) { // erase elements [_Off, _Off + _Count) $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16629,100 +17776,118 @@ $LN3: 00011 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3461 : _Count = _Mypair._Myval2._Clamp_suffix_size(_Off, _Count); +; 3216 : _Mypair._Myval2._Check_offset(_Off); - 00029 48 8b 85 60 01 + 00040 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 89 85 38 01 - 00 00 mov QWORD PTR tv71[rbp], rax - 00037 4c 8b 85 70 01 + 00047 48 89 85 38 01 + 00 00 mov QWORD PTR tv69[rbp], rax + 0004e 48 8b 95 68 01 + 00 00 mov rdx, QWORD PTR _Off$[rbp] + 00055 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 0005c e8 00 00 00 00 call ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ; std::_String_val >::_Check_offset + +; 3217 : _Count = _Mypair._Myval2._Clamp_suffix_size(_Off, _Count); + + 00061 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00068 48 89 85 38 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006f 4c 8b 85 70 01 00 00 mov r8, QWORD PTR _Count$[rbp] - 0003e 48 8b 95 68 01 + 00076 48 8b 95 68 01 00 00 mov rdx, QWORD PTR _Off$[rbp] - 00045 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR tv71[rbp] - 0004c e8 00 00 00 00 call ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z ; std::_String_val >::_Clamp_suffix_size - 00051 48 89 85 70 01 + 0007d 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 00084 e8 00 00 00 00 call ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z ; std::_String_val >::_Clamp_suffix_size + 00089 48 89 85 70 01 00 00 mov QWORD PTR _Count$[rbp], rax -; 3462 : const size_type _Old_size = _Mypair._Myval2._Mysize; +; 3218 : const size_type _Old_size = _Mypair._Myval2._Mysize; - 00058 48 8b 85 60 01 + 00090 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00063 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax + 00097 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0009b 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax -; 3463 : _Elem* const _My_ptr = _Mypair._Myval2._Myptr(); +; 3219 : _Elem* const _My_ptr = _Mypair._Myval2._Myptr(); - 00067 48 8b 85 60 01 + 0009f 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006e 48 8b c8 mov rcx, rax - 00071 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr - 00076 48 89 45 28 mov QWORD PTR _My_ptr$[rbp], rax + 000a6 48 8b c8 mov rcx, rax + 000a9 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 000ae 48 89 45 28 mov QWORD PTR _My_ptr$[rbp], rax -; 3464 : _Elem* const _Erase_at = _My_ptr + _Off; +; 3220 : _Elem* const _Erase_at = _My_ptr + _Off; - 0007a 48 8b 85 68 01 + 000b2 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Off$[rbp] - 00081 48 8b 4d 28 mov rcx, QWORD PTR _My_ptr$[rbp] - 00085 48 03 c8 add rcx, rax - 00088 48 8b c1 mov rax, rcx - 0008b 48 89 45 48 mov QWORD PTR _Erase_at$[rbp], rax + 000b9 48 8b 4d 28 mov rcx, QWORD PTR _My_ptr$[rbp] + 000bd 48 03 c8 add rcx, rax + 000c0 48 8b c1 mov rax, rcx + 000c3 48 89 45 48 mov QWORD PTR _Erase_at$[rbp], rax -; 3465 : const size_type _New_size = _Old_size - _Count; +; 3221 : const size_type _New_size = _Old_size - _Count; - 0008f 48 8b 85 70 01 + 000c7 48 8b 85 70 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00096 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] - 0009a 48 2b c8 sub rcx, rax - 0009d 48 8b c1 mov rax, rcx - 000a0 48 89 45 68 mov QWORD PTR _New_size$[rbp], rax + 000ce 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] + 000d2 48 2b c8 sub rcx, rax + 000d5 48 8b c1 mov rax, rcx + 000d8 48 89 45 68 mov QWORD PTR _New_size$[rbp], rax -; 3466 : _Mypair._Myval2._Mysize = _New_size; +; 3222 : _Mypair._Myval2._Mysize = _New_size; - 000a4 48 8b 85 60 01 + 000dc 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 000ab 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] - 000af 48 89 48 18 mov QWORD PTR [rax+24], rcx + 000e3 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] + 000e7 48 89 48 18 mov QWORD PTR [rax+24], rcx -; 3467 : _Traits::move(_Erase_at, _Erase_at + _Count, _New_size - _Off + 1); // move suffix + null up +; 3223 : _Traits::move(_Erase_at, _Erase_at + _Count, _New_size - _Off + 1); // move suffix + null up - 000b3 48 8b 85 68 01 + 000eb 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Off$[rbp] - 000ba 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] - 000be 48 2b c8 sub rcx, rax - 000c1 48 8b c1 mov rax, rcx - 000c4 48 ff c0 inc rax - 000c7 48 8b 8d 70 01 + 000f2 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] + 000f6 48 2b c8 sub rcx, rax + 000f9 48 8b c1 mov rax, rcx + 000fc 48 ff c0 inc rax + 000ff 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR _Count$[rbp] - 000ce 48 8b 55 48 mov rdx, QWORD PTR _Erase_at$[rbp] - 000d2 48 03 d1 add rdx, rcx - 000d5 48 8b ca mov rcx, rdx - 000d8 4c 8b c0 mov r8, rax - 000db 48 8b d1 mov rdx, rcx - 000de 48 8b 4d 48 mov rcx, QWORD PTR _Erase_at$[rbp] - 000e2 e8 00 00 00 00 call ?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Char_traits::move + 00106 48 8b 55 48 mov rdx, QWORD PTR _Erase_at$[rbp] + 0010a 48 03 d1 add rdx, rcx + 0010d 48 8b ca mov rcx, rdx + 00110 4c 8b c0 mov r8, rax + 00113 48 8b d1 mov rdx, rcx + 00116 48 8b 4d 48 mov rcx, QWORD PTR _Erase_at$[rbp] + 0011a e8 00 00 00 00 call ?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::move -; 3468 : return *this; +; 3224 : return *this; - 000e7 48 8b 85 60 01 + 0011f 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] -; 3469 : } +; 3225 : } - 000ee 48 8d a5 48 01 + 00126 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 000f5 5f pop rdi - 000f6 5d pop rbp - 000f7 c3 ret 0 -?_Erase_noexcept@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV12@_K_K@Z ENDP ; std::basic_string,std::allocator >::_Erase_noexcept + 0012d 5f pop rdi + 0012e 5d pop rbp + 0012f c3 ret 0 +?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z ENDP ; std::basic_string,std::allocator >::erase _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -16732,7 +17897,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ PROC ; std::basic_string,std::allocator >::~basic_string,std::allocator >, COMDAT -; 3002 : _CONSTEXPR20_CONTAINER ~basic_string() noexcept { +; 2722 : ~basic_string() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16741,83 +17906,84 @@ $LN3: 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 1a 00 00 00 mov ecx, 26 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 68 + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 18 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 3003 : _Tidy_deallocate(); +; 2723 : _Tidy_deallocate(); - 00049 48 8b 8d 40 01 + 00047 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 e8 00 00 00 00 call ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_deallocate + 0004e e8 00 00 00 00 call ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_deallocate -; 3004 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 3005 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 2724 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 2725 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00055 48 8b 8d 40 01 + 00053 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal - 00061 48 8b d0 mov rdx, rax - 00064 48 8d 4d 24 lea rcx, QWORD PTR $S9$[rbp] - 00068 e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator - 0006d 48 8d 45 24 lea rax, QWORD PTR $S9$[rbp] - 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005a e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S9$[rbp] + 00066 e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S9$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 3006 : const auto _To_delete = _Mypair._Myval2._Myproxy; +; 2726 : const auto _To_delete = _Mypair._Myval2._Myproxy; - 00075 48 8b 85 40 01 + 00073 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007c 48 8b 00 mov rax, QWORD PTR [rax] - 0007f 48 89 45 48 mov QWORD PTR _To_delete$[rbp], rax + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 89 45 48 mov QWORD PTR _To_delete$[rbp], rax -; 3007 : _Mypair._Myval2._Myproxy = nullptr; +; 2727 : _Mypair._Myval2._Myproxy = nullptr; - 00083 48 8b 85 40 01 + 00081 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008a 48 c7 00 00 00 + 00088 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 3008 : _Delete_plain_internal(_Alproxy, _To_delete); +; 2728 : _Delete_plain_internal(_Alproxy, _To_delete); - 00091 48 8b 55 48 mov rdx, QWORD PTR _To_delete$[rbp] - 00095 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 00099 e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 0008f 48 8b 55 48 mov rdx, QWORD PTR _To_delete$[rbp] + 00093 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 00097 e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 3009 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 3010 : } +; 2729 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 2730 : } - 0009e 48 8b 85 40 01 + 0009c 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a5 48 8b c8 mov rcx, rax - 000a8 e8 00 00 00 00 call ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ - 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b1 48 8d 15 00 00 + 000a3 48 8b c8 mov rcx, rax + 000a6 e8 00 00 00 00 call ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ + 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000af 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcFrameData - 000b8 e8 00 00 00 00 call _RTC_CheckStackVars - 000bd 48 8b 8d 18 01 + 000b6 e8 00 00 00 00 call _RTC_CheckStackVars + 000bb 90 npad 1 + 000bc 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c4 48 33 cd xor rcx, rbp - 000c7 e8 00 00 00 00 call __security_check_cookie - 000cc 48 8d a5 28 01 + 000c3 48 33 cd xor rcx, rbp + 000c6 e8 00 00 00 00 call __security_check_cookie + 000cb 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000d3 5f pop rdi - 000d4 5d pop rbp - 000d5 c3 ret 0 + 000d2 5f pop rdi + 000d3 5d pop rbp + 000d4 c3 ret 0 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ENDP ; std::basic_string,std::allocator >::~basic_string,std::allocator > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -16827,7 +17993,7 @@ tv69 = 248 this$ = 288 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ PROC ; std::basic_string,std::allocator >::basic_string,std::allocator >, COMDAT -; 2467 : : _Mypair(_Zero_then_variadic_args_t{}) { +; 2287 : basic_string() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16836,52 +18002,58 @@ $LN3: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 20 01 + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 85 f8 00 + 0003d 48 89 85 f8 00 00 00 mov QWORD PTR tv69[rbp], rax - 0002d 0f b6 95 c4 00 + 00044 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 00034 48 8b 8d f8 00 + 0004b 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 0003b e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><> + 00052 e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><> -; 2468 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); +; 2288 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 00040 48 8b 85 20 01 + 00057 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 89 85 f8 00 + 0005e 48 89 85 f8 00 00 00 mov QWORD PTR tv86[rbp], rax - 0004e 48 8b 8d 20 01 + 00065 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00055 e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal - 0005a 48 8b d0 mov rdx, rax - 0005d 48 8d 8d e4 00 + 0006c e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 00071 48 8b d0 mov rdx, rax + 00074 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 00064 e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator - 00069 48 8b d0 mov rdx, rax - 0006c 48 8b 8d f8 00 + 0007b e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator + 00080 48 8b d0 mov rdx, rax + 00083 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv86[rbp] - 00073 e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > + 0008a e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > -; 2469 : _Tidy_init(); +; 2289 : _Tidy_init(); - 00078 48 8b 8d 20 01 + 0008f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007f e8 00 00 00 00 call ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_init + 00096 e8 00 00 00 00 call ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_init -; 2470 : } +; 2290 : } - 00084 48 8b 85 20 01 + 0009b 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008b 48 8d a5 08 01 + 000a2 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00092 5f pop rdi - 00093 5d pop rbp - 00094 c3 ret 0 + 000a9 5f pop rdi + 000aa 5d pop rbp + 000ab c3 ret 0 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ENDP ; std::basic_string,std::allocator >::basic_string,std::allocator > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -16896,26 +18068,32 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0001a 48 83 c0 08 add rax, 8 - 0001e 48 8b c8 mov rcx, rax - 00021 e8 00 00 00 00 call ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::~_Bxty - 00026 48 8d a5 c8 00 + 00031 48 83 c0 08 add rax, 8 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::~_Bxty + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::~_String_val > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_Bxty::~_Bxty, COMDAT -; 2348 : _CONSTEXPR20_CONTAINER ~_Bxty() noexcept {} // user-provided, for fancy pointers +; 2180 : ~_Bxty() noexcept {} // user-provided, for fancy pointers $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16924,24 +18102,31 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::_Bxty::~_Bxty _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_Bxty::_Bxty, COMDAT -; 2346 : _CONSTEXPR20_CONTAINER _Bxty() noexcept : _Ptr() {} // user-provided, for fancy pointers +; 2178 : _Bxty() {} // user-provided, for fancy pointers $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -16950,24 +18135,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 - 0002d 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::_Bxty::_Bxty _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z _TEXT SEGMENT $T1 = 200 @@ -16976,7 +18163,7 @@ _Off$ = 264 _Size$ = 272 ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z PROC ; std::_String_val >::_Clamp_suffix_size, COMDAT -; 2340 : _CONSTEXPR20_CONTAINER size_type _Clamp_suffix_size(const size_type _Off, const size_type _Size) const noexcept { +; 2172 : size_type _Clamp_suffix_size(const size_type _Off, const size_type _Size) const noexcept { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16987,44 +18174,50 @@ $LN3: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2341 : // trims _Size to the longest it can be assuming a string at/after _Off -; 2342 : return (_STD min)(_Size, _Mysize - _Off); +; 2173 : // trims _Size to the longest it can be assuming a string at/after _Off +; 2174 : return (_STD min)(_Size, _Mysize - _Off); - 00029 48 8b 85 00 01 + 00040 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8b 8d 08 01 + 00047 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Off$[rbp] - 00037 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0003b 48 2b c1 sub rax, rcx - 0003e 48 89 85 c8 00 + 0004e 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00052 48 2b c1 sub rax, rcx + 00055 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00045 48 8d 95 c8 00 + 0005c 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0004c 48 8d 8d 10 01 + 00063 48 8d 8d 10 01 00 00 lea rcx, QWORD PTR _Size$[rbp] - 00053 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min - 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0006a e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 0006f 48 8b 00 mov rax, QWORD PTR [rax] -; 2343 : } +; 2175 : } - 0005b 48 8d a5 e8 00 + 00072 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b c3 ret 0 ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z ENDP ; std::_String_val >::_Clamp_suffix_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ _TEXT SEGMENT ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ PROC ; std::_String_val >::_Xran, COMDAT -; 2336 : [[noreturn]] static void _Xran() { +; 2168 : [[noreturn]] static void _Xran() { $LN3: 00000 40 55 push rbp @@ -17032,35 +18225,39 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2337 : _Xout_of_range("invalid string position"); +; 2169 : _Xout_of_range("invalid string position"); - 0001b 48 8d 0d 00 00 + 0002a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@CFPLBAOH@invalid?5string?5position@ - 00022 e8 00 00 00 00 call ?_Xout_of_range@std@@YAXPEBD@Z ; std::_Xout_of_range + 00031 e8 00 00 00 00 call ?_Xout_of_range@std@@YAXPEBD@Z ; std::_Xout_of_range $LN2@Xran: -; 2338 : } +; 2170 : } - 00027 48 8d a5 c8 00 + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002e 5f pop rdi - 0002f 5d pop rbp - 00030 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ENDP ; std::_String_val >::_Xran _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z _TEXT SEGMENT this$ = 224 _Off$ = 232 ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z PROC ; std::_String_val >::_Check_offset, COMDAT -; 2322 : _CONSTEXPR20_CONTAINER void _Check_offset(const size_type _Off) const { +; 2156 : void _Check_offset(const size_type _Off) const { // checks whether _Off is in the bounds of [0, size()] $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17070,45 +18267,50 @@ $LN4: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 2323 : // checks whether _Off is in the bounds of [0, size()] -; 2324 : if (_Mysize < _Off) { - - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2157 : if (_Mysize < _Off) { + + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00042 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Off$[rbp] - 00032 48 39 48 18 cmp QWORD PTR [rax+24], rcx - 00036 73 05 jae SHORT $LN2@Check_offs + 00049 48 39 48 18 cmp QWORD PTR [rax+24], rcx + 0004d 73 05 jae SHORT $LN2@Check_offs -; 2325 : _Xran(); +; 2158 : _Xran(); - 00038 e8 00 00 00 00 call ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ; std::_String_val >::_Xran + 0004f e8 00 00 00 00 call ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ; std::_String_val >::_Xran $LN2@Check_offs: $LN3@Check_offs: -; 2326 : } -; 2327 : } +; 2159 : } +; 2160 : } - 0003d 48 8d a5 c8 00 + 00054 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 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ENDP ; std::_String_val >::_Check_offset _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ _TEXT SEGMENT tv66 = 192 this$ = 240 ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ PROC ; std::_String_val >::_Large_string_engaged, COMDAT -; 2313 : _CONSTEXPR20_CONTAINER bool _Large_string_engaged() const noexcept { +; 2152 : bool _Large_string_engaged() const noexcept { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17117,49 +18319,50 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 2314 : #ifdef __cpp_lib_constexpr_string -; 2315 : if (_STD is_constant_evaluated()) { -; 2316 : return true; -; 2317 : } -; 2318 : #endif // __cpp_lib_constexpr_string -; 2319 : return _BUF_SIZE <= _Myres; - - 0001f 48 8b 85 f0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2153 : return _BUF_SIZE <= _Myres; + + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 20 10 cmp QWORD PTR [rax+32], 16 - 0002b 72 0c jb SHORT $LN3@Large_stri - 0002d c7 85 c0 00 00 + 0003d 48 83 78 20 10 cmp QWORD PTR [rax+32], 16 + 00042 72 0c jb SHORT $LN3@Large_stri + 00044 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 - 00037 eb 0a jmp SHORT $LN4@Large_stri + 0004e eb 0a jmp SHORT $LN4@Large_stri $LN3@Large_stri: - 00039 c7 85 c0 00 00 + 00050 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 $LN4@Large_stri: - 00043 0f b6 85 c0 00 + 0005a 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv66[rbp] -; 2320 : } +; 2154 : } - 0004a 48 8d a5 d8 00 + 00061 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ENDP ; std::_String_val >::_Large_string_engaged _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ _TEXT SEGMENT _Result$ = 8 this$ = 256 ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ PROC ; std::_String_val >::_Myptr, COMDAT -; 2295 : _CONSTEXPR20_CONTAINER value_type* _Myptr() noexcept { +; 2134 : value_type* _Myptr() noexcept { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17168,181 +18371,114 @@ $LN4: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2296 : value_type* _Result = _Bx._Buf; +; 2135 : value_type* _Result = _Bx._Buf; - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 c0 08 add rax, 8 - 0002a 48 89 45 08 mov QWORD PTR _Result$[rbp], rax + 0003d 48 83 c0 08 add rax, 8 + 00041 48 89 45 08 mov QWORD PTR _Result$[rbp], rax -; 2297 : if (_Large_string_engaged()) { +; 2136 : if (_Large_string_engaged()) { - 0002e 48 8b 8d 00 01 + 00045 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged - 0003a 0f b6 c0 movzx eax, al - 0003d 85 c0 test eax, eax - 0003f 74 14 je SHORT $LN2@Myptr + 0004c e8 00 00 00 00 call ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged + 00051 0f b6 c0 movzx eax, al + 00054 85 c0 test eax, eax + 00056 74 14 je SHORT $LN2@Myptr -; 2298 : _Result = _Unfancy(_Bx._Ptr); +; 2137 : _Result = _Unfancy(_Bx._Ptr); - 00041 48 8b 85 00 01 + 00058 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 0004c e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy - 00051 48 89 45 08 mov QWORD PTR _Result$[rbp], rax + 0005f 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00063 e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 00068 48 89 45 08 mov QWORD PTR _Result$[rbp], rax $LN2@Myptr: -; 2299 : } -; 2300 : -; 2301 : return _Result; +; 2138 : } +; 2139 : +; 2140 : return _Result; - 00055 48 8b 45 08 mov rax, QWORD PTR _Result$[rbp] + 0006c 48 8b 45 08 mov rax, QWORD PTR _Result$[rbp] -; 2302 : } +; 2141 : } - 00059 48 8d a5 e8 00 + 00070 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00060 5f pop rdi - 00061 5d pop rbp - 00062 c3 ret 0 + 00077 5f pop rdi + 00078 5d pop rbp + 00079 c3 ret 0 ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ENDP ; std::_String_val >::_Myptr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_String_val >, COMDAT -; 2284 : _CONSTEXPR20_CONTAINER _String_val() noexcept : _Bx() {} +; 2124 : _String_val() : _Bx(), _Mysize(0), _Myres(0) {} -$LN3: +$LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 83 c0 08 add rax, 8 - 00036 48 8b c8 mov rcx, rax - 00039 e8 00 00 00 00 call ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::_Bxty - -; 2285 : -; 2286 : // length of internal buffer, [1, 16]: -; 2287 : static constexpr size_type _BUF_SIZE = 16 / sizeof(value_type) < 1 ? 1 : 16 / sizeof(value_type); -; 2288 : // roundup mask for allocated buffers, [0, 15]: -; 2289 : static constexpr size_type _ALLOC_MASK = sizeof(value_type) <= 1 ? 15 -; 2290 : : sizeof(value_type) <= 2 ? 7 -; 2291 : : sizeof(value_type) <= 4 ? 3 -; 2292 : : sizeof(value_type) <= 8 ? 1 -; 2293 : : 0; -; 2294 : -; 2295 : _CONSTEXPR20_CONTAINER value_type* _Myptr() noexcept { -; 2296 : value_type* _Result = _Bx._Buf; -; 2297 : if (_Large_string_engaged()) { -; 2298 : _Result = _Unfancy(_Bx._Ptr); -; 2299 : } -; 2300 : -; 2301 : return _Result; -; 2302 : } -; 2303 : -; 2304 : _CONSTEXPR20_CONTAINER const value_type* _Myptr() const noexcept { -; 2305 : const value_type* _Result = _Bx._Buf; -; 2306 : if (_Large_string_engaged()) { -; 2307 : _Result = _Unfancy(_Bx._Ptr); -; 2308 : } -; 2309 : -; 2310 : return _Result; -; 2311 : } -; 2312 : -; 2313 : _CONSTEXPR20_CONTAINER bool _Large_string_engaged() const noexcept { -; 2314 : #ifdef __cpp_lib_constexpr_string -; 2315 : if (_STD is_constant_evaluated()) { -; 2316 : return true; -; 2317 : } -; 2318 : #endif // __cpp_lib_constexpr_string -; 2319 : return _BUF_SIZE <= _Myres; -; 2320 : } -; 2321 : -; 2322 : _CONSTEXPR20_CONTAINER void _Check_offset(const size_type _Off) const { -; 2323 : // checks whether _Off is in the bounds of [0, size()] -; 2324 : if (_Mysize < _Off) { -; 2325 : _Xran(); -; 2326 : } -; 2327 : } -; 2328 : -; 2329 : _CONSTEXPR20_CONTAINER void _Check_offset_exclusive(const size_type _Off) const { -; 2330 : // checks whether _Off is in the bounds of [0, size()) -; 2331 : if (_Mysize <= _Off) { -; 2332 : _Xran(); -; 2333 : } -; 2334 : } -; 2335 : -; 2336 : [[noreturn]] static void _Xran() { -; 2337 : _Xout_of_range("invalid string position"); -; 2338 : } -; 2339 : -; 2340 : _CONSTEXPR20_CONTAINER size_type _Clamp_suffix_size(const size_type _Off, const size_type _Size) const noexcept { -; 2341 : // trims _Size to the longest it can be assuming a string at/after _Off -; 2342 : return (_STD min)(_Size, _Mysize - _Off); -; 2343 : } -; 2344 : -; 2345 : union _Bxty { // storage for small buffer or pointer to larger one -; 2346 : _CONSTEXPR20_CONTAINER _Bxty() noexcept : _Ptr() {} // user-provided, for fancy pointers -; 2347 : -; 2348 : _CONSTEXPR20_CONTAINER ~_Bxty() noexcept {} // user-provided, for fancy pointers -; 2349 : -; 2350 : value_type _Buf[_BUF_SIZE]; -; 2351 : pointer _Ptr; -; 2352 : char _Alias[_BUF_SIZE]; // TRANSITION, ABI: _Alias is preserved for binary compatibility (especially /clr) -; 2353 : } _Bx; -; 2354 : -; 2355 : size_type _Mysize = 0; // current length of string - - 0003e 48 8b 85 e0 00 + 00049 48 83 c0 08 add rax, 8 + 0004d 48 8b c8 mov rcx, rax + 00050 e8 00 00 00 00 call ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::_Bxty + 00055 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00045 48 c7 40 18 00 + 0005c 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 - -; 2356 : size_type _Myres = 0; // current storage reserved for string - - 0004d 48 8b 85 e0 00 + 00064 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00054 48 c7 40 20 00 + 0006b 48 c7 40 20 00 00 00 00 mov QWORD PTR [rax+32], 0 - -; 2284 : _CONSTEXPR20_CONTAINER _String_val() noexcept : _Bx() {} - - 0005c 48 8b 85 e0 00 + 00073 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00063 48 8d a5 c8 00 + 0007a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0006a 5f pop rdi - 0006b 5d pop rbp - 0006c c3 ret 0 + 00081 5f pop rdi + 00082 5d pop rbp + 00083 c3 ret 0 ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::_String_val > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z _TEXT SEGMENT __formal$ = 224 ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT -; 727 : _NODISCARD static _CONSTEXPR20_DYNALLOC size_type max_size(const _Alloc&) noexcept { +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17351,31 +18487,37 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 728 : return static_cast(-1) / sizeof(value_type); - - 0001f 48 c7 c0 ff ff + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 703 : return static_cast(-1) / sizeof(value_type); + + 00036 48 c7 c0 ff ff ff ff mov rax, -1 -; 729 : } +; 704 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z ENDP ; std::_Default_allocator_traits >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?_Xlen_string@std@@YAXXZ _TEXT SEGMENT ?_Xlen_string@std@@YAXXZ PROC ; std::_Xlen_string, COMDAT -; 2373 : [[noreturn]] inline void _Xlen_string() { +; 2200 : [[noreturn]] inline void _Xlen_string() { $LN3: 00000 40 55 push rbp @@ -17383,33 +18525,37 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 2374 : _Xlength_error("string too long"); +; 2201 : _Xlength_error("string too long"); - 0001b 48 8d 0d 00 00 + 0002a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@JFNIOLAK@string?5too?5long@ - 00022 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error + 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error $LN2@Xlen_strin: -; 2375 : } +; 2202 : } - 00027 48 8d a5 c8 00 + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002e 5f pop rdi - 0002f 5d pop rbp - 00030 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 ?_Xlen_string@std@@YAXXZ ENDP ; std::_Xlen_string _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ _TEXT SEGMENT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 477 : _NODISCARD static constexpr int_type eof() noexcept { +; 400 : _NODISCARD static constexpr int_type eof() noexcept { $LN3: 00000 40 55 push rbp @@ -17417,25 +18563,29 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 478 : return static_cast(EOF); +; 401 : return static_cast(EOF); - 0001b b8 ff ff ff ff mov eax, -1 + 0002a b8 ff ff ff ff mov eax, -1 -; 479 : } +; 402 : } - 00020 48 8d a5 c8 00 + 0002f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00027 5f pop rdi - 00028 5d pop rbp - 00029 c3 ret 0 + 00036 5f pop rdi + 00037 5d pop rbp + 00038 c3 ret 0 ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z _TEXT SEGMENT tv69 = 192 @@ -17443,7 +18593,7 @@ tv68 = 196 _Meta$ = 240 ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z PROC ; std::_Narrow_char_traits::not_eof, COMDAT -; 473 : _NODISCARD static constexpr int_type not_eof(const int_type& _Meta) noexcept { +; 396 : _NODISCARD static constexpr int_type not_eof(const int_type& _Meta) noexcept { $LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17452,53 +18602,59 @@ $LN7: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 474 : return _Meta != eof() ? _Meta : !eof(); - - 0001f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00024 48 8b 8d f0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 397 : return _Meta != eof() ? _Meta : !eof(); + + 00036 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0003b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _Meta$[rbp] - 0002b 39 01 cmp DWORD PTR [rcx], eax - 0002d 74 11 je SHORT $LN5@not_eof - 0002f 48 8b 85 f0 00 + 00042 39 01 cmp DWORD PTR [rcx], eax + 00044 74 11 je SHORT $LN5@not_eof + 00046 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Meta$[rbp] - 00036 8b 00 mov eax, DWORD PTR [rax] - 00038 89 85 c0 00 00 + 0004d 8b 00 mov eax, DWORD PTR [rax] + 0004f 89 85 c0 00 00 00 mov DWORD PTR tv69[rbp], eax - 0003e eb 2b jmp SHORT $LN6@not_eof + 00055 eb 2b jmp SHORT $LN6@not_eof $LN5@not_eof: - 00040 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00045 85 c0 test eax, eax - 00047 75 0c jne SHORT $LN3@not_eof - 00049 c7 85 c4 00 00 + 00057 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0005c 85 c0 test eax, eax + 0005e 75 0c jne SHORT $LN3@not_eof + 00060 c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 - 00053 eb 0a jmp SHORT $LN4@not_eof + 0006a eb 0a jmp SHORT $LN4@not_eof $LN3@not_eof: - 00055 c7 85 c4 00 00 + 0006c c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 $LN4@not_eof: - 0005f 8b 85 c4 00 00 + 00076 8b 85 c4 00 00 00 mov eax, DWORD PTR tv68[rbp] - 00065 89 85 c0 00 00 + 0007c 89 85 c0 00 00 00 mov DWORD PTR tv69[rbp], eax $LN6@not_eof: - 0006b 8b 85 c0 00 00 + 00082 8b 85 c0 00 00 00 mov eax, DWORD PTR tv69[rbp] -; 475 : } +; 398 : } - 00071 48 8d a5 d8 00 + 00088 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 c3 ret 0 ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ENDP ; std::_Narrow_char_traits::not_eof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z _TEXT SEGMENT tv65 = 192 @@ -17506,7 +18662,7 @@ _Left$ = 240 _Right$ = 248 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT -; 469 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17516,46 +18672,52 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 470 : return _Left == _Right; - - 00024 48 8b 85 f0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 393 : return _Left == _Right; + + 0003b 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 0002b 48 8b 8d f8 00 + 00042 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00032 8b 09 mov ecx, DWORD PTR [rcx] - 00034 39 08 cmp DWORD PTR [rax], ecx - 00036 75 0c jne SHORT $LN3@eq_int_typ - 00038 c7 85 c0 00 00 + 00049 8b 09 mov ecx, DWORD PTR [rcx] + 0004b 39 08 cmp DWORD PTR [rax], ecx + 0004d 75 0c jne SHORT $LN3@eq_int_typ + 0004f c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 - 00042 eb 0a jmp SHORT $LN4@eq_int_typ + 00059 eb 0a jmp SHORT $LN4@eq_int_typ $LN3@eq_int_typ: - 00044 c7 85 c0 00 00 + 0005b c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 $LN4@eq_int_typ: - 0004e 0f b6 85 c0 00 + 00065 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv65[rbp] -; 471 : } +; 394 : } - 00055 48 8d a5 d8 00 + 0006c 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z _TEXT SEGMENT _Ch$ = 224 ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z PROC ; std::_Narrow_char_traits::to_int_type, COMDAT -; 465 : _NODISCARD static constexpr int_type to_int_type(const _Elem& _Ch) noexcept { +; 388 : _NODISCARD static constexpr int_type to_int_type(const _Elem& _Ch) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17564,33 +18726,39 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 389 : return static_cast(_Ch); -; 466 : return static_cast(_Ch); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ch$[rbp] - 00026 0f b6 00 movzx eax, BYTE PTR [rax] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] -; 467 : } +; 390 : } - 00029 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ENDP ; std::_Narrow_char_traits::to_int_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z _TEXT SEGMENT _Meta$ = 224 ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z PROC ; std::_Narrow_char_traits::to_char_type, COMDAT -; 461 : _NODISCARD static constexpr _Elem to_char_type(const int_type& _Meta) noexcept { +; 384 : _NODISCARD static constexpr _Elem to_char_type(const int_type& _Meta) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17599,34 +18767,40 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 385 : return static_cast<_Elem>(_Meta); -; 462 : return static_cast<_Elem>(_Meta); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Meta$[rbp] - 00026 0f b6 00 movzx eax, BYTE PTR [rax] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] -; 463 : } +; 386 : } - 00029 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ENDP ; std::_Narrow_char_traits::to_char_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z _TEXT SEGMENT _Left$ = 224 _Right$ = 232 ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z PROC ; std::_Narrow_char_traits::assign, COMDAT -; 449 : static _CONSTEXPR17 void assign(_Elem& _Left, const _Elem& _Right) noexcept { +; 372 : static _CONSTEXPR17 void assign(_Elem& _Left, const _Elem& _Right) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17636,38 +18810,44 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 450 : _Left = _Right; - - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 373 : _Left = _Right; + + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 0002b 48 8b 8d e8 00 + 00042 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00032 0f b6 09 movzx ecx, BYTE PTR [rcx] - 00035 88 08 mov BYTE PTR [rax], cl + 00049 0f b6 09 movzx ecx, BYTE PTR [rcx] + 0004c 88 08 mov BYTE PTR [rax], cl -; 451 : } +; 374 : } - 00037 48 8d a5 c8 00 + 0004e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00055 5f pop rdi + 00056 5d pop rbp + 00057 c3 ret 0 ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ENDP ; std::_Narrow_char_traits::assign _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring -; COMDAT ?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z _TEXT SEGMENT _First1$ = 224 _First2$ = 232 _Count$ = 240 -?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Char_traits::move, COMDAT +?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Narrow_char_traits::move, COMDAT -; 80 : _In_reads_(_Count) const _Elem* const _First2, const size_t _Count) noexcept /* strengthened */ { +; 361 : const size_t _Count) noexcept /* strengthened */ { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17678,87 +18858,47 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 81 : // copy [_First2, _First2 + _Count) to [_First1, ...), allowing overlap -; 82 : #if _HAS_MEMCPY_MEMMOVE_INTRINSICS -; 83 : __builtin_memmove(_First1, _First2, _Count * sizeof(_Elem)); -; 84 : #else // ^^^ _HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ / vvv !_HAS_MEMCPY_MEMMOVE_INTRINSICS vvv -; 85 : #ifdef __cpp_lib_is_constant_evaluated -; 86 : if (_STD is_constant_evaluated()) { -; 87 : // dest: [_First1, _First1 + _Count) -; 88 : // src: [_First2, _First2 + _Count) -; 89 : // We need to handle overlapping ranges. -; 90 : // If _First1 is in the src range, we need a backward loop. -; 91 : // Otherwise, the forward loop works (even if the back of dest overlaps the front of src). -; 92 : -; 93 : if (_First1 == _First2) { -; 94 : return _First1; // Self-assignment; either loop would work, but returning immediately is faster. -; 95 : } -; 96 : -; 97 : // Usually, we would compare pointers with less-than, even though they could belong to different arrays. -; 98 : // However, we're not allowed to do that during constant evaluation, so we need a linear scan for equality. -; 99 : bool _Loop_forward = true; -; 100 : -; 101 : for (const _Elem* _Src = _First2; _Src != _First2 + _Count; ++_Src) { -; 102 : if (_First1 == _Src) { -; 103 : _Loop_forward = false; -; 104 : break; -; 105 : } -; 106 : } -; 107 : -; 108 : if (_Loop_forward) { -; 109 : for (size_t _Idx = 0; _Idx < _Count; ++_Idx) { -; 110 : _First1[_Idx] = _First2[_Idx]; -; 111 : } -; 112 : } else { -; 113 : for (size_t _Idx = 0; _Idx < _Count; ++_Idx) { -; 114 : _First1[_Count - 1 - _Idx] = _First2[_Count - 1 - _Idx]; -; 115 : } -; 116 : } -; 117 : -; 118 : return _First1; -; 119 : } -; 120 : #endif // __cpp_lib_is_constant_evaluated -; 121 : -; 122 : _CSTD memmove(_First1, _First2, _Count * sizeof(_Elem)); - - 00029 4c 8b 85 f0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 362 : // copy [_First2, _First2 + _Count) to [_First1, ...) +; 363 : return static_cast<_Elem*>(_CSTD memmove(_First1, _First2, _Count)); + + 00040 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR _Count$[rbp] - 00030 48 8b 95 e8 00 + 00047 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _First2$[rbp] - 00037 48 8b 8d e0 00 + 0004e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _First1$[rbp] - 0003e e8 00 00 00 00 call memmove - -; 123 : #endif // ^^^ !_HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ -; 124 : -; 125 : return _First1; - - 00043 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First1$[rbp] + 00055 e8 00 00 00 00 call memmove + 0005a 90 npad 1 -; 126 : } +; 364 : } - 0004a 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 -?move@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_Char_traits::move + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 +?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_Narrow_char_traits::move _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring -; COMDAT ?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z _TEXT SEGMENT _First1$ = 224 _First2$ = 232 _Count$ = 240 -?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Char_traits::copy, COMDAT +?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Narrow_char_traits::copy, COMDAT -; 49 : _In_reads_(_Count) const _Elem* const _First2, const size_t _Count) noexcept /* strengthened */ { +; 326 : const size_t _Count) noexcept /* strengthened */ { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17769,60 +18909,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 50 : // copy [_First2, _First2 + _Count) to [_First1, ...) -; 51 : #if _HAS_MEMCPY_MEMMOVE_INTRINSICS -; 52 : __builtin_memcpy(_First1, _First2, _Count * sizeof(_Elem)); -; 53 : #else // ^^^ _HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ / vvv !_HAS_MEMCPY_MEMMOVE_INTRINSICS vvv -; 54 : #ifdef __cpp_lib_is_constant_evaluated -; 55 : if (_STD is_constant_evaluated()) { -; 56 : // pre: [_First1, _First1 + _Count) and [_First2, _First2 + _Count) do not overlap; see LWG-3085 -; 57 : for (size_t _Idx = 0; _Idx < _Count; ++_Idx) { -; 58 : _First1[_Idx] = _First2[_Idx]; -; 59 : } -; 60 : -; 61 : return _First1; -; 62 : } -; 63 : #endif // __cpp_lib_is_constant_evaluated -; 64 : -; 65 : _CSTD memcpy(_First1, _First2, _Count * sizeof(_Elem)); + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 4c 8b 85 f0 00 +; 327 : // copy [_First2, _First2 + _Count) to [_First1, ...) +; 328 : return static_cast<_Elem*>(_CSTD memcpy(_First1, _First2, _Count)); + + 00040 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR _Count$[rbp] - 00030 48 8b 95 e8 00 + 00047 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _First2$[rbp] - 00037 48 8b 8d e0 00 + 0004e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _First1$[rbp] - 0003e e8 00 00 00 00 call memcpy - -; 66 : #endif // ^^^ !_HAS_MEMCPY_MEMMOVE_INTRINSICS ^^^ -; 67 : -; 68 : return _First1; + 00055 e8 00 00 00 00 call memcpy + 0005a 90 npad 1 - 00043 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First1$[rbp] +; 329 : } -; 69 : } - - 0004a 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 -?copy@?$_Char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_Char_traits::copy + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 +?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_Narrow_char_traits::copy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z PROC ; std::allocator::allocate, COMDAT -; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17832,29 +18958,35 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 00024 48 8b 8d e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$00@std@@YA_K_K@Z ; std::_Get_size_of_n<1> - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$00@std@@YA_K_K@Z ; std::_Get_size_of_n<1> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 840 : } +; 808 : } - 00038 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z _TEXT SEGMENT this$ = 224 @@ -17862,7 +18994,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z PROC ; std::allocator::deallocate, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17873,36 +19005,42 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 834 : // no overflow check on the following multiply; we assume _Allocate did that check -; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - 00029 48 8b 95 f0 00 + 00040 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Count$[rbp] - 00030 48 8b 8d e8 00 + 00047 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00037 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0004e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 836 : } +; 804 : } - 0003c 48 8d a5 c8 00 + 00053 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 + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0?$allocator@D@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$allocator@D@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 825 : constexpr allocator() noexcept {} +; 795 : constexpr allocator() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17911,29 +19049,35 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??0?$allocator@D@std@@QEAA@XZ ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z _TEXT SEGMENT $T1 = 200 -tv80 = 216 +tv78 = 216 _Obj$ = 256 <_Args_0>$ = 264 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z PROC ; std::_Construct_in_place, COMDAT -; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17943,244 +19087,171 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 8d 00 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 0002b e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter - 00038 48 8b d0 mov rdx, rax - 0003b b9 10 00 00 00 mov ecx, 16 - 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00045 48 89 85 c8 00 + 00042 e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof + 00047 48 8b d0 mov rdx, rax + 0004a b9 10 00 00 00 mov ecx, 16 + 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00054 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0004c 48 8b 8d 08 01 + 0005b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00053 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward - 00058 48 8b 00 mov rax, QWORD PTR [rax] - 0005b 48 89 85 d8 00 - 00 00 mov QWORD PTR tv80[rbp], rax - 00062 48 8b 95 d8 00 - 00 00 mov rdx, QWORD PTR tv80[rbp] - 00069 48 8b 8d c8 00 + 00062 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 89 85 d8 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 00071 48 8b 95 d8 00 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 00078 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00070 e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy - -; 152 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 153 : if (_STD is_constant_evaluated()) { -; 154 : _STD construct_at(_STD addressof(_Obj), _STD forward<_Types>(_Args)...); -; 155 : } else -; 156 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 157 : { -; 158 : ::new (_Voidify_iter(_STD addressof(_Obj))) _Ty(_STD forward<_Types>(_Args)...); -; 159 : } -; 160 : } - - 00075 48 8d a5 e8 00 + 0007f e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy + 00084 90 npad 1 + +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 00085 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0007c 5f pop rdi - 0007d 5d pop rbp - 0007e c3 ret 0 + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ENDP ; std::_Construct_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1095 : void _Orphan_all_locked() noexcept { +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { -$LN3: +$LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8b 05 00 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1096 : _Lockit _Lock(_LOCK_DEBUG); +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it - 00049 ba 03 00 00 00 mov edx, 3 - 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00052 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1097 : _Orphan_all_unlocked(); - - 00058 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked - -; 1098 : } - - 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00068 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData - 00079 e8 00 00 00 00 call _RTC_CheckStackVars - 0007e 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00085 48 33 cd xor rcx, rbp - 00088 e8 00 00 00 00 call __security_check_cookie - 0008d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00094 5f pop rdi - 00095 5d pop rbp - 00096 c3 ret 0 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -_TEXT SEGMENT -_Pnext$1 = 8 -this$ = 256 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + 00047 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00052 74 6b je SHORT $LN5@Orphan_all -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 1208 : _Lockit _Lock(_LOCK_DEBUG); -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00054 ba 03 00 00 00 mov edx, 3 + 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { - 0001f 48 8b 85 00 01 + 00063 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 83 c0 08 add rax, 8 - 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax - 00031 eb 12 jmp SHORT $LN4@Orphan_all + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 83 c0 08 add rax, 8 + 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax + 00075 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] - 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00042 48 89 01 mov QWORD PTR [rcx], rax + 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] + 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00086 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00049 48 83 38 00 cmp QWORD PTR [rax], 0 - 0004d 74 10 je SHORT $LN3@Orphan_all + 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00091 74 10 je SHORT $LN3@Orphan_all -; 1222 : _Pnext->_Myproxy = nullptr; +; 1211 : (*_Pnext)->_Myproxy = nullptr; - 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 c7 00 00 00 + 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1223 : } +; 1212 : } - 0005d eb d4 jmp SHORT $LN2@Orphan_all + 000a1 eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1224 : _Myproxy->_Myfirstiter = nullptr; +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; - 0005f 48 8b 85 00 01 + 000a3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 00 mov rax, QWORD PTR [rax] - 00069 48 c7 40 08 00 + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1225 : } - - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ -_TEXT SEGMENT -this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT - -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1229 : if (_Myproxy) { // proxy allocated, drain it +; 1215 : } - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 0c je SHORT $LN2@Orphan_all - -; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1231 : if (_STD is_constant_evaluated()) { -; 1232 : _Orphan_all_unlocked(); -; 1233 : } else -; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1235 : { -; 1236 : _Orphan_all_locked(); - - 0002c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked -$LN2@Orphan_all: + 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000b9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN5@Orphan_all: -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } - 00038 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData + 000ca e8 00 00 00 00 call _RTC_CheckStackVars + 000cf 90 npad 1 + 000d0 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d7 48 33 cd xor rcx, rbp + 000da e8 00 00 00 00 call __security_check_cookie + 000df 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e6 5f pop rdi + 000e7 5d pop rbp + 000e8 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0_Container_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT -; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; +; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18189,61 +19260,37 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1065 : -; 1066 : _Container_base12(const _Container_base12&) = delete; -; 1067 : _Container_base12& operator=(const _Container_base12&) = delete; -; 1068 : -; 1069 : _CONSTEXPR20_CONTAINER void _Orphan_all() noexcept; -; 1070 : _CONSTEXPR20_CONTAINER void _Swap_proxy_and_iterators(_Container_base12&) noexcept; -; 1071 : -; 1072 : template -; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { -; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); -; 1075 : _Construct_in_place(*_New_proxy, this); -; 1076 : _Myproxy = _New_proxy; -; 1077 : _New_proxy->_Mycont = this; -; 1078 : } -; 1079 : -; 1080 : template -; 1081 : _CONSTEXPR20_CONTAINER void _Reload_proxy(_Alloc&& _Old_alloc, _Alloc&& _New_alloc) { -; 1082 : // pre: no iterators refer to the existing proxy -; 1083 : _Container_proxy* const _New_proxy = _Unfancy(_New_alloc.allocate(1)); -; 1084 : _Construct_in_place(*_New_proxy, this); -; 1085 : _New_proxy->_Mycont = this; -; 1086 : _Delete_plain_internal(_Old_alloc, _STD exchange(_Myproxy, _New_proxy)); -; 1087 : } -; 1088 : -; 1089 : _Container_proxy* _Myproxy = nullptr; - - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 c7 00 00 00 + 0003d 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; - - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ??0_Container_base12@std@@QEAA@XZ ENDP ; std::_Container_base12::_Container_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 _Mycont_$ = 232 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z PROC ; std::_Container_proxy::_Container_proxy, COMDAT -; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} +; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18253,37 +19300,35 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00042 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] - 00032 48 89 08 mov QWORD PTR [rax], rcx - -; 1057 : -; 1058 : const _Container_base12* _Mycont = nullptr; -; 1059 : mutable _Iterator_base12* _Myfirstiter = nullptr; - - 00035 48 8b 85 e0 00 + 00049 48 89 08 mov QWORD PTR [rax], rcx + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 c7 40 08 00 + 00053 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - -; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} - - 00044 48 8b 85 e0 00 + 0005b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d a5 c8 00 + 00062 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ENDP ; std::_Container_proxy::_Container_proxy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -18294,7 +19339,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18304,196 +19349,202 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 155 : _Bytes += _Non_user_size; - - 00024 48 8b 85 68 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; + + 0003b 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 83 c0 2f add rax, 47 ; 0000002fH - 00032 48 8b 8d 68 01 + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00039 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 89 01 mov QWORD PTR [rcx], rax -; 156 : -; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 0003c 48 8b 85 60 01 + 00053 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 0004a b8 08 00 00 00 mov eax, 8 - 0004f 48 6b c0 ff imul rax, rax, -1 - 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 00061 b8 08 00 00 00 mov eax, 8 + 00066 48 6b c0 ff imul rax, rax, -1 + 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 159 : -; 160 : // If the following asserts, it likely means that we are performing -; 161 : // an aligned delete on memory coming from an unaligned allocation. -; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); +; 138 : +; 139 : // If the following asserts, it likely means that we are performing +; 140 : // an aligned delete on memory coming from an unaligned allocation. +; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - 0005f b8 08 00 00 00 mov eax, 8 - 00064 48 6b c0 fe imul rax, rax, -2 - 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006c 48 ba fa fa fa + 00076 b8 08 00 00 00 mov eax, 8 + 0007b 48 6b c0 fe imul rax, rax, -2 + 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00083 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 0007a 75 02 jne SHORT $LN14@Adjust_man - 0007c eb 77 jmp SHORT $LN15@Adjust_man + 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 00091 75 02 jne SHORT $LN14@Adjust_man + 00093 eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 0007e 8b 05 00 00 00 + 00095 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00084 83 c0 09 add eax, 9 - 00087 48 8d 0d 00 00 + 0009b 83 c0 09 add eax, 9 + 0009e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00093 48 8d 0d 00 00 + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0009f 45 33 c9 xor r9d, r9d - 000a2 44 8b c0 mov r8d, eax - 000a5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000ac b9 02 00 00 00 mov ecx, 2 - 000b1 ff 15 00 00 00 + 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 000b6 45 33 c9 xor r9d, r9d + 000b9 44 8b c0 mov r8d, eax + 000bc 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000c3 b9 02 00 00 00 mov ecx, 2 + 000c8 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000b7 83 f8 01 cmp eax, 1 - 000ba 75 03 jne SHORT $LN19@Adjust_man - 000bc cc int 3 - 000bd 33 c0 xor eax, eax + 000ce 83 f8 01 cmp eax, 1 + 000d1 75 03 jne SHORT $LN19@Adjust_man + 000d3 cc int 3 + 000d4 33 c0 xor eax, eax $LN19@Adjust_man: - 000bf 8b 05 00 00 00 + 000d6 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000c5 83 c0 09 add eax, 9 - 000c8 48 c7 44 24 20 + 000dc 83 c0 09 add eax, 9 + 000df 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000d1 44 8b c8 mov r9d, eax - 000d4 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000db 48 8d 15 00 00 + 000e8 44 8b c8 mov r9d, eax + 000eb 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000f2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000e2 48 8d 0d 00 00 + 000f9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000e9 ff 15 00 00 00 + 00100 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000ef 33 c0 xor eax, eax - 000f1 85 c0 test eax, eax - 000f3 75 89 jne SHORT $LN7@Adjust_man + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 000f5 33 c0 xor eax, eax - 000f7 85 c0 test eax, eax - 000f9 0f 85 60 ff ff + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 163 : -; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 165 : // in range [_Min_back_shift, _Non_user_size] -; 166 : #ifdef _DEBUG -; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 142 : +; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 144 : // in range [_Min_back_shift, _Non_user_size] +; 145 : #ifdef _DEBUG +; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 000ff 48 c7 45 48 10 + 00116 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 170 : #endif // _DEBUG -; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 149 : #endif // _DEBUG +; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 00107 48 8b 85 60 01 + 0011e 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00112 48 8b 00 mov rax, QWORD PTR [rax] - 00115 48 2b c1 sub rax, rcx - 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00129 48 8b 00 mov rax, QWORD PTR [rax] + 0012c 48 2b c1 sub rax, rcx + 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00121 72 09 jb SHORT $LN16@Adjust_man - 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 00128 77 02 ja SHORT $LN16@Adjust_man - 0012a eb 77 jmp SHORT $LN17@Adjust_man + 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00138 72 09 jb SHORT $LN16@Adjust_man + 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 0013f 77 02 ja SHORT $LN16@Adjust_man + 00141 eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 0012c 8b 05 00 00 00 + 00143 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00132 83 c0 13 add eax, 19 - 00135 48 8d 0d 00 00 + 00149 83 c0 13 add eax, 19 + 0014c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00141 48 8d 0d 00 00 + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0014d 45 33 c9 xor r9d, r9d - 00150 44 8b c0 mov r8d, eax - 00153 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0015a b9 02 00 00 00 mov ecx, 2 - 0015f ff 15 00 00 00 + 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00164 45 33 c9 xor r9d, r9d + 00167 44 8b c0 mov r8d, eax + 0016a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00171 b9 02 00 00 00 mov ecx, 2 + 00176 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 00165 83 f8 01 cmp eax, 1 - 00168 75 03 jne SHORT $LN20@Adjust_man - 0016a cc int 3 - 0016b 33 c0 xor eax, eax + 0017c 83 f8 01 cmp eax, 1 + 0017f 75 03 jne SHORT $LN20@Adjust_man + 00181 cc int 3 + 00182 33 c0 xor eax, eax $LN20@Adjust_man: - 0016d 8b 05 00 00 00 + 00184 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00173 83 c0 13 add eax, 19 - 00176 48 c7 44 24 20 + 0018a 83 c0 13 add eax, 19 + 0018d 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0017f 44 8b c8 mov r9d, eax - 00182 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00189 48 8d 15 00 00 + 00196 44 8b c8 mov r9d, eax + 00199 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 001a0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 00190 48 8d 0d 00 00 + 001a7 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00197 ff 15 00 00 00 + 001ae ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 0019d 33 c0 xor eax, eax - 0019f 85 c0 test eax, eax - 001a1 75 89 jne SHORT $LN13@Adjust_man + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001a3 33 c0 xor eax, eax - 001a5 85 c0 test eax, eax - 001a7 0f 85 6f ff ff + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 152 : _Ptr = reinterpret_cast(_Ptr_container); - 001ad 48 8b 85 60 01 + 001c4 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001b8 48 89 08 mov QWORD PTR [rax], rcx + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx -; 174 : } +; 153 : } - 001bb 48 8d a5 48 01 + 001d2 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001c2 5f pop rdi - 001c3 5d pop rbp - 001c4 c3 ret 0 + 001d9 5f pop rdi + 001da 5d pop rbp + 001db c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z _TEXT SEGMENT _Bytes$ = 224 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z PROC ; std::_Default_allocate_traits::_Allocate, COMDAT -; 84 : void* _Allocate(const size_t _Bytes) { +; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18502,32 +19553,38 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 85 : return ::operator new(_Bytes); - - 0001f 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 77 : return ::operator new(_Bytes); + + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00026 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new -; 86 : } +; 78 : } - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ENDP ; std::_Default_allocate_traits::_Allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\limits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\limits ; COMDAT ?max@?$numeric_limits@_J@std@@SA_JXZ _TEXT SEGMENT ?max@?$numeric_limits@_J@std@@SA_JXZ PROC ; std::numeric_limits<__int64>::max, COMDAT -; 647 : _NODISCARD static constexpr long long(max)() noexcept { +; 645 : _NODISCARD static constexpr long long(max)() noexcept { $LN3: 00000 40 55 push rbp @@ -18535,26 +19592,30 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__44860E64_limits - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F2870A2C_limits + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 648 : return LLONG_MAX; +; 646 : return LLONG_MAX; - 0001b 48 b8 ff ff ff + 0002a 48 b8 ff ff ff ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 649 : } +; 647 : } - 00025 48 8d a5 c8 00 + 00034 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002c 5f pop rdi - 0002d 5d pop rbp - 0002e c3 ret 0 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\exception +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception ; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -18568,29 +19629,33 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__89F7010A_exception - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E4152856_exception + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 321 : _THROW(bad_array_new_length{}); - 0001b 48 8d 8d c8 00 + 0002a 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00022 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length - 00027 48 8d 15 00 00 + 00031 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length + 00036 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ - 0002e 48 8d 8d c8 00 + 0003d 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00035 e8 00 00 00 00 call _CxxThrowException + 00044 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 322 : } - 0003a 48 8d a5 f8 00 + 00049 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 ?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18607,26 +19672,32 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18643,23 +19714,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18674,18 +19751,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 ??1bad_array_new_length@std@@UEAA@XZ ENDP ; std::bad_array_new_length::~bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0bad_array_new_length@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -18700,35 +19783,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 140 : : bad_alloc("bad array new length") - 0001f 48 8d 15 00 00 + 00036 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ - 00026 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002d e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc ; 141 : { - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 8d 0d 00 00 + 00050 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00040 48 89 08 mov QWORD PTR [rax], rcx + 00057 48 89 08 mov QWORD PTR [rax], rcx ; 142 : } - 00043 48 8b 85 e0 00 + 0005a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004a 48 8d a5 c8 00 + 00061 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ??0bad_array_new_length@std@@QEAA@XZ ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18745,26 +19834,32 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18781,23 +19876,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18812,18 +19913,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 ??1bad_alloc@std@@UEAA@XZ ENDP ; std::bad_alloc::~bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z _TEXT SEGMENT this$ = 224 @@ -18840,37 +19947,43 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 129 : : exception(_Message, 1) - 00024 41 b8 01 00 00 + 0003b 41 b8 01 00 00 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Message$[rbp] - 00031 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00038 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception ; 130 : { - 0003d 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00044 48 8d 0d 00 00 + 0005b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 0004b 48 89 08 mov QWORD PTR [rax], rcx + 00062 48 89 08 mov QWORD PTR [rax], rcx ; 131 : } - 0004e 48 8b 85 e0 00 + 00065 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8d a5 c8 00 + 0006c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18887,30 +20000,36 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gexception@std@@UEAAPEAXI@Z ENDP ; std::exception::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ?what@exception@std@@UEBAPEBDXZ _TEXT SEGMENT tv69 = 192 @@ -18926,42 +20045,48 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 95 : return _Data._What ? _Data._What : "Unknown exception"; - 0001f 48 8b 85 f0 00 + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0002b 74 14 je SHORT $LN3@what - 0002d 48 8b 85 f0 00 + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 14 je SHORT $LN3@what + 00044 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00038 48 89 85 c0 00 + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0003f eb 0e jmp SHORT $LN4@what + 00056 eb 0e jmp SHORT $LN4@what $LN3@what: - 00041 48 8d 05 00 00 + 00058 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ - 00048 48 89 85 c0 00 + 0005f 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax $LN4@what: - 0004f 48 8b 85 c0 00 + 00066 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv69[rbp] ; 96 : } - 00056 48 8d a5 d8 00 + 0006d 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005d 5f pop rdi - 0005e 5d pop rbp - 0005f c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ?what@exception@std@@UEBAPEBDXZ ENDP ; std::exception::what _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -18976,34 +20101,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d 0d 00 00 + 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 0002d 48 89 08 mov QWORD PTR [rax], rcx + 00044 48 89 08 mov QWORD PTR [rax], rcx ; 90 : __std_exception_destroy(&_Data); - 00030 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 83 c0 08 add rax, 8 - 0003b 48 8b c8 mov rcx, rax - 0003e e8 00 00 00 00 call __std_exception_destroy + 0004e 48 83 c0 08 add rax, 8 + 00052 48 8b c8 mov rcx, rax + 00055 e8 00 00 00 00 call __std_exception_destroy + 0005a 90 npad 1 ; 91 : } - 00043 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 @@ -19020,49 +20152,55 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d 0d 00 00 + 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00032 48 89 08 mov QWORD PTR [rax], rcx + 00049 48 89 08 mov QWORD PTR [rax], rcx ; 71 : : _Data() - 00035 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 83 c0 08 add rax, 8 - 00040 48 8b f8 mov rdi, rax - 00043 33 c0 xor eax, eax - 00045 b9 10 00 00 00 mov ecx, 16 - 0004a f3 aa rep stosb + 00053 48 83 c0 08 add rax, 8 + 00057 48 8b f8 mov rdi, rax + 0005a 33 c0 xor eax, eax + 0005c b9 10 00 00 00 mov ecx, 16 + 00061 f3 aa rep stosb ; 73 : __std_exception_copy(&_Other._Data, &_Data); - 0004c 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 83 c0 08 add rax, 8 - 00057 48 8b 8d e8 00 + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Other$[rbp] - 0005e 48 83 c1 08 add rcx, 8 - 00062 48 8b d0 mov rdx, rax - 00065 e8 00 00 00 00 call __std_exception_copy + 00075 48 83 c1 08 add rcx, 8 + 00079 48 8b d0 mov rdx, rax + 0007c e8 00 00 00 00 call __std_exception_copy ; 74 : } - 0006a 48 8b 85 e0 00 + 00081 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00071 48 8d a5 c8 00 + 00088 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 c3 ret 0 ??0exception@std@@QEAA@AEBV01@@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@QEBDH@Z _TEXT SEGMENT this$ = 224 @@ -19081,42 +20219,48 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 85 e0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8d 0d 00 00 + 00047 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00037 48 89 08 mov QWORD PTR [rax], rcx + 0004e 48 89 08 mov QWORD PTR [rax], rcx ; 65 : : _Data() - 0003a 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00041 48 83 c0 08 add rax, 8 - 00045 48 8b f8 mov rdi, rax - 00048 33 c0 xor eax, eax - 0004a b9 10 00 00 00 mov ecx, 16 - 0004f f3 aa rep stosb + 00058 48 83 c0 08 add rax, 8 + 0005c 48 8b f8 mov rdi, rax + 0005f 33 c0 xor eax, eax + 00061 b9 10 00 00 00 mov ecx, 16 + 00066 f3 aa rep stosb ; 67 : _Data._What = _Message; - 00051 48 8b 85 e0 00 + 00068 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 8b 8d e8 00 + 0006f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Message$[rbp] - 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 68 : } - 00063 48 8b 85 e0 00 + 0007a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8d a5 c8 00 + 00081 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 00088 5f pop rdi + 00089 5d pop rbp + 0008a c3 ret 0 ??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19139,34 +20283,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_new.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h ; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT _Size$ = 224 @@ -19183,23 +20333,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__02E23235_vcruntime_new@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 168 : (void)_Size; ; 169 : return _Where; - 00024 48 8b 85 e8 00 + 0003b 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Where$[rbp] ; 170 : } - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19226,75 +20382,75 @@ $LN3: 00016 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 1e 00 00 00 mov ecx, 30 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 78 + 00022 48 8b fc mov rdi, rsp + 00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 78 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 + 0004a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00058 48 8d 85 58 01 + 00056 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00067 48 89 85 18 01 + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006e b9 01 00 00 00 mov ecx, 1 - 00073 ff 15 00 00 00 + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00079 48 89 85 20 01 + 00077 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 00080 4c 8b 8d 18 01 + 0007e 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00087 45 33 c0 xor r8d, r8d - 0008a 48 8b 95 50 01 + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 00091 48 8b 8d 20 01 + 0008f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00098 e8 00 00 00 00 call _vfprintf_l - 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 000a0 48 c7 45 28 00 + 0009e 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000ab 8b f8 mov edi, eax - 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b1 48 8d 15 00 00 + 000a9 8b f8 mov edi, eax + 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000af 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b8 e8 00 00 00 00 call _RTC_CheckStackVars - 000bd 8b c7 mov eax, edi - 000bf 48 8b 8d 28 01 + 000b6 e8 00 00 00 00 call _RTC_CheckStackVars + 000bb 8b c7 mov eax, edi + 000bd 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c6 48 33 cd xor rcx, rbp - 000c9 e8 00 00 00 00 call __security_check_cookie - 000ce 48 8d a5 38 01 + 000c4 48 33 cd xor rcx, rbp + 000c7 e8 00 00 00 00 call __security_check_cookie + 000cc 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19319,33 +20475,39 @@ $LN3: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 + 00022 48 8b fc mov rdi, rsp + 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 00039 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 0002e e8 00 00 00 00 call __local_stdio_printf_options - 00033 48 8b 8d f8 00 + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0003f 4c 8b 8d f0 00 + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 00046 4c 8b 85 e8 00 + 0005d 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 0004d 48 8b 95 e0 00 + 00064 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 0005d 48 8d a5 c8 00 + 00074 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00064 5f pop rdi - 00065 5d pop rbp - 00066 c3 ret 0 + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19362,27 +20524,31 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0001b 48 8d 05 00 00 + 0002a 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } - 00022 48 8d a5 c8 00 + 00031 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -19399,18 +20565,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -19425,18 +20598,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -19451,18 +20631,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -19475,14 +20662,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/NativeCode.cod b/CodeVirtualizer/x64/Debug/NativeCode.cod index 0d883a4..cd096e8 100644 --- a/CodeVirtualizer/x64/Debug/NativeCode.cod +++ b/CodeVirtualizer/x64/Debug/NativeCode.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,59 +33,58 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__0A045E7B_NativeCode@h DB 01H -__092B7E84_vector DB 01H -__337731E1_NativeCode@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__FAD76A5B_iomanip DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__C7F780C9_NativeCode@h DB 01H +__BF2A7ACC_vector DB 01H +__84EFCFFB_NativeCode@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +__8266A2FD_iomanip DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -116,19 +115,13 @@ PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_ma PUBLIC ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy PUBLIC ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -PUBLIC ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked -PUBLIC ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked PUBLIC ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 PUBLIC ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 PUBLIC ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= PUBLIC ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 PUBLIC ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt -PUBLIC ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 PUBLIC ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont -PUBLIC ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_unlocked -PUBLIC ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked -PUBLIC ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked -PUBLIC ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_locked +PUBLIC ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me PUBLIC ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place PUBLIC ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type PUBLIC ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof @@ -138,6 +131,31 @@ 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 ??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ ; std::allocator >::allocator > +PUBLIC ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate +PUBLIC ?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::allocate +PUBLIC ?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z ; std::_Default_allocator_traits > >::max_size +PUBLIC ??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ ; std::vector,std::allocator > >::vector,std::allocator > > +PUBLIC ??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ ; std::vector,std::allocator > >::~vector,std::allocator > > +PUBLIC ?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ ; std::vector,std::allocator > >::clear +PUBLIC ?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_begin +PUBLIC ?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_end +PUBLIC ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::max_size +PUBLIC ?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::capacity +PUBLIC ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ; std::vector,std::allocator > >::_Umove +PUBLIC ?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z ; std::vector,std::allocator > >::_Umove_if_noexcept1 +PUBLIC ?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z ; std::vector,std::allocator > >::_Umove_if_noexcept +PUBLIC ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy +PUBLIC ?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z ; std::vector,std::allocator > >::_Calculate_growth +PUBLIC ?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z ; std::vector,std::allocator > >::_Change_array +PUBLIC ?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ ; std::vector,std::allocator > >::_Tidy +PUBLIC ?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ ; std::vector,std::allocator > >::_Xlength +PUBLIC ?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Orphan_range +PUBLIC ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal +PUBLIC ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal +PUBLIC ??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Vector_val > >::_Vector_val > > +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first PUBLIC ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK PUBLIC ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK PUBLIC ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK @@ -164,8 +182,6 @@ PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector< PUBLIC ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth PUBLIC ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array PUBLIC ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength -PUBLIC ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_unlocked -PUBLIC ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_locked PUBLIC ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal @@ -194,6 +210,7 @@ PUBLIC ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel PUBLIC ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps PUBLIC ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble PUBLIC ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble +PUBLIC ?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z ; NcAssembleEx PUBLIC ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock PUBLIC ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint PUBLIC ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcPrintBlockCode @@ -204,29 +221,40 @@ PUBLIC ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@ PUBLIC ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range PUBLIC ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to PUBLIC ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > -PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > +PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > PUBLIC ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped PUBLIC ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_iterator > >::~_Vector_iterator > > -PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > +PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_iterator > >::_Vector_iterator > > PUBLIC ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> +PUBLIC ??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::vector,std::allocator > >::emplace_back +PUBLIC ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ; std::forward +PUBLIC ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ; std::forward +PUBLIC ??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity +PUBLIC ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > +PUBLIC ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::_Default_allocator_traits > >::construct,int (__cdecl*const &)(_NATIVE_CODE_LINK *,unsigned char *,void *),void * const &> +PUBLIC ??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::vector,std::allocator > >::_Emplace_reallocate PUBLIC ??$log2@H$0A@@@YANH@Z ; log2 +PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > PUBLIC ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> PUBLIC ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill PUBLIC ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj PUBLIC ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> -PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > PUBLIC ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > -PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back +PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back PUBLIC ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward -PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity +PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity PUBLIC ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy PUBLIC ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct PUBLIC ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate PUBLIC ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate PUBLIC ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator +PUBLIC ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange +PUBLIC ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > PUBLIC ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> PUBLIC ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > +PUBLIC ??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::allocator::allocator > +PUBLIC ??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Compressed_pair >,std::_Vector_val > >,1><> PUBLIC ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base PUBLIC ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base PUBLIC ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry @@ -235,35 +263,37 @@ PUBLIC ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::ba PUBLIC ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min PUBLIC ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy PUBLIC ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > +PUBLIC ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Destroy_range > > PUBLIC ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> PUBLIC ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> PUBLIC ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof -PUBLIC ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter PUBLIC ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward PUBLIC ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > -PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> -PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> +PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> +PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> PUBLIC ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked PUBLIC ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> -PUBLIC ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter +PUBLIC ??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::pair::pair +PUBLIC ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > PUBLIC ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned PUBLIC ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > PUBLIC ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> +PUBLIC ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Uninitialized_move *,std::allocator > > PUBLIC ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 -PUBLIC ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ; std::forward -PUBLIC ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped -PUBLIC ??$move@AEAK@std@@YA$$QEAKAEAK@Z ; std::move +PUBLIC ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate +PUBLIC ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped PUBLIC ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove -PUBLIC ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > -PUBLIC ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > -PUBLIC ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::_Uninitialized_backout_al >::_Release -PUBLIC ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z ; std::_Uninitialized_backout_al >::__autoclassinit2 -PUBLIC ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ; std::_Uninitialized_backout_al >::_Emplace_back +PUBLIC ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ; std::_Get_unwrapped * const &> +PUBLIC ??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::move &> +PUBLIC ??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > > +PUBLIC ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > +PUBLIC ?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::_Uninitialized_backout_al > >::_Release +PUBLIC ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z ; std::_Uninitialized_backout_al > >::__autoclassinit2 +PUBLIC ??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z ; std::_Uninitialized_backout_al > >::_Emplace_back > PUBLIC ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy -PUBLIC ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address -PUBLIC ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward -PUBLIC ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ; std::_Default_allocator_traits >::construct +PUBLIC ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::forward > +PUBLIC ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z ; std::_Default_allocator_traits > >::construct,std::pair > PUBLIC __JustMyCode_Default PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage PUBLIC ??_7exception@std@@6B@ ; std::exception::`vftable' @@ -282,16 +312,16 @@ PUBLIC _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' PUBLIC ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ ; `string' -PUBLIC ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `string' +PUBLIC ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `string' PUBLIC ??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ ; `string' -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ ; `string' PUBLIC ??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ ; `string' PUBLIC ??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ ; `string' @@ -300,8 +330,8 @@ PUBLIC ??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ ; `string' PUBLIC ??_C@_03OFAPEBGM@?$CFs?6@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ ; `string' -PUBLIC ??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ ; `string' PUBLIC ??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' @@ -412,409 +442,523 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+44 + DD imagerel $LN3+59 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+103 + DD imagerel $LN3+126 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+216 + DD imagerel $LN3+214 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 - DD imagerel $LN3+47 + DD imagerel $LN3+62 DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 - DD imagerel $LN3+116 + DD imagerel $LN3+139 DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+123 + DD imagerel $LN3+146 DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+101 DD imagerel $unwind$??1exception@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 - DD imagerel $LN5+96 + DD imagerel $LN5+119 DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+118 DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+84 + DD imagerel $LN3+107 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+68 + DD imagerel $LN3+83 DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+453 + DD imagerel $LN21+476 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+85 DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+66 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 - DD imagerel $LN6+123 - DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+151 - DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??0_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$??0_Iterator_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD imagerel $LN3 - DD imagerel $LN3+101 + DD imagerel $LN3+124 DD imagerel $unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD imagerel $LN6 - DD imagerel $LN6+127 + DD imagerel $LN6+229 DD imagerel $unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+150 DD imagerel $unwind$??1_Iterator_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD imagerel $LN6 - DD imagerel $LN6+116 + DD imagerel $LN6+282 DD imagerel $unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+66 - DD imagerel $unwind$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD imagerel $LN5 - DD imagerel $LN5+94 + DD imagerel $LN5+117 DD imagerel $unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD imagerel $LN4 - DD imagerel $LN4+128 - DD imagerel $unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD imagerel $LN3 - DD imagerel $LN3+163 - DD imagerel $unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD imagerel $LN14 - DD imagerel $LN14+267 - DD imagerel $unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+151 - DD imagerel $unwind$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ +$pdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN15 + DD imagerel $LN15+299 + DD imagerel $unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD imagerel $LN3 - DD imagerel $LN3+127 + DD imagerel $LN3+143 DD imagerel $unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 - DD imagerel $LN5+95 + DD imagerel $LN5+118 DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 - DD imagerel $LN3+42 + DD imagerel $LN3+57 DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_iform_to_iclass DD imagerel xed_iform_to_iclass - DD imagerel xed_iform_to_iclass+77 + DD imagerel xed_iform_to_iclass+99 DD imagerel $unwind$xed_iform_to_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_operand_type DD imagerel xed_operand_type - DD imagerel xed_operand_type+52 + DD imagerel xed_operand_type+75 DD imagerel $unwind$xed_operand_type pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_iform_enum DD imagerel xed_inst_iform_enum - DD imagerel xed_inst_iform_enum+52 + DD imagerel xed_inst_iform_enum+75 DD imagerel $unwind$xed_inst_iform_enum pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_iclass DD imagerel xed_inst_iclass - DD imagerel xed_inst_iclass+60 + DD imagerel xed_inst_iclass+83 DD imagerel $unwind$xed_inst_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_category DD imagerel xed_inst_category - DD imagerel xed_inst_category+60 + DD imagerel xed_inst_category+83 DD imagerel $unwind$xed_inst_category pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_noperands DD imagerel xed_inst_noperands - DD imagerel xed_inst_noperands+51 + DD imagerel xed_inst_noperands+74 DD imagerel $unwind$xed_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+184 + DD imagerel xed_relbr+182 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+184 + DD imagerel xed_inst1+207 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_inst DD imagerel xed_decoded_inst_inst - DD imagerel xed_decoded_inst_inst+55 + DD imagerel xed_decoded_inst_inst+78 DD imagerel $unwind$xed_decoded_inst_inst pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_category DD imagerel xed_decoded_inst_get_category - DD imagerel xed_decoded_inst_get_category+66 + DD imagerel xed_decoded_inst_get_category+89 DD imagerel $unwind$xed_decoded_inst_get_category pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_iclass DD imagerel xed_decoded_inst_get_iclass - DD imagerel xed_decoded_inst_get_iclass+66 + DD imagerel xed_decoded_inst_get_iclass+89 DD imagerel $unwind$xed_decoded_inst_get_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_noperands DD imagerel xed_decoded_inst_noperands - DD imagerel xed_decoded_inst_noperands+67 + DD imagerel xed_decoded_inst_noperands+90 DD imagerel $unwind$xed_decoded_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_set_mode DD imagerel xed_decoded_inst_set_mode - DD imagerel xed_decoded_inst_set_mode+157 + DD imagerel xed_decoded_inst_set_mode+155 DD imagerel $unwind$xed_decoded_inst_set_mode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_length DD imagerel xed_decoded_inst_get_length - DD imagerel xed_decoded_inst_get_length+55 + DD imagerel xed_decoded_inst_get_length+78 DD imagerel $unwind$xed_decoded_inst_get_length pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+198 +$pdata$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+97 + DD imagerel $unwind$?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+160 + DD imagerel $unwind$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+202 + DD imagerel $unwind$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+148 + DD imagerel $unwind$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+125 + DD imagerel $unwind$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+98 + DD imagerel $unwind$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z DD imagerel $LN3 + DD imagerel $LN3+120 + DD imagerel $unwind$?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z DD imagerel $LN3 + DD imagerel $LN3+120 + DD imagerel $unwind$?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z DD imagerel $LN3 + DD imagerel $LN3+142 + DD imagerel $unwind$?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD imagerel $LN3 + DD imagerel $LN3+108 + DD imagerel $unwind$?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z DD imagerel $LN5 + DD imagerel $LN5+200 + DD imagerel $unwind$?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z DD imagerel $LN4 + DD imagerel $LN4+328 + DD imagerel $unwind$?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+280 + DD imagerel $unwind$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD imagerel $LN9 + DD imagerel $LN9+267 + DD imagerel $unwind$?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+128 + DD imagerel $unwind$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+263 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN4 - DD imagerel $LN4+117 + DD imagerel $LN4+140 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD imagerel $LN6 - DD imagerel $LN6+238 + DD imagerel $LN6+261 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z pdata ENDS ; COMDAT pdata @@ -825,278 +969,284 @@ $pdata$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA DD imagerel ?dtor$0@? pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+90 +$pdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN8 + DD imagerel $LN8+245 DD imagerel $unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$allocator@K@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??0?$allocator@K@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+89 DD imagerel $unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+74 DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+137 + DD imagerel $LN3+160 DD imagerel $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+88 DD imagerel $unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+125 + DD imagerel $LN3+148 DD imagerel $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+121 + DD imagerel $LN3+144 DD imagerel $unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+121 + DD imagerel $LN3+144 DD imagerel $unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+52 + DD imagerel $LN3+75 DD imagerel $unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+52 + DD imagerel $LN3+75 DD imagerel $unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+98 DD imagerel $unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+102 + DD imagerel $LN3+125 DD imagerel $unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+98 DD imagerel $unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+97 + DD imagerel $LN3+120 DD imagerel $unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD imagerel $LN3 - DD imagerel $LN3+97 + DD imagerel $LN3+120 DD imagerel $unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+119 + DD imagerel $LN3+142 DD imagerel $unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD imagerel $LN5 - DD imagerel $LN5+168 + DD imagerel $LN5+200 DD imagerel $unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD imagerel $LN4 - DD imagerel $LN4+299 + DD imagerel $LN4+322 DD imagerel $unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD imagerel $LN3 - DD imagerel $LN3+49 + DD imagerel $LN3+64 DD imagerel $unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN8 - DD imagerel $LN8+184 - DD imagerel $unwind$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN4 - DD imagerel $LN4+177 - DD imagerel $unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA - DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA+37 - DD imagerel $unwind$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+77 +$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN9 + DD imagerel $LN9+267 DD imagerel $unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+105 + DD imagerel $LN3+128 DD imagerel $unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+115 + DD imagerel $LN4+138 DD imagerel $unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 - DD imagerel $LN7+218 + DD imagerel $LN7+241 DD imagerel $unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 - DD imagerel $LN7+216 + DD imagerel $LN7+239 DD imagerel $unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 - DD imagerel $LN5+145 + DD imagerel $LN5+168 DD imagerel $unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 - DD imagerel $LN5+148 + DD imagerel $LN5+171 DD imagerel $unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN6 - DD imagerel $LN6+127 + DD imagerel $LN6+150 DD imagerel $unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN8 - DD imagerel $LN8+187 + DD imagerel $LN8+197 DD imagerel $unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+140 + DD imagerel $LN7+163 DD imagerel $unwind$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD imagerel $LN8 - DD imagerel $LN8+162 + DD imagerel $LN8+185 DD imagerel $unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN9 - DD imagerel $LN9+491 + DD imagerel $LN9+518 DD imagerel $unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 + DD imagerel $unwind$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 + DD imagerel $unwind$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD imagerel $LN17 - DD imagerel $LN17+623 + DD imagerel $LN17+675 DD imagerel $unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA + DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA+59 + DD imagerel $unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA + DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA+59 + DD imagerel $unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN10 - DD imagerel $LN10+406 + DD imagerel $LN10+429 DD imagerel $unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN10 - DD imagerel $LN10+389 + DD imagerel $LN10+412 DD imagerel $unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN18 - DD imagerel $LN18+689 + DD imagerel $LN18+687 DD imagerel $unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -1108,13 +1258,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD imagerel $LN23 - DD imagerel $LN23+391 + DD imagerel $LN23+414 DD imagerel $unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD imagerel $LN14 - DD imagerel $LN14+472 +$pdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD imagerel $LN18 + DD imagerel $LN18+658 DD imagerel $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z pdata ENDS ; COMDAT pdata @@ -1132,31 +1282,31 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN12 - DD imagerel $LN12+500 + DD imagerel $LN12+498 DD imagerel $unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD imagerel $LN3 - DD imagerel $LN3+79 + DD imagerel $LN3+102 DD imagerel $unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD imagerel $LN13 - DD imagerel $LN13+277 + DD imagerel $LN13+300 DD imagerel $unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN19 - DD imagerel $LN19+900 + DD imagerel $LN19+898 DD imagerel $unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD imagerel $LN13 - DD imagerel $LN13+541 + DD imagerel $LN13+564 DD imagerel $unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z pdata ENDS ; COMDAT pdata @@ -1167,104 +1317,110 @@ $pdata$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA DD imag pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD imagerel $LN9 - DD imagerel $LN9+257 +$pdata$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD imagerel $LN13 + DD imagerel $LN13+449 DD imagerel $unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 - DD imagerel $LN10+201 + DD imagerel $LN10+224 DD imagerel $unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN11 - DD imagerel $LN11+327 + DD imagerel $LN11+350 DD imagerel $unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 - DD imagerel $LN10+338 + DD imagerel $LN10+361 DD imagerel $unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+130 DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 - DD imagerel $LN5+118 + DD imagerel $LN5+141 DD imagerel $unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 - DD imagerel $LN5+101 + DD imagerel $LN5+124 DD imagerel $unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD imagerel $LN12 - DD imagerel $LN12+208 + DD imagerel $LN12+231 DD imagerel $unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD imagerel $LN21 - DD imagerel $LN21+351 + DD imagerel $LN21+374 DD imagerel $unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD imagerel $LN3 - DD imagerel $LN3+69 + DD imagerel $LN3+92 DD imagerel $unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+82 - DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z +$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 + DD imagerel $LN3+105 + DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+57 + DD imagerel $LN3+80 DD imagerel $unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+64 DD imagerel $unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+60 - DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z +$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 + DD imagerel $LN3+83 + DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD imagerel $LN7 - DD imagerel $LN7+241 + DD imagerel $LN7+264 DD imagerel $unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z pdata ENDS ; COMDAT pdata @@ -1281,38 +1437,62 @@ $pdata$?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$log2@H$0A@@@YANH@Z DD imagerel $LN3 - DD imagerel $LN3+54 - DD imagerel $unwind$??$log2@H$0A@@@YANH@Z +$pdata$??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD imagerel $LN4 + DD imagerel $LN4+273 + DD imagerel $unwind$??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 - DD imagerel $LN3+117 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +$pdata$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 +$pdata$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z DD imagerel $LN3 DD imagerel $LN3+71 - DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z + DD imagerel $unwind$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 - DD imagerel $LN3+68 - DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +$pdata$??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD imagerel $LN3 + DD imagerel $LN3+265 + DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 - DD imagerel $LN3+110 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +$pdata$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD imagerel $LN3 + DD imagerel $LN3+167 + DD imagerel $unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD imagerel $LN13 + DD imagerel $LN13+658 + DD imagerel $unwind$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA + DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA+94 + DD imagerel $unwind$?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$log2@H$0A@@@YANH@Z DD imagerel $LN3 + DD imagerel $LN3+77 + DD imagerel $unwind$??$log2@H$0A@@@YANH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 - DD imagerel $LN23+1097 + DD imagerel $LN23+1095 DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z pdata ENDS ; COMDAT pdata @@ -1329,44 +1509,68 @@ $pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$ch pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 + DD imagerel $LN3+140 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 + DD imagerel $LN3+94 + DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 + DD imagerel $LN3+91 + DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 + DD imagerel $LN3+133 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z DD imagerel $LN4 - DD imagerel $LN4+182 - DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z +$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD imagerel $LN4 + DD imagerel $LN4+205 + DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+211 - DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z +$pdata$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD imagerel $LN3 + DD imagerel $LN3+234 + DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+121 DD imagerel $unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD imagerel $LN13 - DD imagerel $LN13+593 + DD imagerel $LN13+616 DD imagerel $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z pdata ENDS ; COMDAT pdata @@ -1378,43 +1582,67 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+89 DD imagerel $unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN3 - DD imagerel $LN3+79 + DD imagerel $LN3+102 DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD imagerel $LN3 - DD imagerel $LN3+133 + DD imagerel $LN3+156 DD imagerel $unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN3 + DD imagerel $LN3+102 + DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 - DD imagerel $LN4+148 + DD imagerel $LN4+171 DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+120 + DD imagerel $LN4+143 DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 - DD imagerel $LN7+261 + DD imagerel $LN7+284 DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata @@ -1426,212 +1654,224 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+116 + DD imagerel $LN6+139 DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 - DD imagerel $LN3+52 + DD imagerel $LN3+75 DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+142 DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+91 + DD imagerel $LN4+114 DD imagerel $unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 - DD imagerel $LN5+94 + DD imagerel $LN5+117 DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+98 + DD imagerel $LN4+121 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+88 DD imagerel $unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 - DD imagerel $LN3+53 - DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 - DD imagerel $LN3+53 - DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD imagerel $LN3 - DD imagerel $LN3+104 + DD imagerel $LN3+127 DD imagerel $unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+73 + DD imagerel $LN3+91 DD imagerel $unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z +$pdata$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD imagerel $LN3 + DD imagerel $LN3+122 + DD imagerel $unwind$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+95 + DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD imagerel $LN13 - DD imagerel $LN13+277 + DD imagerel $LN13+300 DD imagerel $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN7 - DD imagerel $LN7+342 +$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 + DD imagerel $LN3+168 DD imagerel $unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA - DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA+36 - DD imagerel $unwind$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA +$pdata$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD imagerel $LN4 + DD imagerel $LN4+117 + DD imagerel $unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+94 - DD imagerel $unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z +$pdata$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD imagerel $LN7 + DD imagerel $LN7+282 + DD imagerel $unwind$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD imagerel $LN7 - DD imagerel $LN7+123 - DD imagerel $unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z +$pdata$?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z +$pdata$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD imagerel $LN7 + DD imagerel $LN7+146 + DD imagerel $unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD imagerel $LN3 - DD imagerel $LN3+51 - DD imagerel $unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z +$pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+97 + DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z +$pdata$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+196 + DD imagerel $LN3+156 DD imagerel $unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+111 - DD imagerel $unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z +$pdata$??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+78 - DD imagerel $unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ +$pdata$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+73 - DD imagerel $unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ +$pdata$??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DD imagerel $LN3 + DD imagerel $LN3+134 + DD imagerel $unwind$??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+50 - DD imagerel $unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z +$pdata$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+102 + DD imagerel $unwind$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD imagerel $LN3 - DD imagerel $LN3+158 - DD imagerel $unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z +$pdata$?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD imagerel $LN3 + DD imagerel $LN3+96 + DD imagerel $unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +$pdata$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+73 + DD imagerel $unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD imagerel $LN3 - DD imagerel $LN3+51 - DD imagerel $unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z +$pdata$??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z DD imagerel $LN3 + DD imagerel $LN3+181 + DD imagerel $unwind$??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$forward@K@std@@YA$$QEAKAEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??$forward@K@std@@YA$$QEAKAEAK@Z +$pdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z DD imagerel $LN3 - DD imagerel $LN3+106 - DD imagerel $unwind$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z +$pdata$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z DD imagerel $LN3 + DD imagerel $LN3+129 + DD imagerel $unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z pdata ENDS ; COMDAT __real@3ff0000000000000 CONST SEGMENT @@ -1831,9 +2071,9 @@ CONST SEGMENT DB 'C', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'a', 00H, 't', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -1846,16 +2086,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'v', 00H, 'e', 00H DB 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\vector', 00H ; `string' +??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\vector', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ CONST SEGMENT @@ -1893,21 +2133,21 @@ CONST SEGMENT ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ DB 'Failed to ' DB 'validate jump. Type: %s, Displacement: %d', 0aH, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ CONST SEGMENT @@ -1918,16 +2158,15 @@ CONST SEGMENT DB 'P', 00H, 'T', 00H, 'E', 00H, 'D', 00H, '!', 00H, '"', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ +; COMDAT ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ CONST SEGMENT -??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' +??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'I', 00H DB 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r' DB 00H, '_', 00H, 'b', 00H, 'a', 00H, 's', 00H, 'e', 00H, '1', 00H DB '2', 00H, ':', 00H, ':', 00H, '_', 00H, 'O', 00H, 'r', 00H, 'p' DB 00H, 'h', 00H, 'a', 00H, 'n', 00H, '_', 00H, 'm', 00H, 'e', 00H - DB '_', 00H, 'u', 00H, 'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k' - DB 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' + DB 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ CONST SEGMENT @@ -1951,9 +2190,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -1966,16 +2205,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -1987,7 +2226,7 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -2079,156 +2318,195 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z DD 025051d01H - DD 0118231dH - DD 070110021H - DD 05010H +$unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z DD 025063501H + DD 0119231eH + DD 070120020H + DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@K@std@@YA$$QEAKAEAK@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD 025051301H +$cppxdata$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 060H + DD imagerel $ip2state$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 060H + DD imagerel $ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025051301H +$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD 025051801H +$unwind$??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z DD 025052f01H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD 05051601H +$unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z DD 05052d01H DD 01130316H DD 0700c0019H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H +$unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD 025051301H +$ip2state$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD 025051d01H +$unwind$??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025051d01H - DD 0118231dH - DD 070110039H - DD 05010H +$ip2state$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 060H + DD imagerel $ip2state$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD 025051301H +$unwind$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD 025051301H +$unwind$??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD 025051301H +$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025053401H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H +$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 045H - DW 013dH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD 031001H +$unwind$?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA DD 031001H DD 0700c4210H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H +$ip2state$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 06H DB 00H DB 00H + DB 'q', 02H + DB 02H + DB '~' + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H +$stateUnwindMap$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 02H DB 0eH - DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 028H - DD imagerel $stateUnwindMap$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z - DD imagerel $ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z +$cppxdata$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 028H + DD imagerel $stateUnwindMap$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z + DD imagerel $ip2state$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025054c19H +$unwind$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD 025054a19H DD 011d2322H DD 07016002fH DD 05015H DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z + DD imagerel $cppxdata$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD 016aH xdata ENDS ; COMDAT CONST CONST SEGMENT -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcName$0 DB 05fH ; std::_Uninitialized_move > +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcName$0 DB 05fH ; std::_Uninitialized_move *,std::allocator > > DB 042H DB 061H DB 063H @@ -2238,83 +2516,149 @@ CONST SEGMENT DB 074H DB 00H ORG $+7 -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcVarDesc DD 068H ; std::_Uninitialized_move > +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcVarDesc DD 068H ; std::_Uninitialized_move *,std::allocator > > DD 018H - DQ FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcName$0 + DQ FLAT:??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcName$0 ORG $+48 -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcFrameData DD 01H ; std::_Uninitialized_move > +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcFrameData DD 01H ; std::_Uninitialized_move *,std::allocator > > DD 00H - DQ FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcVarDesc + DQ FLAT:??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035051301H +$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025052a01H + DD 010e2313H + DD 070070025H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025053901H + DD 011d2322H + DD 070160025H + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035052a01H DD 010e3313H DD 07007002bH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 060H + DD imagerel $ip2state$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD 025051801H +$unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025051d01H +$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025053401H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H +$unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H +$unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD 025051801H +$unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD 025051301H +$cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 060H + DD imagerel $ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 060H + DD imagerel $ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025051301H +$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -2329,7 +2673,7 @@ $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH @@ -2338,42 +2682,101 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025051301H +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025051301H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H +$ip2state$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025051301H +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025051301H +$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H @@ -2391,18 +2794,13 @@ $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H +$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H @@ -2414,7 +2812,7 @@ xdata SEGMENT $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H DB 00H DB 00H - DB 'p' + DB 09eH DB 02H DB 0f1H, 02H DB 00H @@ -2433,7 +2831,7 @@ $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051811H +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H DD 01132318H DD 0700c0021H DD 0500bH @@ -2453,7 +2851,7 @@ $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H @@ -2462,154 +2860,307 @@ $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051801H +$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025051801H - DD 01132318H - DD 0700c0025H - DD 0500bH +$ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 060H + DD imagerel $ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025051701H +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e19H DD 01122317H DD 0700b001dH DD 0500aH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$ip2state$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DB 060H + DD imagerel $ip2state$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025051801H +$unwind$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA DD 031001H - DD 0700c4210H +$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025052f01H + DD 01132318H + DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 06H +$ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 02H DB 00H DB 00H - DB 'm', 04H - DB 02H - DB 0ddH, 03H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$handlerMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 02H - DB 01H - DB 080H - DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA +$cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 060H + DD imagerel $ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$tryMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 02H - DB 00H - DB 00H - DB 02H - DD imagerel $handlerMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e19H + DD 01122317H + DD 0700b001dH + DD 0500aH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 04H - DB 08H - DB 010H +$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$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 038H - DD imagerel $stateUnwindMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z - DD imagerel $tryMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z - DD imagerel $ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +$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$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025051d19H - DD 0118231dH - DD 07011004bH - DD 05010H +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z + 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 -$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025051d01H +$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H + DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 06H + DB 00H + DB 00H + DB 0c9H, 04H + DB 02H + DB 0ddH, 03H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$handlerMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 02H + DB 01H + DB 080H + DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$tryMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 02H + DB 00H + DB 00H + DB 02H + DD imagerel $handlerMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 04H + DB 08H + DB 010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 038H + DD imagerel $stateUnwindMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z + DD imagerel $tryMap$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z + DD imagerel $ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025053419H + DD 0118231dH + DD 07011004bH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025053401H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025051301H +$ip2state$??$_Unfancy@K@std@@YAPEAKPEAK@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@K@std@@YAPEAKPEAK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z DD 025051801H +$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD 025052f01H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025051301H +$ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 060H + DD imagerel $ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z DD 025051801H +$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD 025052f01H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025051301H +$ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 060H + DD imagerel $ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03aH - DW 0430H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H @@ -2627,7 +3178,7 @@ xdata SEGMENT $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH DB 00H DB 00H - DB 0caH + DB 0c6H DB 02H DB 011H, 02H DB 04H @@ -2668,7 +3219,7 @@ $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025054119H +$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H DD 01122317H DD 0700b004bH DD 0500aH @@ -2693,49 +3244,158 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH +$ip2state$??$log2@H$0A@@@YANH@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$cppxdata$??$log2@H$0A@@@YANH@Z DB 060H + DD imagerel $ip2state$??$log2@H$0A@@@YANH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$unwind$??$log2@H$0A@@@YANH@Z DD 035052819H + DD 010d3312H + DD 07006001fH + DD 05005H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$log2@H$0A@@@YANH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025051801H - DD 01132318H - DD 0700c001fH +$unwind$?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA DD 031001H + DD 0700c4210H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$log2@H$0A@@@YANH@Z DD 035051201H - DD 010d3312H - DD 07006001fH - DD 05005H +$ip2state$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 06H + DB 00H + DB 00H + DB 0e1H, 04H + DB 02H + DB 'a', 04H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$handlerMap$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 02H + DB 01H + DB 080H + DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$tryMap$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 02H + DB 00H + DB 00H + DB 02H + DD imagerel $handlerMap$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 04H + DB 08H + DB 010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DB 038H + DD imagerel $stateUnwindMap$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z + DD imagerel $tryMap$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z + DD imagerel $ip2state$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD 025053919H + DD 011d2322H + DD 07016004bH + DD 05015H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD 025053901H + DD 011d2322H + DD 070160023H + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD 025053401H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z DB 060H + DD imagerel $ip2state$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z DB 060H + DD imagerel $ip2state$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z DD 025053401H + DD 0118231dH + DD 07011002bH + DD 05010H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA DD 031001H @@ -2753,7 +3413,7 @@ xdata SEGMENT $ip2state$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DB 08H DB 00H DB 00H - DB 'X' + DB 086H DB 04H DB 'm', 02H DB 02H @@ -2776,7 +3436,7 @@ $cppxdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@st xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025052211H +$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025053911H DD 011d2322H DD 070160027H DD 05015H @@ -2785,121 +3445,136 @@ $unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025051d01H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025051301H +$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025051301H +$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025051301H +$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025051801H +$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035051801H +$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035052f01H DD 01133318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035051801H +$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035052f01H DD 01133318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025051801H +$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025051801H +$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H -xdata ENDS +$ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 060H + DD imagerel $ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 07007002dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025051801H +$unwind$?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025052f01H DD 01132318H - DD 0700c0029H + DD 0700c0039H DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA DD 031001H @@ -2911,7 +3586,7 @@ xdata SEGMENT $ip2state$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 06H DB 00H DB 00H - DB 0b6H + DB 0e4H DB 02H DB 'p' DB 00H @@ -2930,21 +3605,16 @@ $cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025051d11H +$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025053411H DD 0118231dH DD 070110041H DD 05010H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 037H - DW 036aH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063e19H +$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063c19H DD 010f3314H DD 0700800eaH DD 050066007H @@ -3068,26 +3738,21 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025051801H +$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025052f01H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H +$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 01dbH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054719H +$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054519H DD 0118231dH DD 070110037H DD 05010H @@ -3107,16 +3772,6 @@ CONST SEGMENT DD 00H DQ FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD 031001H @@ -3134,7 +3789,7 @@ xdata SEGMENT $ip2state$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 0aH DB 00H DB 00H - DB 082H + DB 0b0H DB 02H DB 08aH DB 00H @@ -3159,30 +3814,20 @@ $cppxdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035051311H +$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035052a11H DD 010e3313H - DD 07007003bH + DD 07007004bH DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025051701H +$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025052e01H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0298H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -3194,7 +3839,7 @@ xdata SEGMENT $ip2state$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 'y', 07H + DB 'q', 07H DB 02H DB 084H DB 00H @@ -3213,7 +3858,7 @@ $cppxdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H +$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H DD 010e2313H DD 07007004bH DD 05006H @@ -3249,38 +3894,116 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H +$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H +$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H +$unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 0aH + DB 00H + DB 00H + DB '}', 05H + DB 02H + DB 0aeH + DB 04H + DB 0b4H + DB 02H + DB 'B' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 04H + DB 0eH + DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA + DB 02eH + DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 028H + DD imagerel $stateUnwindMap$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z + DD imagerel $ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f11H DD 01132318H - DD 0700c0055H + DD 0700c0057H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 0aH + DB 00H + DB 00H + DB 'M', 04H + DB 02H + DB 090H + DB 04H + DB 'N' + DB 02H + DB 01aH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 04H + DB 0eH + DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DB 02eH + DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H + DD imagerel $stateUnwindMap$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z + DD imagerel $ip2state$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 01d2H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H +$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H DD 010e2313H - DD 070070051H + DD 070070053H DD 05006H - DD imagerel __GSHandlerCheck - DD 0270H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z + DD 0282H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -3309,278 +4032,381 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025051c01H +$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025053301H DD 0117231cH DD 070100021H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051701H +$unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z DD 025052e01H DD 01122317H DD 0700b0025H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H +$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H +$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H +$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H +$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H +$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H +$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025051301H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025051301H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H +$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 040H - DB 098H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 06H - DB 00H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H DB 00H - DB 0c6H - DB 02H - DB '6' DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 02H - DB 0eH - DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 028H - DD imagerel $stateUnwindMap$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z - DD imagerel $ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054719H +$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054519H DD 0118231dH - DD 070110021H + DD 070110029H DD 05010H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z - DD 0faH + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range_locked +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range_locked +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range DD 04H - DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 ORG $+48 -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range_locked +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range DD 00H - DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H - DD 0118231dH - DD 07011002dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025050f01H +$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025052201H +$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025053901H DD 011d2322H DD 07016002fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025051801H +$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025052f01H DD 01132318H - DD 0700c0029H + DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035052201H +$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035053901H DD 011d3322H DD 070160023H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025052201H +$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025053901H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025052201H +$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025053901H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H +$ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H +$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H DD 010e2313H DD 070070025H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H +$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H + DD imagerel $ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H +$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H +$cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H + DD imagerel $ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H + DD imagerel $ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025051801H +$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H DD 01132318H DD 0700c0023H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H + DD imagerel $ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025051801H +$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H DD 01132318H DD 0700c0023H DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -3595,7 +4421,7 @@ $cppxdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025051319H +$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H DD 010e2313H DD 070070029H DD 05006H @@ -3604,7 +4430,7 @@ $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025051801H +$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH @@ -3622,7 +4448,7 @@ $cppxdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025051319H +$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070025H DD 05006H @@ -3631,51 +4457,85 @@ $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025051301H +$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 060H + DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025051801H +$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025051301H +$ip2state$??0?$allocator@K@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$allocator@K@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$allocator@K@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$allocator@K@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H +$ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a19H DD 010e2313H - DD 070070021H + DD 070070035H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA DD 031001H @@ -3687,7 +4547,7 @@ xdata SEGMENT $ip2state$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 06H DB 00H DB 00H - DB 't' + DB 0a2H DB 02H DB 08dH, 02H DB 00H @@ -3706,7 +4566,7 @@ $cppxdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025052111H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025053811H DD 011c2321H DD 070150021H DD 05014H @@ -3715,842 +4575,3825 @@ $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025052111H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051c01H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053301H DD 0117231cH DD 07010001dH DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_length DD 025051301H +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03fH - DB 084H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_set_mode DD 025054619H - DD 0117231cH - DD 070100021H - DD 0500fH - DD imagerel __GSHandlerCheck - DD 0f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -xed_decoded_inst_set_mode$rtcName$0 DB 064H - DB 073H - DB 074H - DB 061H - DB 074H - DB 065H +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H DB 00H - ORG $+9 -xed_decoded_inst_set_mode$rtcVarDesc DD 028H - DD 08H - DQ FLAT:xed_decoded_inst_set_mode$rtcName$0 - ORG $+48 -xed_decoded_inst_set_mode$rtcFrameData DD 01H - DD 00H - DQ FLAT:xed_decoded_inst_set_mode$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$xed_decoded_inst_noperands DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$xed_decoded_inst_get_iclass DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_category DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_inst DD 025051301H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025062301H - DD 011e2323H - DD 07017001cH - DD 050156016H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 040H - DB 09eH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$xed_relbr DD 025064719H - DD 0118231dH - DD 070110026H - DD 0500f6010H - DD imagerel __GSHandlerCheck - DD 0128H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -xed_relbr$rtcName$0 DB 06fH +$ip2state$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DB 02H DB 00H - ORG $+14 -xed_relbr$rtcVarDesc DD 028H - DD 030H - DQ FLAT:xed_relbr$rtcName$0 - ORG $+48 -xed_relbr$rtcFrameData DD 01H - DD 00H - DQ FLAT:xed_relbr$rtcVarDesc -CONST ENDS + DB 00H +xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_noperands DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_category DD 025051301H +$unwind$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iclass DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iform_enum DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_operand_type DD 025051301H +$unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_iform_to_iclass DD 025051201H - DD 010d2312H - DD 070060021H - DD 05005H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H - DD 0119231eH - DD 070120026H - DD 050106011H +$ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H - DD 0119231eH - DD 070120026H - DD 050106011H +$cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025051301H +$unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H - DD 0118331dH - DD 07011002bH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H - DD 010e3313H - DD 070070027H - DD 05006H -xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H - DD 0118331dH - DD 070110047H +$unwind$?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD 025054519H + DD 0118231dH + DD 070110029H DD 05010H DD imagerel __GSHandlerCheck - DD 0228H + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr - DB 057H +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcName$0 DB 05fH ; std::vector,std::allocator > >::_Orphan_range + DB 04cH + DB 06fH DB 063H + DB 06bH DB 00H -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr - DB 04dH - DB 062H - DB 073H - DB 074H - DB 031H - DB 00H - ORG $+1 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr - DB 04dH - DB 062H - DB 073H - DB 074H - DB 032H - DB 00H - ORG $+13 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr - DD 08H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 - DD 0f8H - DD 08H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 - DD 0d4H - DD 02H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 - ORG $+144 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr + ORG $+10 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcVarDesc DD 024H ; std::vector,std::allocator > >::_Orphan_range + DD 04H + DQ FLAT:?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcName$0 + ORG $+48 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcFrameData DD 01H ; std::vector,std::allocator > >::_Orphan_range DD 00H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc + DQ FLAT:?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025050f01H +$unwind$?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH +$ip2state$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$cppxdata$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ DD 025053d19H +$unwind$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ DD 025052a19H DD 010e2313H - DD 070070021H + DD 07007002fH DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ xdata ENDS -; COMDAT CONST -CONST SEGMENT -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Iterator_base12::_Orphan_me_locked - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+10 -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Iterator_base12::_Orphan_me_locked - DD 04H - DQ FLAT:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcName$0 - ORG $+48 -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Iterator_base12::_Orphan_me_locked - DD 00H - DQ FLAT:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD 035051301H - DD 010e3313H - DD 070070027H - DD 05006H +$unwind$?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z DD 025053901H + DD 011d2322H + DD 07016002fH + DD 05015H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 03bH - DB 08aH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025054219H +$unwind$?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z DD 025052f01H DD 01132318H - DD 0700c0021H + DD 0700c0025H DD 0500bH - DD imagerel __GSHandlerCheck - DD 0f8H xdata ENDS -; COMDAT CONST -CONST SEGMENT -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::_Adopt_locked - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+10 -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcVarDesc DD 024H ; std::_Iterator_base12::_Adopt_locked - DD 04H - DQ FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcName$0 - ORG $+48 -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcFrameData DD 01H ; std::_Iterator_base12::_Adopt_locked - DD 00H - DQ FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H +$unwind$?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z DD 035053901H + DD 011d3322H + DD 070160023H + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$unwind$?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$unwind$?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Iterator_base12@std@@QEAA@XZ DD 025051301H +$unwind$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD 025052a19H DD 010e2313H - DD 07007001dH + DD 070070021H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$ip2state$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$cppxdata$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025051301H +$unwind$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD 025052a19H DD 010e2313H - DD 07007001dH + DD 070070025H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -?_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 +$ip2state$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DB 02H DB 00H - ORG $+10 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked - DD 04H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 - ORG $+48 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked - DD 00H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc -CONST ENDS + DB 00H +xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H +$cppxdata$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DB 060H + DD imagerel $ip2state$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H +$unwind$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_base12@std@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$cppxdata$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DB 060H + DD imagerel $ip2state$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H - DD 01133318H - DD 0700c002fH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025051301H +$unwind$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025050f01H - DD 010a230fH - DD 070030023H - DD 05002H +$ip2state$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$cppxdata$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ DD 025052a19H + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025051301H +$unwind$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DD 025053b19H DD 010e2313H - DD 07007001dH + DD 070070029H DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ + DD 013bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector,std::allocator > >::~vector,std::allocator > > + DB 053H + DB 032H + DB 00H + ORG $+12 +??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ$rtcVarDesc DD 044H ; std::vector,std::allocator > >::~vector,std::allocator > > + DD 01H + DQ FLAT:??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ$rtcName$0 + ORG $+48 +??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector,std::allocator > >::~vector,std::allocator > > + DD 00H + DQ FLAT:??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025051301H +$unwind$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ DD 025052a19H DD 010e2313H - DD 07007001dH + DD 070070025H DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DB 060H + DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_alloc@std@@UEAA@XZ DD 025051301H +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025051801H +$unwind$?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$unwind$?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?what@exception@std@@UEBAPEBDXZ DD 025051301H +$unwind$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H - DD 07007001fH + DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1exception@std@@UEAA@XZ DD 025051301H +$unwind$xed_decoded_inst_get_length DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$xed_decoded_inst_set_mode DD 025054419H + DD 0117231cH + DD 070100021H + DD 0500fH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS +; COMDAT CONST +CONST SEGMENT +xed_decoded_inst_set_mode$rtcName$0 DB 064H + DB 073H + DB 074H + DB 061H + DB 074H + DB 065H + DB 00H + ORG $+9 +xed_decoded_inst_set_mode$rtcVarDesc DD 028H + DD 08H + DQ FLAT:xed_decoded_inst_set_mode$rtcName$0 + ORG $+48 +xed_decoded_inst_set_mode$rtcFrameData DD 01H + DD 00H + DQ FLAT:xed_decoded_inst_set_mode$rtcVarDesc +CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$xed_decoded_inst_noperands DD 025052a01H + DD 010e2313H + DD 070070021H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025050f01H - DD 010a230fH - DD 07003001dH - DD 05002H +$unwind$xed_decoded_inst_get_iclass DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$xed_decoded_inst_get_category DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0bfH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054c19H - DD 011d2322H - DD 07016002bH - DD 05015H +$unwind$xed_decoded_inst_inst DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_inst1 DD 025063a01H + DD 011e2323H + DD 07017001cH + DD 050156016H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_relbr DD 025064519H + DD 0118231dH + DD 070110026H + DD 0500f6010H DD imagerel __GSHandlerCheck - DD 0148H + DD 0128H xdata ENDS ; COMDAT CONST CONST SEGMENT -printf$rtcName$0 DB 05fH - DB 041H - DB 072H - DB 067H - DB 04cH - DB 069H - DB 073H - DB 074H +xed_relbr$rtcName$0 DB 06fH DB 00H - ORG $+7 -printf$rtcVarDesc DD 048H - DD 08H - DQ FLAT:printf$rtcName$0 + ORG $+14 +xed_relbr$rtcVarDesc DD 028H + DD 030H + DQ FLAT:xed_relbr$rtcName$0 ORG $+48 -printf$rtcFrameData DD 01H +xed_relbr$rtcFrameData DD 01H DD 00H - DQ FLAT:printf$rtcVarDesc + DQ FLAT:xed_relbr$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035052201H - DD 011d3322H - DD 07016001fH - DD 05015H +$unwind$xed_inst_noperands DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025050f01H - DD 010a230fH - DD 07003001dH - DD 05002H +$unwind$xed_inst_category DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??2@YAPEAX_KPEAX@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$xed_inst_iclass DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$xed_inst_iform_enum DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$xed_operand_type DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$xed_iform_to_iclass DD 025052801H + DD 010d2312H + DD 070060021H + DD 05005H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + DD 0119231eH + DD 070120026H + DD 050106011H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + DD 0119231eH + DD 070120026H + DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z -_TEXT SEGMENT -$T1 = 200 -__formal$ = 256 -_Ptr$ = 264 -<_Args_0>$ = 272 -??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT - -; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter - 00035 48 8b d0 mov rdx, rax - 00038 b9 04 00 00 00 mov ecx, 4 - 0003d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00042 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 00049 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00050 e8 00 00 00 00 call ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward - 00055 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR $T1[rbp] - 0005c 8b 00 mov eax, DWORD PTR [rax] - 0005e 89 01 mov DWORD PTR [rcx], eax - -; 708 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 709 : if (_STD is_constant_evaluated()) { -; 710 : _STD construct_at(_Ptr, _STD forward<_Types>(_Args)...); -; 711 : } else -; 712 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 713 : { -; 714 : ::new (_Voidify_iter(_Ptr)) _Objty(_STD forward<_Types>(_Args)...); -; 715 : } -; 716 : } - - 00060 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 -??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ENDP ; std::_Default_allocator_traits >::construct -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits -; COMDAT ??$forward@K@std@@YA$$QEAKAEAK@Z -_TEXT SEGMENT -_Arg$ = 224 -??$forward@K@std@@YA$$QEAKAEAK@Z PROC ; std::forward, COMDAT - -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H + DD 0118331dH + DD 07011002bH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H + DD 010e3313H + DD 070070027H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H + DD 0118331dH + DD 070110047H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0228H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr + DB 057H + DB 063H + DB 00H +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 031H + DB 00H + ORG $+1 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 032H + DB 00H + ORG $+13 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 + DD 0f8H + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 + DD 0d4H + DD 02H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 + ORG $+144 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr + DD 00H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 060H + DD imagerel $ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025051e19H + DD 010a230fH + DD 07003001dH + DD 05002H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 060H + DD imagerel $ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025052f19H + DD 01132318H + DD 0700c001fH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DB 060H + DD imagerel $ip2state$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD 035052a19H + DD 010e3313H + DD 070070023H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 060H + DD imagerel $ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 060H + DD imagerel $ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025054019H + DD 01132318H + DD 0700c0029H + DD 0500bH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z + DD 013bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::_Adopt + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+2 +?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 DB 05fH ; std::_Iterator_base12::_Adopt + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+2 +?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcVarDesc DD 064H ; std::_Iterator_base12::_Adopt + DD 04H + DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 + DD 044H + DD 04H + DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$0 + ORG $+96 +?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcFrameData DD 02H ; std::_Iterator_base12::_Adopt + DD 00H + DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1_Iterator_base12@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1_Iterator_base12@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1_Iterator_base12@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_Iterator_base12@std@@QEAA@XZ DD 025053b19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1_Iterator_base12@std@@QEAA@XZ + DD 0fbH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1_Iterator_base12@std@@QEAA@XZ$rtcName$0 DB 05fH ; std::_Iterator_base12::~_Iterator_base12 + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+10 +??1_Iterator_base12@std@@QEAA@XZ$rtcVarDesc DD 024H ; std::_Iterator_base12::~_Iterator_base12 + DD 04H + DQ FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcName$0 + ORG $+48 +??1_Iterator_base12@std@@QEAA@XZ$rtcFrameData DD 01H ; std::_Iterator_base12::~_Iterator_base12 + DD 00H + DQ FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DB 060H + DD imagerel $ip2state$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025054019H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z + DD 0fbH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::operator= + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+10 +??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcVarDesc DD 024H ; std::_Iterator_base12::operator= + DD 04H + DQ FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcName$0 + ORG $+48 +??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcFrameData DD 01H ; std::_Iterator_base12::operator= + DD 00H + DQ FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DB 060H + DD imagerel $ip2state$??0_Iterator_base12@std@@QEAA@AEBU01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0_Iterator_base12@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0_Iterator_base12@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0_Iterator_base12@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Iterator_base12@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+10 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all + DD 04H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all + DD 00H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0_Container_base12@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0_Container_base12@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0_Container_base12@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 060H + DD imagerel $ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H + DD 01133318H + DD 0700c002fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H + DD 010a230fH + DD 070030023H + DD 05002H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0bad_array_new_length@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_array_new_length@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0bad_array_new_length@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_array_new_length@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z DB 060H + DD imagerel $ip2state$??0bad_alloc@std@@AEAA@QEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H + DD 010e2313H + DD 07007001fH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1exception@std@@UEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1exception@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1exception@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1exception@std@@UEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1exception@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ DB 060H + DD imagerel $ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H + DD 010a230fH + DD 07003001dH + DD 05002H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$printf DD 025054a19H + DD 011d2322H + DD 07016002bH + DD 05015H + DD imagerel __GSHandlerCheck + DD 0148H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +printf$rtcName$0 DB 05fH + DB 041H + DB 072H + DB 067H + DB 04cH + DB 069H + DB 073H + DB 074H + DB 00H + ORG $+7 +printf$rtcVarDesc DD 048H + DD 08H + DQ FLAT:printf$rtcName$0 + ORG $+48 +printf$rtcFrameData DD 01H + DD 00H + DQ FLAT:printf$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$_vfprintf_l DD 035053901H + DD 011d3322H + DD 07016001fH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$__local_stdio_printf_options DD 025051e01H + DD 010a230fH + DD 07003001dH + DD 05002H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??2@YAPEAX_KPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H + DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z +_TEXT SEGMENT +$T1 = 200 +__formal$ = 256 +_Ptr$ = 264 +<_Args_0>$ = 272 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z PROC ; std::_Default_allocator_traits > >::construct,std::pair >, COMDAT + +; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 00 01 + 00 00 sub rsp, 256 ; 00000100H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 40 00 00 00 mov ecx, 64 ; 00000040H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00041 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 b9 10 00 00 00 mov ecx, 16 + 0004d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00052 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00059 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00060 e8 00 00 00 00 call ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::forward > + 00065 48 8b bd c8 00 + 00 00 mov rdi, QWORD PTR $T1[rbp] + 0006c 48 8b f0 mov rsi, rax + 0006f b9 10 00 00 00 mov ecx, 16 + 00074 f3 a4 rep movsb + +; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); +; 695 : } + + 00076 48 8d a5 e0 00 + 00 00 lea rsp, QWORD PTR [rbp+224] + 0007d 5f pop rdi + 0007e 5e pop rsi + 0007f 5d pop rbp + 00080 c3 ret 0 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z ENDP ; std::_Default_allocator_traits > >::construct,std::pair > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z PROC ; std::forward >, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ENDP ; std::forward > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +_TEXT SEGMENT +_Ptr$ = 224 +??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT + +; 261 : _Pointer _Refancy(_Pointer _Ptr) noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 262 : return _Ptr; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 263 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ENDP ; std::_Refancy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z +_TEXT SEGMENT +tv78 = 192 +tv76 = 200 +tv74 = 208 +this$ = 256 +<_Vals_0>$ = 264 +??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z PROC ; std::_Uninitialized_backout_al > >::_Emplace_back >, COMDAT + +; 1507 : void _Emplace_back(_Types&&... _Vals) { // construct a new element at *_Last and increment + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1508 : allocator_traits<_Alloc>::construct(_Al, _Unfancy(_Last), _STD forward<_Types>(_Vals)...); + + 0003b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR <_Vals_0>$[rbp] + 00042 e8 00 00 00 00 call ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::forward > + 00047 48 89 85 c0 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 0004e 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00055 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00059 e8 00 00 00 00 call ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > + 0005e 48 89 85 c8 00 + 00 00 mov QWORD PTR tv76[rbp], rax + 00065 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006c 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00070 48 89 85 d0 00 + 00 00 mov QWORD PTR tv74[rbp], rax + 00077 4c 8b 85 c0 00 + 00 00 mov r8, QWORD PTR tv78[rbp] + 0007e 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR tv76[rbp] + 00085 48 8b 8d d0 00 + 00 00 mov rcx, QWORD PTR tv74[rbp] + 0008c e8 00 00 00 00 call ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z ; std::_Default_allocator_traits > >::construct,std::pair > + +; 1509 : ++_Last; + + 00091 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00098 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0009c 48 83 c0 10 add rax, 16 + 000a0 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a7 48 89 41 08 mov QWORD PTR [rcx+8], rax + +; 1510 : } + + 000ab 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000b2 5f pop rdi + 000b3 5d pop rbp + 000b4 c3 ret 0 +??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z ENDP ; std::_Uninitialized_backout_al > >::_Emplace_back > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z +_TEXT SEGMENT +this$ = 224 +classSize$ = 232 +?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z PROC ; std::_Uninitialized_backout_al > >::__autoclassinit2, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec c8 00 + 00 00 sub rsp, 200 ; 000000c8H + 00013 48 8b ec mov rbp, rsp + 00016 48 8b fc mov rdi, rsp + 00019 b9 32 00 00 00 mov ecx, 50 ; 00000032H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 e8 + 00 00 00 mov rcx, QWORD PTR [rsp+232] + 0002d 48 8b bd e0 00 + 00 00 mov rdi, QWORD PTR this$[rbp] + 00034 33 c0 xor eax, eax + 00036 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR classSize$[rbp] + 0003d f3 aa rep stosb + 0003f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 +?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z ENDP ; std::_Uninitialized_backout_al > >::__autoclassinit2 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ PROC ; std::_Uninitialized_backout_al > >::_Release, COMDAT + +; 1512 : pointer _Release() { // suppress any exception handling backout and return _Last + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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 + +; 1513 : _First = _Last; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00044 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00048 48 89 08 mov QWORD PTR [rax], rcx + +; 1514 : return _Last; + + 0004b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00052 48 8b 40 08 mov rax, QWORD PTR [rax+8] + +; 1515 : } + + 00056 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 +?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ENDP ; std::_Uninitialized_backout_al > >::_Release +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ PROC ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > >, COMDAT + +; 1502 : ~_Uninitialized_backout_al() { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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 + +; 1503 : _Destroy_range(_First, _Last, _Al); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 4c 8b 40 10 mov r8, QWORD PTR [rax+16] + 00041 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00048 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 8b 08 mov rcx, QWORD PTR [rax] + 00056 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Destroy_range > > + 0005b 90 npad 1 + +; 1504 : } + + 0005c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 +??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z +_TEXT SEGMENT +this$ = 224 +_Dest$ = 232 +_Al_$ = 240 +??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z PROC ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > >, COMDAT + +; 1497 : _Uninitialized_backout_al(pointer _Dest, _Alloc& _Al_) : _First(_Dest), _Last(_Dest), _Al(_Al_) {} + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 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 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00051 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00063 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Al_$[rbp] + 00071 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00075 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00083 5f pop rdi + 00084 5d pop rbp + 00085 c3 ret 0 +??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ENDP ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z PROC ; std::move &>, COMDAT + +; 1466 : _NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movable + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1467 : return static_cast&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1468 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ENDP ; std::move &> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z PROC ; std::_Get_unwrapped * const &>, COMDAT + +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1232 : return _It + 0; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _It$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + +; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } + + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ENDP ; std::_Get_unwrapped * const &> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z +_TEXT SEGMENT +_First_ch$ = 8 +_Last_ch$ = 40 +_Dest_ch$ = 72 +_Count$ = 104 +_First$ = 352 +_Last$ = 360 +_Dest$ = 368 +??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z PROC ; std::_Copy_memmove, COMDAT + +; 4113 : _OutIt _Copy_memmove(_InIt _First, _InIt _Last, _OutIt _Dest) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 68 01 + 00 00 sub rsp, 360 ; 00000168H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4114 : const char* const _First_ch = const_cast(reinterpret_cast(_First)); + + 00040 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00047 48 89 45 08 mov QWORD PTR _First_ch$[rbp], rax + +; 4115 : const char* const _Last_ch = const_cast(reinterpret_cast(_Last)); + + 0004b 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR _Last$[rbp] + 00052 48 89 45 28 mov QWORD PTR _Last_ch$[rbp], rax + +; 4116 : char* const _Dest_ch = const_cast(reinterpret_cast(_Dest)); + + 00056 48 8b 85 70 01 + 00 00 mov rax, QWORD PTR _Dest$[rbp] + 0005d 48 89 45 48 mov QWORD PTR _Dest_ch$[rbp], rax + +; 4117 : const auto _Count = static_cast(_Last_ch - _First_ch); + + 00061 48 8b 45 08 mov rax, QWORD PTR _First_ch$[rbp] + 00065 48 8b 4d 28 mov rcx, QWORD PTR _Last_ch$[rbp] + 00069 48 2b c8 sub rcx, rax + 0006c 48 8b c1 mov rax, rcx + 0006f 48 89 45 68 mov QWORD PTR _Count$[rbp], rax + +; 4118 : _CSTD memmove(_Dest_ch, _First_ch, _Count); + + 00073 4c 8b 45 68 mov r8, QWORD PTR _Count$[rbp] + 00077 48 8b 55 08 mov rdx, QWORD PTR _First_ch$[rbp] + 0007b 48 8b 4d 48 mov rcx, QWORD PTR _Dest_ch$[rbp] + 0007f e8 00 00 00 00 call memmove + +; 4119 : return reinterpret_cast<_OutIt>(_Dest_ch + _Count); + + 00084 48 8b 45 68 mov rax, QWORD PTR _Count$[rbp] + 00088 48 8b 4d 48 mov rcx, QWORD PTR _Dest_ch$[rbp] + 0008c 48 03 c8 add rcx, rax + 0008f 48 8b c1 mov rax, rcx + +; 4120 : } + + 00092 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 00099 5f pop rdi + 0009a 5d pop rbp + 0009b c3 ret 0 +??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ENDP ; std::_Copy_memmove +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z +_TEXT SEGMENT +_It$ = 224 +??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT + +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1232 : return _It + 0; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _It$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + +; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } + + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ENDP ; std::_Get_unwrapped +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +_TEXT SEGMENT +__formal$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT + +; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 688 : // no overflow check on the following multiply; we assume _Allocate did that check +; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00040 48 6b 85 f0 00 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 690 : } + + 00057 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 +?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +_Val$ = 240 +__formal$ = 248 +??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z PROC ; std::_Find_unchecked1, COMDAT + +; 5130 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { + +$LN7: + 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5131 : // find first matching _Val +; 5132 : for (; _First != _Last; ++_First) { + + 00045 eb 12 jmp SHORT $LN4@Find_unche +$LN2@Find_unche: + 00047 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + 0004e 48 83 c0 04 add rax, 4 + 00052 48 89 85 e0 00 + 00 00 mov QWORD PTR _First$[rbp], rax +$LN4@Find_unche: + 00059 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Last$[rbp] + 00060 48 39 85 e0 00 + 00 00 cmp QWORD PTR _First$[rbp], rax + 00067 74 18 je SHORT $LN3@Find_unche + +; 5133 : if (*_First == _Val) { + + 00069 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00070 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Val$[rbp] + 00077 8b 09 mov ecx, DWORD PTR [rcx] + 00079 39 08 cmp DWORD PTR [rax], ecx + 0007b 75 02 jne SHORT $LN5@Find_unche + +; 5134 : break; + + 0007d eb 02 jmp SHORT $LN3@Find_unche +$LN5@Find_unche: + +; 5135 : } +; 5136 : } + + 0007f eb c6 jmp SHORT $LN2@Find_unche +$LN3@Find_unche: + +; 5137 : +; 5138 : return _First; + + 00081 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + +; 5139 : } + + 00088 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 c3 ret 0 +??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ENDP ; std::_Find_unchecked1 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +_TEXT SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$4 = 72 +$T5 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z PROC ; std::_Uninitialized_move *,std::allocator > >, COMDAT + +; 1647 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { + +$LN7: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00039 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 48 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1648 : // move [_First, _Last) to raw _Dest, using _Al +; 1649 : // note: only called internally from elsewhere in the STL +; 1650 : using _Ptrval = typename _Alloc::value_type*; +; 1651 : auto _UFirst = _Get_unwrapped(_First); + + 00056 48 8d 8d 70 01 + 00 00 lea rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ; std::_Get_unwrapped * const &> + 00062 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax + +; 1652 : const auto _ULast = _Get_unwrapped(_Last); + + 00066 48 8d 8d 78 01 + 00 00 lea rcx, QWORD PTR _Last$[rbp] + 0006d e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ; std::_Get_unwrapped * const &> + 00072 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax + +; 1653 : if constexpr (conjunction_v::_Really_trivial>, +; 1654 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { +; 1655 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); +; 1656 : return _Dest + (_ULast - _UFirst); +; 1657 : } else { +; 1658 : _Uninitialized_backout_al<_Alloc> _Backout{_Dest, _Al}; + + 00076 ba 18 00 00 00 mov edx, 24 + 0007b 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 0007f e8 00 00 00 00 call ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z + 00084 4c 8b 85 88 01 + 00 00 mov r8, QWORD PTR _Al$[rbp] + 0008b 48 8b 95 80 01 + 00 00 mov rdx, QWORD PTR _Dest$[rbp] + 00092 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 00096 e8 00 00 00 00 call ??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > > + 0009b 90 npad 1 + +; 1659 : for (; _UFirst != _ULast; ++_UFirst) { + + 0009c eb 0c jmp SHORT $LN4@Uninitiali +$LN2@Uninitiali: + 0009e 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] + 000a2 48 83 c0 10 add rax, 16 + 000a6 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax +$LN4@Uninitiali: + 000aa 48 8b 45 28 mov rax, QWORD PTR _ULast$[rbp] + 000ae 48 39 45 08 cmp QWORD PTR _UFirst$[rbp], rax + 000b2 74 17 je SHORT $LN3@Uninitiali + +; 1660 : _Backout._Emplace_back(_STD move(*_UFirst)); + + 000b4 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] + 000b8 e8 00 00 00 00 call ??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::move &> + 000bd 48 8b d0 mov rdx, rax + 000c0 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 000c4 e8 00 00 00 00 call ??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z ; std::_Uninitialized_backout_al > >::_Emplace_back > + +; 1661 : } + + 000c9 eb d3 jmp SHORT $LN2@Uninitiali +$LN3@Uninitiali: + +; 1662 : +; 1663 : return _Backout._Release(); + + 000cb 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 000cf e8 00 00 00 00 call ?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::_Uninitialized_backout_al > >::_Release + 000d4 48 89 85 38 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 000db 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 000df e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > + 000e4 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR $T5[rbp] + +; 1664 : } +; 1665 : } + + 000eb 48 8b f8 mov rdi, rax + 000ee 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000f2 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcFrameData + 000f9 e8 00 00 00 00 call _RTC_CheckStackVars + 000fe 48 8b c7 mov rax, rdi + 00101 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00108 48 33 cd xor rcx, rbp + 0010b e8 00 00 00 00 call __security_check_cookie + 00110 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00117 5f pop rdi + 00118 5d pop rbp + 00119 c3 ret 0 +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ENDP ; std::_Uninitialized_move *,std::allocator > > +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$4 = 72 +$T5 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA PROC ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA ENDP ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$4 = 72 +$T5 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA PROC ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA ENDP ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Get_size_of_n@$03@std@@YA_K_K@Z +_TEXT SEGMENT +_Overflow_is_possible$ = 4 +_Max_possible$1 = 40 +_Count$ = 288 +??$_Get_size_of_n@$03@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<4>, COMDAT + +; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; + + 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; + + 0003a 48 b8 ff ff ff + ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH + 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + +; 60 : if (_Count > _Max_possible) { + + 00048 48 b8 ff ff ff + ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH + 00052 48 39 85 20 01 + 00 00 cmp QWORD PTR _Count$[rbp], rax + 00059 76 05 jbe SHORT $LN2@Get_size_o + +; 61 : _Throw_bad_array_new_length(); // multiply overflow + + 0005b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN2@Get_size_o: + +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; + + 00060 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00067 48 c1 e0 02 shl rax, 2 +$LN3@Get_size_o: + +; 66 : } + + 0006b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 +??$_Get_size_of_n@$03@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<4> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z +_TEXT SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_First$ = 288 +_Last$ = 296 +_Dest$ = 304 +_Al$ = 312 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z PROC ; std::_Uninitialized_move >, COMDAT + +; 1647 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { + +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1648 : // move [_First, _Last) to raw _Dest, using _Al +; 1649 : // note: only called internally from elsewhere in the STL +; 1650 : using _Ptrval = typename _Alloc::value_type*; +; 1651 : auto _UFirst = _Get_unwrapped(_First); + + 00045 48 8d 8d 20 01 + 00 00 lea rcx, QWORD PTR _First$[rbp] + 0004c e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped + 00051 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax + +; 1652 : const auto _ULast = _Get_unwrapped(_Last); + + 00055 48 8d 8d 28 01 + 00 00 lea rcx, QWORD PTR _Last$[rbp] + 0005c e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped + 00061 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax + +; 1653 : if constexpr (conjunction_v::_Really_trivial>, +; 1654 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { +; 1655 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); + + 00065 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0006c e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00071 4c 8b c0 mov r8, rax + 00074 48 8b 55 28 mov rdx, QWORD PTR _ULast$[rbp] + 00078 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] + 0007c e8 00 00 00 00 call ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove + +; 1656 : return _Dest + (_ULast - _UFirst); + + 00081 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] + 00085 48 8b 4d 28 mov rcx, QWORD PTR _ULast$[rbp] + 00089 48 2b c8 sub rcx, rax + 0008c 48 8b c1 mov rax, rcx + 0008f 48 c1 f8 02 sar rax, 2 + 00093 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0009a 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] + +; 1657 : } else { +; 1658 : _Uninitialized_backout_al<_Alloc> _Backout{_Dest, _Al}; +; 1659 : for (; _UFirst != _ULast; ++_UFirst) { +; 1660 : _Backout._Emplace_back(_STD move(*_UFirst)); +; 1661 : } +; 1662 : +; 1663 : return _Backout._Release(); +; 1664 : } +; 1665 : } + + 0009e 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a5 5f pop rdi + 000a6 5d pop rbp + 000a7 c3 ret 0 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Uninitialized_move > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z +_TEXT SEGMENT +_Block_size$ = 8 +_Ptr_container$ = 40 +_Ptr$ = 72 +_Bytes$ = 320 +??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT + +; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { + +$LN13: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 114 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 115 : const size_t _Block_size = _Non_user_size + _Bytes; + + 00036 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 0003d 48 83 c0 2f add rax, 47 ; 0000002fH + 00041 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax + +; 116 : if (_Block_size <= _Bytes) { + + 00045 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 0004c 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00050 77 05 ja SHORT $LN8@Allocate_m + +; 117 : _Throw_bad_array_new_length(); // add overflow + + 00052 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN8@Allocate_m: + +; 118 : } +; 119 : +; 120 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); + + 00057 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] + 0005b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00060 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax +$LN4@Allocate_m: + +; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] + + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 + 00069 74 02 je SHORT $LN9@Allocate_m + 0006b eb 6b jmp SHORT $LN10@Allocate_m +$LN9@Allocate_m: +$LN7@Allocate_m: + 0006d 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 00074 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00079 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 00080 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00085 45 33 c9 xor r9d, r9d + 00088 41 b8 79 00 00 + 00 mov r8d, 121 ; 00000079H + 0008e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00095 b9 02 00 00 00 mov ecx, 2 + 0009a ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 000a0 83 f8 01 cmp eax, 1 + 000a3 75 03 jne SHORT $LN12@Allocate_m + 000a5 cc int 3 + 000a6 33 c0 xor eax, eax +$LN12@Allocate_m: + 000a8 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000b1 41 b9 79 00 00 + 00 mov r9d, 121 ; 00000079H + 000b7 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000be 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ + 000c5 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 000cc ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000d2 33 c0 xor eax, eax + 000d4 85 c0 test eax, eax + 000d6 75 95 jne SHORT $LN7@Allocate_m +$LN10@Allocate_m: + 000d8 33 c0 xor eax, eax + 000da 85 c0 test eax, eax + 000dc 75 86 jne SHORT $LN4@Allocate_m + +; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); + + 000de 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] + 000e2 48 83 c0 2f add rax, 47 ; 0000002fH + 000e6 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H + 000ea 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax + +; 123 : static_cast(_Ptr)[-1] = _Ptr_container; + + 000ee b8 08 00 00 00 mov eax, 8 + 000f3 48 6b c0 ff imul rax, rax, -1 + 000f7 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000fb 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] + 000ff 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + +; 124 : +; 125 : #ifdef _DEBUG +; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; + + 00103 b8 08 00 00 00 mov eax, 8 + 00108 48 6b c0 fe imul rax, rax, -2 + 0010c 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 00110 48 ba fa fa fa + fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH + 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + +; 127 : #endif // _DEBUG +; 128 : return _Ptr; + + 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] +$LN11@Allocate_m: + +; 129 : } + + 00122 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00129 5f pop rdi + 0012a 5d pop rbp + 0012b c3 ret 0 +??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ENDP ; std::_Allocate_manually_vector_aligned +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_Al$ = 224 +_Ptr$ = 232 +??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT + +; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // deallocate a plain pointer using an allocator +; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; +; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 0003b 41 b8 01 00 00 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 00054 90 npad 1 + +; 1003 : } else { +; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 1006 : } +; 1007 : } + + 00055 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 +??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +_TEXT SEGMENT +this$ = 224 +_Val1$ = 232 +_Val2$ = 240 +??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z PROC ; std::pair::pair, COMDAT + +; 166 : : first(_Val1), second(_Val2) {} + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Val1$[rbp] + 0004e 48 8b 09 mov rcx, QWORD PTR [rcx] + 00051 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005b 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Val2$[rbp] + 00062 48 8b 09 mov rcx, QWORD PTR [rcx] + 00065 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00069 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00070 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00077 5f pop rdi + 00078 5d pop rbp + 00079 c3 ret 0 +??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ENDP ; std::pair::pair +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z +_TEXT SEGMENT +_It$ = 224 +_UIt$ = 232 +??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z PROC ; std::_Seek_wrapped > >,unsigned long *>, COMDAT + +; 1417 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1418 : if constexpr (_Wrapped_seekable_v<_Iter, _UIter>) { +; 1419 : _It._Seek_to(static_cast<_UIter&&>(_UIt)); + + 0003b 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _UIt$[rbp] + 00042 48 8b 10 mov rdx, QWORD PTR [rax] + 00045 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 0004c e8 00 00 00 00 call ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to + +; 1420 : } else { +; 1421 : _It = static_cast<_UIter&&>(_UIt); +; 1422 : } +; 1423 : } + + 00051 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 +??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ENDP ; std::_Seek_wrapped > >,unsigned long *> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z +_TEXT SEGMENT +$T1 = 196 +_First$ = 256 +_Last$ = 264 +_Val$ = 272 +??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z PROC ; std::_Find_unchecked, COMDAT + +; 5160 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5161 : // find first matching _Val; choose optimization +; 5162 : // activate optimization for pointers to (const) bytes and integral values +; 5163 : using _Memchr_opt = bool_constant< +; 5164 : is_integral_v<_Ty> && _Is_any_of_v<_InIt, char*, signed char*, unsigned char*, // +; 5165 : const char*, const signed char*, const unsigned char*>>; +; 5166 : +; 5167 : return _Find_unchecked1(_First, _Last, _Val, _Memchr_opt{}); + + 00040 48 8d 85 c4 00 + 00 00 lea rax, QWORD PTR $T1[rbp] + 00047 48 8b f8 mov rdi, rax + 0004a 33 c0 xor eax, eax + 0004c b9 01 00 00 00 mov ecx, 1 + 00051 f3 aa rep stosb + 00053 44 0f b6 8d c4 + 00 00 00 movzx r9d, BYTE PTR $T1[rbp] + 0005b 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Val$[rbp] + 00062 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00069 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00070 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 + +; 5168 : } + + 00075 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 +??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ENDP ; std::_Find_unchecked +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > const &>, COMDAT + +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1232 : return _It + 0; +; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 0003d e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } + + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > const &> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > &>, COMDAT + +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1232 : return _It + 0; +; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 0003d e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } + + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > &> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z PROC ; std::_Adl_verify_range > >,std::_Vector_iterator > > >, COMDAT + +; 1192 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1193 : // check that [_First, _Last) forms an iterator range +; 1194 : if constexpr (_Range_verifiable_v<_Iter, _Sentinel>) { +; 1195 : _Verify_range(_First, _Last); + + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00049 e8 00 00 00 00 call ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range + +; 1196 : } +; 1197 : } + + 0004e 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00055 5f pop rdi + 00056 5d pop rbp + 00057 c3 ret 0 +??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ENDP ; std::_Adl_verify_range > >,std::_Vector_iterator > > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z PROC ; std::forward, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z PROC ; std::addressof, COMDAT + +; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 275 : return __builtin_addressof(_Val); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Val$[rbp] + +; 276 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ENDP ; std::addressof +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +_TEXT SEGMENT +_Ptr$ = 224 +_Bytes$ = 232 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT + +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { + +$LN4: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 215 : #if defined(_M_IX86) || defined(_M_X64) +; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0003b 48 81 bd e8 00 + 00 00 00 10 00 + 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H + 00046 72 13 jb SHORT $LN2@Deallocate + +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); + + 00048 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR _Bytes$[rbp] + 0004f 48 8d 8d e0 00 + 00 00 lea rcx, QWORD PTR _Ptr$[rbp] + 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned +$LN2@Deallocate: + +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); + + 0005b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Bytes$[rbp] + 00062 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 + +; 222 : } + + 0006f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +_TEXT SEGMENT +_Bytes$ = 224 +??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z PROC ; std::_Allocate<16,std::_Default_allocate_traits,0>, COMDAT + +; 197 : __declspec(allocator) void* _Allocate(const size_t _Bytes) { + +$LN5: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 198 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 199 : #if defined(_M_IX86) || defined(_M_X64) +; 200 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00036 48 81 bd e0 00 + 00 00 00 10 00 + 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H + 00041 72 0e jb SHORT $LN2@Allocate + +; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); + + 00043 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 0004a e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned + 0004f eb 1a jmp SHORT $LN1@Allocate +$LN2@Allocate: + +; 202 : } +; 203 : #endif // defined(_M_IX86) || defined(_M_X64) +; 204 : +; 205 : if (_Bytes != 0) { + + 00051 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 + 00059 74 0e je SHORT $LN3@Allocate + +; 206 : return _Traits::_Allocate(_Bytes); + + 0005b 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00062 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00067 eb 02 jmp SHORT $LN1@Allocate +$LN3@Allocate: + +; 207 : } +; 208 : +; 209 : return nullptr; + + 00069 33 c0 xor eax, eax +$LN1@Allocate: + +; 210 : } + + 0006b 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 +??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ENDP ; std::_Allocate<16,std::_Default_allocate_traits,0> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z +_TEXT SEGMENT +_Overflow_is_possible$ = 4 +_Max_possible$1 = 40 +_Count$ = 288 +??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<16>, COMDAT + +; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; + + 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; + + 0003a 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + +; 60 : if (_Count > _Max_possible) { + + 00048 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 00052 48 39 85 20 01 + 00 00 cmp QWORD PTR _Count$[rbp], rax + 00059 76 05 jbe SHORT $LN2@Get_size_o + +; 61 : _Throw_bad_array_new_length(); // multiply overflow + + 0005b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN2@Get_size_o: + +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; + + 00060 48 6b 85 20 01 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 +$LN3@Get_size_o: + +; 66 : } + + 00068 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0006f 5f pop rdi + 00070 5d pop rbp + 00071 c3 ret 0 +??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +_Al$ = 240 +??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z PROC ; std::_Destroy_range > >, COMDAT + +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ENDP ; std::_Destroy_range > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +_Al$ = 240 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT + +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +_TEXT SEGMENT +_Ptr$ = 224 +??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z PROC ; std::_Unfancy, COMDAT + +; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1444 : return static_cast<_Ty&&>(_Arg); +; 289 : return _Ptr; - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 290 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ENDP ; std::_Unfancy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z +_TEXT SEGMENT +$T1 = 200 +tv65 = 216 +_Left$ = 256 +_Right$ = 264 +??$min@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::min, COMDAT + +; 67 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { + +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 68 : // return smaller of _Left and _Right +; 69 : return _Right < _Left ? _Right : _Left; + + 0003b 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00042 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR _Left$[rbp] + 00049 48 8b 09 mov rcx, QWORD PTR [rcx] + 0004c 48 39 08 cmp QWORD PTR [rax], rcx + 0004f 73 10 jae SHORT $LN3@min + 00051 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00058 48 89 85 d8 00 + 00 00 mov QWORD PTR tv65[rbp], rax + 0005f eb 0e jmp SHORT $LN4@min +$LN3@min: + 00061 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Left$[rbp] + 00068 48 89 85 d8 00 + 00 00 mov QWORD PTR tv65[rbp], rax +$LN4@min: + 0006f 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv65[rbp] + 00076 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0007d 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR $T1[rbp] + +; 70 : } + + 00084 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +??$min@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::min +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +_TEXT SEGMENT +this$ = 224 +??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT + +; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 126 : return _Ok; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] -; 1445 : } +; 127 : } - 00026 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$forward@K@std@@YA$$QEAKAEAK@Z ENDP ; std::forward + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ENDP ; std::basic_ostream >::sentry::operator bool +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Zero_uncaught_exceptions$ = 4 +tv72 = 212 +this$ = 256 +??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT + +; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { + +$LN6: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 111 : #if !_HAS_EXCEPTIONS +; 112 : const bool _Zero_uncaught_exceptions = true; +; 113 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 114 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 + + 00036 e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception + 0003b 0f b6 c0 movzx eax, al + 0003e 85 c0 test eax, eax + 00040 75 09 jne SHORT $LN4@sentry + 00042 c6 85 d4 00 00 + 00 01 mov BYTE PTR tv72[rbp], 1 + 00049 eb 07 jmp SHORT $LN5@sentry +$LN4@sentry: + 0004b c6 85 d4 00 00 + 00 00 mov BYTE PTR tv72[rbp], 0 +$LN5@sentry: + 00052 0f b6 85 d4 00 + 00 00 movzx eax, BYTE PTR tv72[rbp] + 00059 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al + +; 115 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv +; 116 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; +; 117 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 118 : +; 119 : if (_Zero_uncaught_exceptions) { + + 0005c 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] + 00060 85 c0 test eax, eax + 00062 74 10 je SHORT $LN2@sentry + +; 120 : this->_Myostr._Osfx(); + + 00064 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ +$LN2@sentry: + +; 121 : } +; 122 : } + + 00074 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00080 90 npad 1 + 00081 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00088 5f pop rdi + 00089 5d pop rbp + 0008a c3 ret 0 +??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +_TEXT SEGMENT +_Tied$ = 8 +this$ = 256 +_Ostr$ = 264 +??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::sentry::sentry, COMDAT + +; 92 : explicit __CLR_OR_THIS_CALL sentry(basic_ostream& _Ostr) : _Sentry_base(_Ostr) { + +$LN7: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Ostr$[rbp] + 00042 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00049 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base + 0004e 90 npad 1 + +; 93 : if (!_Ostr.good()) { + + 0004f 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00056 48 8b 00 mov rax, QWORD PTR [rax] + 00059 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005d 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00064 48 03 c8 add rcx, rax + 00067 48 8b c1 mov rax, rcx + 0006a 48 8b c8 mov rcx, rax + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ + 00073 0f b6 c0 movzx eax, al + 00076 85 c0 test eax, eax + 00078 75 10 jne SHORT $LN2@sentry + +; 94 : _Ok = false; + + 0007a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 + +; 95 : return; + + 00085 e9 81 00 00 00 jmp $LN1@sentry +$LN2@sentry: + +; 96 : } +; 97 : +; 98 : const auto _Tied = _Ostr.tie(); + + 0008a 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00091 48 8b 00 mov rax, QWORD PTR [rax] + 00094 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00098 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0009f 48 03 c8 add rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 8b c8 mov rcx, rax + 000a8 ff 15 00 00 00 + 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ + 000ae 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax + +; 99 : if (!_Tied || _Tied == &_Ostr) { + + 000b2 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 + 000b7 74 0d je SHORT $LN4@sentry + 000b9 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax + 000c4 75 0d jne SHORT $LN3@sentry +$LN4@sentry: + +; 100 : _Ok = true; + + 000c6 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 + +; 101 : return; + + 000d1 eb 38 jmp SHORT $LN1@sentry +$LN3@sentry: + +; 102 : } +; 103 : +; 104 : +; 105 : _Tied->flush(); + + 000d3 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] + 000d7 ff 15 00 00 00 + 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ + +; 106 : _Ok = _Ostr.good(); // store test only after flushing tie + + 000dd 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000e4 48 8b 00 mov rax, QWORD PTR [rax] + 000e7 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000eb 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 000f2 48 03 c8 add rcx, rax + 000f5 48 8b c1 mov rax, rcx + 000f8 48 8b c8 mov rcx, rax + 000fb ff 15 00 00 00 + 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ + 00101 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00108 88 41 08 mov BYTE PTR [rcx+8], al +$LN1@sentry: + +; 107 : } + + 0010b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00119 5f pop rdi + 0011a 5d pop rbp + 0011b c3 ret 0 +??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry _TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_Tied$ = 8 +this$ = 256 +_Ostr$ = 264 +?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA PROC ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Tied$ = 8 +this$ = 256 +_Ostr$ = 264 +?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA PROC ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT -_Val$ = 224 -??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z PROC ; std::_To_address, COMDAT +_Rdbuf$ = 8 +tv72 = 216 +this$ = 256 +??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::_Sentry_base::~_Sentry_base, COMDAT -; 4074 : _NODISCARD constexpr auto _To_address(const _Iter& _Val) noexcept { +; 78 : __CLR_OR_THIS_CALL ~_Sentry_base() noexcept { // destroy after unlocking -$LN3: +$LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 00007 48 81 ec 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:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4075 : _STL_INTERNAL_STATIC_ASSERT(is_pointer_v<_Iter>); -; 4076 : return _Val; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4077 : } +; 79 : const auto _Rdbuf = _Myostr.rdbuf(); - 00029 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 -??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ENDP ; std::_To_address -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z -_TEXT SEGMENT -_Ptr$ = 224 -??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 85 d8 00 + 00 00 mov QWORD PTR tv72[rbp], rax + 00047 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv72[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00055 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR tv72[rbp] + 0005c 48 03 c8 add rcx, rax + 0005f 48 8b c1 mov rax, rcx + 00062 48 8b c8 mov rcx, rax + 00065 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax -; 298 : _CONSTEXPR20 _Pointer _Refancy(_Pointer _Ptr) noexcept { +; 80 : if (_Rdbuf) { -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00074 74 0f je SHORT $LN2@Sentry_bas -; 299 : return _Ptr; +; 81 : _Rdbuf->_Unlock(); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00081 ff 50 10 call QWORD PTR [rax+16] + 00084 90 npad 1 +$LN2@Sentry_bas: -; 300 : } +; 82 : } +; 83 : } - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ENDP ; std::_Refancy + 00085 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 +??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT -tv78 = 192 -tv76 = 200 -tv74 = 208 +_Rdbuf$ = 8 +tv73 = 216 this$ = 256 -<_Vals_0>$ = 264 -??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z PROC ; std::_Uninitialized_backout_al >::_Emplace_back, COMDAT +_Ostr$ = 264 +??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::_Sentry_base::_Sentry_base, COMDAT -; 1610 : _CONSTEXPR20_DYNALLOC void _Emplace_back(_Types&&... _Vals) { // construct a new element at *_Last and increment +; 71 : __CLR_OR_THIS_CALL _Sentry_base(basic_ostream& _Ostr) : _Myostr(_Ostr) { // lock the stream buffer, if there -$LN3: +$LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp @@ -4558,939 +8401,1112 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1611 : allocator_traits<_Alloc>::construct(_Al, _Unfancy(_Last), _STD forward<_Types>(_Vals)...); - - 00024 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR <_Vals_0>$[rbp] - 0002b e8 00 00 00 00 call ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward - 00030 48 89 85 c0 00 - 00 00 mov QWORD PTR tv78[rbp], rax - 00037 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 00042 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 00047 48 89 85 c8 00 - 00 00 mov QWORD PTR tv76[rbp], rax - 0004e 48 8b 85 00 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00059 48 89 85 d0 00 - 00 00 mov QWORD PTR tv74[rbp], rax - 00060 4c 8b 85 c0 00 - 00 00 mov r8, QWORD PTR tv78[rbp] - 00067 48 8b 95 c8 00 - 00 00 mov rdx, QWORD PTR tv76[rbp] - 0006e 48 8b 8d d0 00 - 00 00 mov rcx, QWORD PTR tv74[rbp] - 00075 e8 00 00 00 00 call ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ; std::_Default_allocator_traits >::construct + 00042 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00049 48 89 08 mov QWORD PTR [rax], rcx -; 1612 : ++_Last; +; 72 : const auto _Rdbuf = _Myostr.rdbuf(); - 0007a 48 8b 85 00 01 + 0004c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00081 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00085 48 83 c0 04 add rax, 4 - 00089 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00090 48 89 41 08 mov QWORD PTR [rcx+8], rax - -; 1613 : } - - 00094 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0009b 5f pop rdi - 0009c 5d pop rbp - 0009d c3 ret 0 -??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ENDP ; std::_Uninitialized_backout_al >::_Emplace_back -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z -_TEXT SEGMENT -this$ = 224 -classSize$ = 232 -?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z PROC ; std::_Uninitialized_backout_al >::__autoclassinit2, COMDAT -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec c8 00 - 00 00 sub rsp, 200 ; 000000c8H - 00013 48 8b ec mov rbp, rsp - 00016 48 8b bd e0 00 - 00 00 mov rdi, QWORD PTR this$[rbp] - 0001d 33 c0 xor eax, eax - 0001f 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR classSize$[rbp] - 00026 f3 aa rep stosb - 00028 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002f 5f pop rdi - 00030 5d pop rbp - 00031 c3 ret 0 -?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z ENDP ; std::_Uninitialized_backout_al >::__autoclassinit2 -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ -_TEXT SEGMENT -this$ = 224 -?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::_Uninitialized_backout_al >::_Release, COMDAT + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 89 85 d8 00 + 00 00 mov QWORD PTR tv73[rbp], rax + 0005d 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv73[rbp] + 00064 48 8b 00 mov rax, QWORD PTR [rax] + 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0006b 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR tv73[rbp] + 00072 48 03 c8 add rcx, rax + 00075 48 8b c1 mov rax, rcx + 00078 48 8b c8 mov rcx, rax + 0007b ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax -; 1615 : constexpr pointer _Release() { // suppress any exception handling backout and return _Last +; 73 : if (_Rdbuf) { -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0008a 74 0e je SHORT $LN2@Sentry_bas -; 1616 : _First = _Last; +; 74 : _Rdbuf->_Lock(); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0002d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00031 48 89 08 mov QWORD PTR [rax], rcx + 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00090 48 8b 00 mov rax, QWORD PTR [rax] + 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00097 ff 50 08 call QWORD PTR [rax+8] +$LN2@Sentry_bas: -; 1617 : return _Last; +; 75 : } +; 76 : } - 00034 48 8b 85 e0 00 + 0009a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - -; 1618 : } - - 0003f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 -?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::_Uninitialized_backout_al >::_Release + 000a1 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000a8 5f pop rdi + 000a9 5d pop rbp + 000aa c3 ret 0 +??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z _TEXT SEGMENT this$ = 224 -??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al >, COMDAT +__formal$ = 232 +??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Compressed_pair >,std::_Vector_val > >,1><>, COMDAT -; 1605 : _CONSTEXPR20_DYNALLOC ~_Uninitialized_backout_al() { +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1606 : _Destroy_range(_First, _Last, _Al); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 4c 8b 40 10 mov r8, QWORD PTR [rax+16] - 0002a 48 8b 85 e0 00 + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00041 e8 00 00 00 00 call ??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ ; std::allocator >::allocator > + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 00035 48 8b 85 e0 00 + 0004d 48 8b c8 mov rcx, rax + 00050 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Vector_val > >::_Vector_val > > + 00055 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 8b 08 mov rcx, QWORD PTR [rax] - 0003f e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > - -; 1607 : } - - 00044 48 8d a5 c8 00 + 0005c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 -??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 +??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Compressed_pair >,std::_Vector_val > >,1><> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z _TEXT SEGMENT this$ = 224 -_Dest$ = 232 -_Al_$ = 240 -??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z PROC ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al >, COMDAT +__formal$ = 232 +??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z PROC ; std::allocator::allocator >, COMDAT -; 1600 : : _First(_Dest), _Last(_Dest), _Al(_Al_) {} +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 00037 48 89 08 mov QWORD PTR [rax], rcx - 0003a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00041 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 00048 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0004c 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Al_$[rbp] - 0005a 48 89 48 10 mov QWORD PTR [rax+16], rcx - 0005e 48 8b 85 e0 00 + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00065 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0006c 5f pop rdi - 0006d 5d pop rbp - 0006e c3 ret 0 -??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ENDP ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ENDP ; std::allocator::allocator > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z _TEXT SEGMENT -_FirstPtr$ = 8 -_LastPtr$ = 40 -_DestPtr$ = 72 -_First_ch$ = 104 -_Last_ch$ = 136 -_Dest_ch$ = 168 -_Count$ = 200 -_First$ = 448 -_Last$ = 456 -_Dest$ = 464 -??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z PROC ; std::_Copy_memmove, COMDAT +_New_proxy$ = 8 +$T1 = 232 +this$ = 288 +_Al$ = 296 +??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT -; 4153 : _OutCtgIt _Copy_memmove(_CtgIt _First, _CtgIt _Last, _OutCtgIt _Dest) { +; 1101 : void _Alloc_proxy(_Alloc&& _Al) { $LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec c8 01 - 00 00 sub rsp, 456 ; 000001c8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4154 : auto _FirstPtr = _To_address(_First); - - 00029 48 8d 8d c0 01 - 00 00 lea rcx, QWORD PTR _First$[rbp] - 00030 e8 00 00 00 00 call ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address - 00035 48 89 45 08 mov QWORD PTR _FirstPtr$[rbp], rax - -; 4155 : auto _LastPtr = _To_address(_Last); - - 00039 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR _Last$[rbp] - 00040 e8 00 00 00 00 call ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address - 00045 48 89 45 28 mov QWORD PTR _LastPtr$[rbp], rax - -; 4156 : auto _DestPtr = _To_address(_Dest); - - 00049 48 8d 8d d0 01 - 00 00 lea rcx, QWORD PTR _Dest$[rbp] - 00050 e8 00 00 00 00 call ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address - 00055 48 89 45 48 mov QWORD PTR _DestPtr$[rbp], rax - -; 4157 : const char* const _First_ch = const_cast(reinterpret_cast(_FirstPtr)); - - 00059 48 8b 45 08 mov rax, QWORD PTR _FirstPtr$[rbp] - 0005d 48 89 45 68 mov QWORD PTR _First_ch$[rbp], rax - -; 4158 : const char* const _Last_ch = const_cast(reinterpret_cast(_LastPtr)); - - 00061 48 8b 45 28 mov rax, QWORD PTR _LastPtr$[rbp] - 00065 48 89 85 88 00 - 00 00 mov QWORD PTR _Last_ch$[rbp], rax - -; 4159 : char* const _Dest_ch = const_cast(reinterpret_cast(_DestPtr)); - - 0006c 48 8b 45 48 mov rax, QWORD PTR _DestPtr$[rbp] - 00070 48 89 85 a8 00 - 00 00 mov QWORD PTR _Dest_ch$[rbp], rax + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1102 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); + + 0003b ba 01 00 00 00 mov edx, 1 + 00040 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00047 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate + 0004c 48 8b c8 mov rcx, rax + 0004f e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy + 00054 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax -; 4160 : const auto _Count = static_cast(_Last_ch - _First_ch); +; 1103 : _Construct_in_place(*_New_proxy, this); - 00077 48 8b 45 68 mov rax, QWORD PTR _First_ch$[rbp] - 0007b 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR _Last_ch$[rbp] - 00082 48 2b c8 sub rcx, rax - 00085 48 8b c1 mov rax, rcx - 00088 48 89 85 c8 00 - 00 00 mov QWORD PTR _Count$[rbp], rax + 00058 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 89 85 e8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00066 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00071 e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place -; 4161 : _CSTD memmove(_Dest_ch, _First_ch, _Count); +; 1104 : _Myproxy = _New_proxy; - 0008f 4c 8b 85 c8 00 - 00 00 mov r8, QWORD PTR _Count$[rbp] - 00096 48 8b 55 68 mov rdx, QWORD PTR _First_ch$[rbp] - 0009a 48 8b 8d a8 00 - 00 00 mov rcx, QWORD PTR _Dest_ch$[rbp] - 000a1 e8 00 00 00 00 call memmove + 00076 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00081 48 89 08 mov QWORD PTR [rax], rcx -; 4162 : if constexpr (is_pointer_v<_OutCtgIt>) { -; 4163 : return reinterpret_cast<_OutCtgIt>(_Dest_ch + _Count); +; 1105 : _New_proxy->_Mycont = this; - 000a6 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR _Count$[rbp] - 000ad 48 8b 8d a8 00 - 00 00 mov rcx, QWORD PTR _Dest_ch$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx + 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00088 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008f 48 89 08 mov QWORD PTR [rax], rcx -; 4164 : } else { -; 4165 : return _Dest + (_LastPtr - _FirstPtr); -; 4166 : } -; 4167 : } +; 1106 : } - 000ba 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 000c1 5f pop rdi - 000c2 5d pop rbp - 000c3 c3 ret 0 -??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ENDP ; std::_Copy_memmove + 00092 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00099 5f pop rdi + 0009a 5d pop rbp + 0009b c3 ret 0 +??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits -; COMDAT ??$move@AEAK@std@@YA$$QEAKAEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z _TEXT SEGMENT -_Arg$ = 224 -??$move@AEAK@std@@YA$$QEAKAEAK@Z PROC ; std::move, COMDAT +this$ = 224 +__formal$ = 232 +??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><>, COMDAT -; 1455 : _NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movable +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00041 e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator + 00046 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004d 48 8b c8 mov rcx, rax + 00050 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > + 00055 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 +??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 -; 1456 : return static_cast&&>(_Arg); +; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1028 : using _Ty = typename _Alloc::value_type; +; 1029 : _Ptr->~_Ty(); +; 1030 : _Deallocate_plain(_Al, _Ptr); + + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0004e 90 npad 1 -; 1457 : } +; 1031 : } - 00026 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$move@AEAK@std@@YA$$QEAKAEAK@Z ENDP ; std::move + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT -_It$ = 224 -??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1327 : return _It + 0; +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); -; 1330 : } else { -; 1331 : return static_cast<_Iter&&>(_It); -; 1332 : } -; 1333 : } +; 600 : _Val = static_cast<_Other&&>(_New_val); - 00029 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 -??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ENDP ; std::_Get_unwrapped + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _New_val$[rbp] + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits -; COMDAT ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z _TEXT SEGMENT -_Arg$ = 224 -??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z PROC ; std::forward, COMDAT +this$ = 224 +__formal$ = 232 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT -; 1444 : return static_cast<_Ty&&>(_Arg); +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 1445 : } +; 808 : } - 00026 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ENDP ; std::forward + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z _TEXT SEGMENT -_First$ = 224 -_Last$ = 232 -_Val$ = 240 -__formal$ = 248 -??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z PROC ; std::_Find_unchecked1, COMDAT +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv134 = 536 +tv132 = 544 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z PROC ; std::vector >::_Emplace_reallocate, COMDAT -; 5298 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { +; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { -$LN7: - 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN13: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 96 00 00 00 mov ecx, 150 ; 00000096H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 5299 : // find first matching _Val -; 5300 : for (; _First != _Last; ++_First) { +; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 727 : _Alty& _Al = _Getal(); - 0002e eb 12 jmp SHORT $LN4@Find_unche -$LN2@Find_unche: - 00030 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] - 00037 48 83 c0 04 add rax, 4 - 0003b 48 89 85 e0 00 - 00 00 mov QWORD PTR _First$[rbp], rax -$LN4@Find_unche: - 00042 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _Last$[rbp] - 00049 48 39 85 e0 00 - 00 00 cmp QWORD PTR _First$[rbp], rax - 00050 74 18 je SHORT $LN3@Find_unche + 00040 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 48 89 45 08 mov QWORD PTR _Al$[rbp], rax -; 5301 : if (*_First == _Val) { +; 728 : auto& _My_data = _Mypair._Myval2; - 00052 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] - 00059 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Val$[rbp] - 00060 8b 09 mov ecx, DWORD PTR [rcx] - 00062 39 08 cmp DWORD PTR [rax], ecx - 00064 75 02 jne SHORT $LN5@Find_unche + 00050 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 00057 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax -; 5302 : break; +; 729 : pointer& _Myfirst = _My_data._Myfirst; - 00066 eb 02 jmp SHORT $LN3@Find_unche -$LN5@Find_unche: + 0005b 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 0005f 48 83 c0 08 add rax, 8 + 00063 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax -; 5303 : } -; 5304 : } +; 730 : pointer& _Mylast = _My_data._Mylast; - 00068 eb c6 jmp SHORT $LN2@Find_unche -$LN3@Find_unche: + 00067 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 0006b 48 83 c0 10 add rax, 16 + 0006f 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax -; 5305 : -; 5306 : return _First; +; 731 : +; 732 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity +; 733 : +; 734 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); - 0006a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] + 00073 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 00077 48 8b 00 mov rax, QWORD PTR [rax] + 0007a 48 8b 8d 58 02 + 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] + 00081 48 2b c8 sub rcx, rax + 00084 48 8b c1 mov rax, rcx + 00087 48 c1 f8 02 sar rax, 2 + 0008b 48 89 85 88 00 + 00 00 mov QWORD PTR _Whereoff$[rbp], rax -; 5307 : } +; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); - 00071 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ENDP ; std::_Find_unchecked1 -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Get_size_of_n@$03@std@@YA_K_K@Z -_TEXT SEGMENT -_Overflow_is_possible$ = 4 -_Max_possible$1 = 40 -_Count$ = 288 -??$_Get_size_of_n@$03@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<4>, COMDAT + 00092 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00096 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0009d 48 8b 00 mov rax, QWORD PTR [rax] + 000a0 48 2b c1 sub rax, rcx + 000a3 48 c1 f8 02 sar rax, 2 + 000a7 48 89 85 a8 00 + 00 00 mov QWORD PTR _Oldsize$[rbp], rax -; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 736 : +; 737 : if (_Oldsize == max_size()) { -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000ae 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000b5 e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size + 000ba 48 39 85 a8 00 + 00 00 cmp QWORD PTR _Oldsize$[rbp], rax + 000c1 75 05 jne SHORT $LN2@Emplace_re -; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 738 : _Xlength(); - 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 000c3 e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +$LN2@Emplace_re: -; 61 : -; 62 : if constexpr (_Overflow_is_possible) { -; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; +; 739 : } +; 740 : +; 741 : const size_type _Newsize = _Oldsize + 1; - 00023 48 b8 ff ff ff - ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + 000c8 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR _Oldsize$[rbp] + 000cf 48 ff c0 inc rax + 000d2 48 89 85 c8 00 + 00 00 mov QWORD PTR _Newsize$[rbp], rax -; 64 : if (_Count > _Max_possible) { +; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); - 00031 48 b8 ff ff ff - ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 0003b 48 39 85 20 01 - 00 00 cmp QWORD PTR _Count$[rbp], rax - 00042 76 05 jbe SHORT $LN2@Get_size_o + 000d9 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR _Newsize$[rbp] + 000e0 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000e7 e8 00 00 00 00 call ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth + 000ec 48 89 85 e8 00 + 00 00 mov QWORD PTR _Newcapacity$[rbp], rax -; 65 : _Throw_bad_array_new_length(); // multiply overflow +; 743 : +; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); - 00044 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length -$LN2@Get_size_o: + 000f3 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] + 000fa 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 000fe e8 00 00 00 00 call ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate + 00103 48 89 85 08 01 + 00 00 mov QWORD PTR _Newvec$[rbp], rax -; 66 : } -; 67 : } -; 68 : -; 69 : return _Count * _Ty_size; +; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; - 00049 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR _Count$[rbp] - 00050 48 c1 e0 02 shl rax, 2 -$LN3@Get_size_o: + 0010a 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 00111 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] + 00118 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 0011d 48 89 85 28 01 + 00 00 mov QWORD PTR _Constructed_last$[rbp], rax -; 70 : } +; 746 : pointer _Constructed_first = _Constructed_last; - 00054 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 -??$_Get_size_of_n@$03@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<4> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z -_TEXT SEGMENT -_UFirst$ = 8 -_ULast$ = 40 -_Backout$ = 72 -$T4 = 312 -__$ArrayPad$ = 328 -_First$ = 368 -_Last$ = 376 -_Dest$ = 384 -_Al$ = 392 -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z PROC ; std::_Uninitialized_move >, COMDAT + 00124 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] + 0012b 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 1693 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { +; 747 : +; 748 : _TRY_BEGIN +; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); -$LN7: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 48 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00132 48 8b 8d 60 02 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00139 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0013e 48 89 85 18 02 + 00 00 mov QWORD PTR tv134[rbp], rax + 00145 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 0014c 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] + 00153 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00157 48 8b c8 mov rcx, rax + 0015a e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 0015f 48 89 85 20 02 + 00 00 mov QWORD PTR tv132[rbp], rax + 00166 4c 8b 85 18 02 + 00 00 mov r8, QWORD PTR tv134[rbp] + 0016d 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR tv132[rbp] + 00174 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00178 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct -; 1694 : // move [_First, _Last) to raw _Dest, using _Al -; 1695 : // note: only called internally from elsewhere in the STL -; 1696 : using _Ptrval = typename _Alloc::value_type*; -; 1697 : auto _UFirst = _Get_unwrapped(_First); +; 750 : _Constructed_first = _Newvec + _Whereoff; - 00058 48 8d 8d 70 01 - 00 00 lea rcx, QWORD PTR _First$[rbp] - 0005f e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped - 00064 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax + 0017d 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 00184 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] + 0018b 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 0018f 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 1698 : const auto _ULast = _Get_unwrapped(_Last); +; 751 : +; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee - 00068 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR _Last$[rbp] - 0006f e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped - 00074 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax - -; 1699 : if constexpr (conjunction_v::_Really_trivial>, -; 1700 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { -; 1701 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1702 : if (!_STD is_constant_evaluated()) -; 1703 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1704 : { -; 1705 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); - - 00078 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 0007f e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 00084 4c 8b c0 mov r8, rax - 00087 48 8b 55 28 mov rdx, QWORD PTR _ULast$[rbp] - 0008b 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] - 0008f e8 00 00 00 00 call ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove - -; 1706 : return _Dest + (_ULast - _UFirst); - - 00094 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] - 00098 48 8b 4d 28 mov rcx, QWORD PTR _ULast$[rbp] - 0009c 48 2b c8 sub rcx, rax - 0009f 48 8b c1 mov rax, rcx - 000a2 48 c1 f8 02 sar rax, 2 - 000a6 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 000ad 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] - 000b1 eb 74 jmp SHORT $LN1@Uninitiali - -; 1707 : } -; 1708 : } -; 1709 : -; 1710 : _Uninitialized_backout_al<_Alloc> _Backout{_Dest, _Al}; - - 000b3 ba 18 00 00 00 mov edx, 24 - 000b8 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 000bc e8 00 00 00 00 call ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z - 000c1 4c 8b 85 88 01 - 00 00 mov r8, QWORD PTR _Al$[rbp] - 000c8 48 8b 95 80 01 - 00 00 mov rdx, QWORD PTR _Dest$[rbp] - 000cf 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 000d3 e8 00 00 00 00 call ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > + 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0019a 48 8b 00 mov rax, QWORD PTR [rax] + 0019d 48 39 85 58 02 + 00 00 cmp QWORD PTR _Whereptr$[rbp], rax + 001a4 75 23 jne SHORT $LN4@Emplace_re -; 1711 : for (; _UFirst != _ULast; ++_UFirst) { +; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); - 000d8 eb 0c jmp SHORT $LN4@Uninitiali -$LN2@Uninitiali: - 000da 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] - 000de 48 83 c0 04 add rax, 4 - 000e2 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax -$LN4@Uninitiali: - 000e6 48 8b 45 28 mov rax, QWORD PTR _ULast$[rbp] - 000ea 48 39 45 08 cmp QWORD PTR _UFirst$[rbp], rax - 000ee 74 17 je SHORT $LN3@Uninitiali + 001a6 4c 8b 8d 08 01 + 00 00 mov r9, QWORD PTR _Newvec$[rbp] + 001ad 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001b1 4c 8b 00 mov r8, QWORD PTR [rax] + 001b4 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001b8 48 8b 10 mov rdx, QWORD PTR [rax] + 001bb 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001c2 e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept -; 1712 : _Backout._Emplace_back(_STD move(*_UFirst)); +; 754 : } else { // provide basic guarantee - 000f0 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] - 000f4 e8 00 00 00 00 call ??$move@AEAK@std@@YA$$QEAKAEAK@Z ; std::move - 000f9 48 8b d0 mov rdx, rax - 000fc 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 00100 e8 00 00 00 00 call ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ; std::_Uninitialized_backout_al >::_Emplace_back + 001c7 eb 60 jmp SHORT $LN5@Emplace_re +$LN4@Emplace_re: -; 1713 : } +; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); - 00105 eb d3 jmp SHORT $LN2@Uninitiali -$LN3@Uninitiali: + 001c9 4c 8b 8d 08 01 + 00 00 mov r9, QWORD PTR _Newvec$[rbp] + 001d0 4c 8b 85 58 02 + 00 00 mov r8, QWORD PTR _Whereptr$[rbp] + 001d7 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001db 48 8b 10 mov rdx, QWORD PTR [rax] + 001de 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001e5 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove -; 1714 : -; 1715 : return _Backout._Release(); +; 756 : _Constructed_first = _Newvec; - 00107 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 0010b e8 00 00 00 00 call ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::_Uninitialized_backout_al >::_Release - 00110 48 89 85 38 01 - 00 00 mov QWORD PTR $T4[rbp], rax - 00117 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 0011b e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > - 00120 48 8b 85 38 01 - 00 00 mov rax, QWORD PTR $T4[rbp] -$LN1@Uninitiali: + 001ea 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 001f1 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 1716 : } +; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); - 00127 48 8b f8 mov rdi, rax - 0012a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0012e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcFrameData - 00135 e8 00 00 00 00 call _RTC_CheckStackVars - 0013a 48 8b c7 mov rax, rdi - 0013d 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00144 48 33 cd xor rcx, rbp - 00147 e8 00 00 00 00 call __security_check_cookie - 0014c 48 8d a5 58 01 - 00 00 lea rsp, QWORD PTR [rbp+344] - 00153 5f pop rdi - 00154 5d pop rbp - 00155 c3 ret 0 -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Uninitialized_move > + 001f8 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 001ff 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] + 00206 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 0020b 4c 8b c8 mov r9, rax + 0020e 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00212 4c 8b 00 mov r8, QWORD PTR [rax] + 00215 48 8b 95 58 02 + 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] + 0021c 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00223 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 00228 90 npad 1 +$LN5@Emplace_re: + 00229 eb 00 jmp SHORT $LN9@Emplace_re +$LN10@Emplace_re: +$LN9@Emplace_re: + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END +; 764 : +; 765 : _Change_array(_Newvec, _Newsize, _Newcapacity); + + 0022b 4c 8b 8d e8 00 + 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] + 00232 4c 8b 85 c8 00 + 00 00 mov r8, QWORD PTR _Newsize$[rbp] + 00239 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 00240 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00247 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array + +; 766 : return _Newvec + _Whereoff; + + 0024c 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 00253 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] + 0025a 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + +; 767 : } + + 0025e 48 8d a5 38 02 + 00 00 lea rsp, QWORD PTR [rbp+568] + 00265 5f pop rdi + 00266 5d pop rbp + 00267 c3 ret 0 +$LN11@Emplace_re: +??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ENDP ; std::vector >::_Emplace_reallocate _TEXT ENDS ; COMDAT text$x text$x SEGMENT -_UFirst$ = 8 -_ULast$ = 40 -_Backout$ = 72 -$T4 = 312 -__$ArrayPad$ = 328 -_First$ = 368 -_Last$ = 376 -_Dest$ = 384 -_Al$ = 392 -?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA PROC ; `std::_Uninitialized_move >'::`1'::dtor$0 +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv134 = 536 +tv132 = 544 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 + +; 758 : } +; 759 : _CATCH_ALL + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > - 0001d 48 83 c4 28 add rsp, 40 ; 00000028H - 00021 5f pop rdi - 00022 5d pop rbp - 00023 c3 ret 0 -?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA ENDP ; `std::_Uninitialized_move >'::`1'::dtor$0 +__catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); + + 00014 4c 8b 85 28 01 + 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] + 0001b 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); + + 0002e 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] + 00035 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; + + 00045 33 d2 xor edx, edx + 00047 33 c9 xor ecx, ecx + 00049 e8 00 00 00 00 call _CxxThrowException + 0004e 90 npad 1 + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END + + 0004f 48 8d 05 00 00 + 00 00 lea rax, $LN10@catch$0 + 00056 48 83 c4 28 add rsp, 40 ; 00000028H + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 + 0005d cc int 3 +?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA ENDP ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -_UFirst$ = 8 -_ULast$ = 40 -_Backout$ = 72 -$T4 = 312 -__$ArrayPad$ = 328 -_First$ = 368 -_Last$ = 376 -_Dest$ = 384 -_Al$ = 392 -?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA PROC ; `std::_Uninitialized_move >'::`1'::dtor$0 +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv134 = 536 +tv132 = 544 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 + +; 759 : _CATCH_ALL + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] - 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > - 0001d 48 83 c4 28 add rsp, 40 ; 00000028H - 00021 5f pop rdi - 00022 5d pop rbp - 00023 c3 ret 0 -?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA ENDP ; `std::_Uninitialized_move >'::`1'::dtor$0 +__catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: + +; 760 : _Destroy(_Constructed_first, _Constructed_last); + + 00014 4c 8b 85 28 01 + 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] + 0001b 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + +; 761 : _Al.deallocate(_Newvec, _Newcapacity); + + 0002e 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] + 00035 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + +; 762 : _RERAISE; + + 00045 33 d2 xor edx, edx + 00047 33 c9 xor ecx, ecx + 00049 e8 00 00 00 00 call _CxxThrowException + 0004e 90 npad 1 + +; 763 : _CATCH_END + + 0004f 48 8d 05 00 00 + 00 00 lea rax, $LN10@catch$0 + 00056 48 83 c4 28 add rsp, 40 ; 00000028H + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 + 0005d cc int 3 +?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA ENDP ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z _TEXT SEGMENT -_Block_size$ = 8 -_Ptr_container$ = 40 -_Ptr$ = 72 -_Bytes$ = 320 -??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT +$T1 = 200 +__formal$ = 256 +_Ptr$ = 264 +<_Args_0>$ = 272 +??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT -; 134 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { +; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { -$LN13: +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00047 b9 04 00 00 00 mov ecx, 4 + 0004c e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00051 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00058 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 0005f e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00064 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 0006b 8b 00 mov eax, DWORD PTR [rax] + 0006d 89 01 mov DWORD PTR [rcx], eax + +; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); +; 695 : } + + 0006f 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 +??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ENDP ; std::_Default_allocator_traits >::construct +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$_Unfancy@K@std@@YAPEAKPEAK@Z +_TEXT SEGMENT +_Ptr$ = 224 +??$_Unfancy@K@std@@YAPEAKPEAK@Z PROC ; std::_Unfancy, COMDAT + +; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers + +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 58 01 - 00 00 sub rsp, 344 ; 00000158H - 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 135 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment -; 136 : const size_t _Block_size = _Non_user_size + _Bytes; +; 289 : return _Ptr; - 0001f 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00026 48 83 c0 2f add rax, 47 ; 0000002fH - 0002a 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] -; 137 : if (_Block_size <= _Bytes) { +; 290 : } - 0002e 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00035 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax - 00039 77 05 ja SHORT $LN8@Allocate_m + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$_Unfancy@K@std@@YAPEAKPEAK@Z ENDP ; std::_Unfancy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z +_TEXT SEGMENT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv81 = 280 +tv79 = 288 +tv77 = 296 +this$ = 336 +<_Val_0>$ = 344 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z PROC ; std::vector >::_Emplace_back_with_unused_capacity, COMDAT + +; 682 : decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 138 : _Throw_bad_array_new_length(); // add overflow +; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 684 : auto& _My_data = _Mypair._Myval2; - 0003b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length -$LN8@Allocate_m: + 0003b 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 139 : } -; 140 : -; 141 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); +; 685 : pointer& _Mylast = _My_data._Mylast; - 00040 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] - 00044 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate - 00049 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax -$LN4@Allocate_m: + 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004a 48 83 c0 10 add rax, 16 + 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax -; 142 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] +; 686 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity +; 687 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); - 0004d 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 - 00052 74 02 je SHORT $LN9@Allocate_m - 00054 eb 6b jmp SHORT $LN10@Allocate_m -$LN9@Allocate_m: -$LN7@Allocate_m: - 00056 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0005d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00062 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00069 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0006e 45 33 c9 xor r9d, r9d - 00071 41 b8 8e 00 00 - 00 mov r8d, 142 ; 0000008eH - 00077 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0007e b9 02 00 00 00 mov ecx, 2 - 00083 ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 00089 83 f8 01 cmp eax, 1 - 0008c 75 03 jne SHORT $LN12@Allocate_m - 0008e cc int 3 - 0008f 33 c0 xor eax, eax -$LN12@Allocate_m: - 00091 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0009a 41 b9 8e 00 00 - 00 mov r9d, 142 ; 0000008eH - 000a0 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000a7 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ - 000ae 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000b5 ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 000bb 33 c0 xor eax, eax - 000bd 85 c0 test eax, eax - 000bf 75 95 jne SHORT $LN7@Allocate_m -$LN10@Allocate_m: - 000c1 33 c0 xor eax, eax - 000c3 85 c0 test eax, eax - 000c5 75 86 jne SHORT $LN4@Allocate_m + 00052 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00059 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0005e 48 89 85 18 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 00065 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00069 48 8b 08 mov rcx, QWORD PTR [rax] + 0006c e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00071 48 89 85 20 01 + 00 00 mov QWORD PTR tv79[rbp], rax + 00078 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007f e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00084 48 89 85 28 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0008b 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv81[rbp] + 00092 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00099 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 000a0 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct -; 143 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); +; 688 : _Orphan_range(_Mylast, _Mylast); - 000c7 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] - 000cb 48 83 c0 2f add rax, 47 ; 0000002fH - 000cf 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H - 000d3 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax + 000a5 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000a9 4c 8b 00 mov r8, QWORD PTR [rax] + 000ac 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000b0 48 8b 10 mov rdx, QWORD PTR [rax] + 000b3 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ba e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range -; 144 : static_cast(_Ptr)[-1] = _Ptr_container; +; 689 : _Ty& _Result = *_Mylast; - 000d7 b8 08 00 00 00 mov eax, 8 - 000dc 48 6b c0 ff imul rax, rax, -1 - 000e0 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] - 000e4 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] - 000e8 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 000bf 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000c3 48 8b 00 mov rax, QWORD PTR [rax] + 000c6 48 89 45 48 mov QWORD PTR _Result$[rbp], rax -; 145 : -; 146 : #ifdef _DEBUG -; 147 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; +; 690 : ++_Mylast; - 000ec b8 08 00 00 00 mov eax, 8 - 000f1 48 6b c0 fe imul rax, rax, -2 - 000f5 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] - 000f9 48 ba fa fa fa - fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 00103 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 000ca 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000ce 48 8b 00 mov rax, QWORD PTR [rax] + 000d1 48 83 c0 04 add rax, 4 + 000d5 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] + 000d9 48 89 01 mov QWORD PTR [rcx], rax -; 148 : #endif // _DEBUG -; 149 : return _Ptr; +; 691 : #if _HAS_CXX17 +; 692 : return _Result; - 00107 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] -$LN11@Allocate_m: + 000dc 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] -; 150 : } +; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 694 : (void) _Result; +; 695 : #endif // _HAS_CXX17 +; 696 : } - 0010b 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00112 5f pop rdi - 00113 5d pop rbp - 00114 c3 ret 0 -??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ENDP ; std::_Allocate_manually_vector_aligned + 000e0 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000e7 5f pop rdi + 000e8 5d pop rbp + 000e9 c3 ret 0 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z _TEXT SEGMENT -_It$ = 224 -??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z PROC ; std::_Voidify_iter, COMDAT +_Arg$ = 224 +??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT -; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5499,177 +9515,144 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); -; 131 : if constexpr (is_pointer_v<_Iter>) { -; 132 : return const_cast(static_cast(_It)); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 133 : } else { -; 134 : return const_cast(static_cast(_STD addressof(*_It))); -; 135 : } -; 136 : } +; 1456 : } - 00026 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ENDP ; std::_Voidify_iter + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z _TEXT SEGMENT -_It$ = 224 -_UIt$ = 232 -??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z PROC ; std::_Seek_wrapped > >,unsigned long *>, COMDAT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv83 = 280 +tv81 = 288 +this$ = 336 +<_Val_0>$ = 344 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z PROC ; std::vector >::emplace_back, COMDAT -; 1427 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { +; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { -$LN3: +$LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 0000c 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1428 : if constexpr (_Wrapped_seekable_v<_Iter, _UIter>) { -; 1429 : _It._Seek_to(_STD forward<_UIter>(_UIt)); - - 00024 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _UIt$[rbp] - 0002b e8 00 00 00 00 call ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ; std::forward - 00030 48 8b 10 mov rdx, QWORD PTR [rax] - 00033 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 0003a e8 00 00 00 00 call ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to + 00018 48 8b fc mov rdi, rsp + 0001b b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1430 : } else { -; 1431 : _It = _STD forward<_UIter>(_UIt); -; 1432 : } -; 1433 : } +; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 702 : auto& _My_data = _Mypair._Myval2; - 0003f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00046 5f pop rdi - 00047 5d pop rbp - 00048 c3 ret 0 -??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ENDP ; std::_Seek_wrapped > >,unsigned long *> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z -_TEXT SEGMENT -$T1 = 196 -_First$ = 256 -_Last$ = 264 -_Val$ = 272 -??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z PROC ; std::_Find_unchecked, COMDAT + 0003b 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 5333 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { +; 703 : pointer& _Mylast = _My_data._Mylast; -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004a 48 83 c0 10 add rax, 16 + 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax -; 5334 : // find first matching _Val; choose optimization -; 5335 : // activate optimization for contiguous iterators to (const) bytes and integral values -; 5336 : return _Find_unchecked1(_First, _Last, _Val, bool_constant<_Memchr_in_find_is_safe<_InIt, _Ty>>{}); +; 704 : if (_Mylast != _My_data._Myend) { - 00029 48 8d 85 c4 00 - 00 00 lea rax, QWORD PTR $T1[rbp] - 00030 48 8b f8 mov rdi, rax - 00033 33 c0 xor eax, eax - 00035 b9 01 00 00 00 mov ecx, 1 - 0003a f3 aa rep stosb - 0003c 44 0f b6 8d c4 - 00 00 00 movzx r9d, BYTE PTR $T1[rbp] - 00044 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR _Val$[rbp] - 0004b 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00052 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00059 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 + 00052 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00056 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005a 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] + 0005e 48 39 08 cmp QWORD PTR [rax], rcx + 00061 74 1d je SHORT $LN2@emplace_ba -; 5337 : } +; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); - 0005e 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00065 5f pop rdi - 00066 5d pop rbp - 00067 c3 ret 0 -??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ENDP ; std::_Find_unchecked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z -_TEXT SEGMENT -_It$ = 224 -??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > const &>, COMDAT + 00063 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 0006a e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0006f 48 8b d0 mov rdx, rax + 00072 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00079 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity + 0007e eb 43 jmp SHORT $LN1@emplace_ba +$LN2@emplace_ba: -; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 706 : } +; 707 : +; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00080 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00087 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0008c 48 89 85 18 01 + 00 00 mov QWORD PTR tv83[rbp], rax + 00093 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 89 85 20 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 000a1 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv83[rbp] + 000a8 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv81[rbp] + 000af 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000b6 e8 00 00 00 00 call ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate + 000bb 48 89 45 48 mov QWORD PTR _Result$[rbp], rax -; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1327 : return _It + 0; -; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 709 : #if _HAS_CXX17 +; 710 : return _Result; - 0001f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 00026 e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + 000bf 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] +$LN1@emplace_ba: -; 1330 : } else { -; 1331 : return static_cast<_Iter&&>(_It); -; 1332 : } -; 1333 : } +; 711 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 712 : (void) _Result; +; 713 : #endif // _HAS_CXX17 +; 714 : } - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > const &> + 000c3 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000ca 5f pop rdi + 000cb 5d pop rbp + 000cc c3 ret 0 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ENDP ; std::vector >::emplace_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z _TEXT SEGMENT -_It$ = 224 -??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > &>, COMDAT +_Val$ = 224 +??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z PROC ; std::addressof > >, COMDAT -; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5678,1625 +9661,2200 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1327 : return _It + 0; -; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 275 : return __builtin_addressof(_Val); - 0001f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 00026 e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Val$[rbp] -; 1330 : } else { -; 1331 : return static_cast<_Iter&&>(_It); -; 1332 : } -; 1333 : } +; 276 : } - 0002b 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > &> + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ENDP ; std::addressof > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z _TEXT SEGMENT -_First$ = 224 -_Last$ = 232 -??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z PROC ; std::_Adl_verify_range > >,std::_Vector_iterator > > >, COMDAT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT -; 1307 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { +; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1308 : // check that [_First, _Last) forms an iterator range -; 1309 : if constexpr (_Range_verifiable_v<_Iter, _Sentinel>) { -; 1310 : _Verify_range(_First, _Last); - - 00024 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0002b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00032 e8 00 00 00 00 call ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range - -; 1311 : } -; 1312 : } + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00037 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 -??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ENDP ; std::_Adl_verify_range > >,std::_Vector_iterator > > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits -; COMDAT ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z -_TEXT SEGMENT -_Arg$ = 224 -??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z PROC ; std::forward, COMDAT - -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); +; 51 : +; 52 : _Ostr.fill(_Manip._Fill); -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00049 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00050 48 03 c8 add rcx, rax + 00053 48 8b c1 mov rax, rcx + 00056 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 0005d 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 00064 0f b6 10 movzx edx, BYTE PTR [rax] + 00067 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv79[rbp] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z -; 1444 : return static_cast<_Ty&&>(_Arg); +; 53 : return _Ostr; - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] + 00074 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] -; 1445 : } +; 54 : } - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward + 0007b 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z _TEXT SEGMENT -_It$ = 224 -??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z PROC ; std::_Voidify_iter, COMDAT +this$ = 224 +_Ch$ = 232 +??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT -; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { +; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 131 : if constexpr (is_pointer_v<_Iter>) { -; 132 : return const_cast(static_cast(_It)); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] - -; 133 : } else { -; 134 : return const_cast(static_cast(_STD addressof(*_It))); -; 135 : } -; 136 : } - - 00026 48 8d a5 c8 00 + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00041 0f b6 8d e8 00 + 00 00 movzx ecx, BYTE PTR _Ch$[rbp] + 00048 88 08 mov BYTE PTR [rax], cl + 0004a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00051 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ENDP ; std::_Voidify_iter + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 +??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef -; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z _TEXT SEGMENT -_Val$ = 224 -??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z PROC ; std::addressof, COMDAT +__$ReturnUdt$ = 224 +_Ch$ = 232 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT -; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { +; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 275 : return __builtin_addressof(_Val); +; 35 : return _Fillobj<_Elem>(_Ch); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] + 0003a 0f b6 95 e8 00 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 00041 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj + 0004d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 276 : } +; 36 : } - 00026 48 8d a5 c8 00 + 00054 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ENDP ; std::addressof + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z _TEXT SEGMENT -_Ptr$ = 224 -_Bytes$ = 232 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument -$LN4: +$LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 254 : if (_STD is_constant_evaluated()) { -; 255 : ::operator delete(_Ptr); -; 256 : } else -; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 258 : { -; 259 : #if defined(_M_IX86) || defined(_M_X64) -; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 00024 48 81 bd e8 00 - 00 00 00 10 00 - 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 0002f 72 13 jb SHORT $LN2@Deallocate + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - 00031 48 8d 95 e8 00 - 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 00038 48 8d 8d e0 00 - 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned -$LN2@Deallocate: + 0003b 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 0004c 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005a 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00061 48 03 c8 add rcx, rax + 00064 48 8b c1 mov rax, rcx + 00067 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Manip$[rbp] + 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] + 00072 48 8b c8 mov rcx, rax + 00075 ff 95 c0 00 00 + 00 call QWORD PTR tv79[rbp] -; 262 : } -; 263 : #endif // defined(_M_IX86) || defined(_M_X64) -; 264 : ::operator delete(_Ptr, _Bytes); +; 425 : return _Ostr; - 00044 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 0004b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00057 90 npad 1 + 0007b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] -; 265 : } -; 266 : } +; 426 : } - 00058 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> + 00082 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b c3 ret 0 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z _TEXT SEGMENT -_Bytes$ = 224 -??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z PROC ; std::_Allocate<16,std::_Default_allocate_traits,0>, COMDAT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT -; 230 : __declspec(allocator) _CONSTEXPR20_DYNALLOC void* _Allocate(const size_t _Bytes) { +; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream -$LN5: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 231 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 232 : #if defined(_M_IX86) || defined(_M_X64) -; 233 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 234 : if (!_STD is_constant_evaluated()) -; 235 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 236 : { -; 237 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0001f 48 81 bd e0 00 - 00 00 00 10 00 - 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 0002a 72 0e jb SHORT $LN2@Allocate +$LN23: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 0002e 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 20 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 238 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); +; 781 : using _Elem = char; +; 782 : using _Myos = basic_ostream<_Elem, _Traits>; +; 783 : +; 784 : ios_base::iostate _State = ios_base::goodbit; - 0002c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00033 e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned - 00038 eb 1a jmp SHORT $LN1@Allocate -$LN2@Allocate: + 0004b c7 45 04 00 00 + 00 00 mov DWORD PTR _State$[rbp], 0 -; 239 : } -; 240 : } -; 241 : #endif // defined(_M_IX86) || defined(_M_X64) -; 242 : -; 243 : if (_Bytes != 0) { +; 785 : const typename _Myos::sentry _Ok(_Ostr); - 0003a 48 83 bd e0 00 - 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 - 00042 74 0e je SHORT $LN3@Allocate + 00052 48 8b 95 50 02 + 00 00 mov rdx, QWORD PTR _Ostr$[rbp] + 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry + 00062 90 npad 1 -; 244 : return _Traits::_Allocate(_Bytes); +; 786 : +; 787 : if (_Ok) { // state okay, insert - 00044 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 0004b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate - 00050 eb 02 jmp SHORT $LN1@Allocate -$LN3@Allocate: + 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool + 0006c 0f b6 c0 movzx eax, al + 0006f 85 c0 test eax, eax + 00071 0f 84 1d 03 00 + 00 je $LN8@operator -; 245 : } -; 246 : -; 247 : return nullptr; +; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - 00052 33 c0 xor eax, eax -$LN1@Allocate: + 00077 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0007e 48 8b 00 mov rax, QWORD PTR [rax] + 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00085 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0008c 48 03 c8 add rcx, rax + 0008f 48 8b c1 mov rax, rcx + 00092 48 8b c8 mov rcx, rax + 00095 ff 15 00 00 00 + 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ + 0009b 48 83 f8 01 cmp rax, 1 + 0009f 7f 0d jg SHORT $LN15@operator + 000a1 48 c7 85 08 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv130[rbp], 0 + 000ac eb 2e jmp SHORT $LN16@operator +$LN15@operator: + 000ae 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000b5 48 8b 00 mov rax, QWORD PTR [rax] + 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000bc 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 000c3 48 03 c8 add rcx, rax + 000c6 48 8b c1 mov rax, rcx + 000c9 48 8b c8 mov rcx, rax + 000cc ff 15 00 00 00 + 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ + 000d2 48 ff c8 dec rax + 000d5 48 89 85 08 02 + 00 00 mov QWORD PTR tv130[rbp], rax +$LN16@operator: + 000dc 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv130[rbp] + 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -; 248 : } +; 789 : +; 790 : _TRY_IO_BEGIN +; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - 00054 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 -??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ENDP ; std::_Allocate<16,std::_Default_allocate_traits,0> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z -_TEXT SEGMENT -_Overflow_is_possible$ = 4 -_Max_possible$1 = 40 -_Count$ = 288 -??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<16>, COMDAT + 000e7 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000ee 48 8b 00 mov rax, QWORD PTR [rax] + 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000f5 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 000fc 48 03 c8 add rcx, rax + 000ff 48 8b c1 mov rax, rcx + 00102 48 8b c8 mov rcx, rax + 00105 ff 15 00 00 00 + 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ + 0010b 89 85 04 02 00 + 00 mov DWORD PTR tv65[rbp], eax + 00111 8b 85 04 02 00 + 00 mov eax, DWORD PTR tv65[rbp] + 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H + 0011c 83 f8 40 cmp eax, 64 ; 00000040H + 0011f 0f 84 eb 00 00 + 00 je $LN10@operator -; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00125 eb 0b jmp SHORT $LN4@operator +$LN2@operator: + 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 0012b 48 ff c8 dec rax + 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax +$LN4@operator: + 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00136 0f 85 d4 00 00 + 00 jne $LN10@operator + 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00141 0f 8e c9 00 00 + 00 jle $LN10@operator + +; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { -; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; + 00147 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0014e 48 8b 00 mov rax, QWORD PTR [rax] + 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00155 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0015c 48 03 c8 add rcx, rax + 0015f 48 8b c1 mov rax, rcx + 00162 48 8b c8 mov rcx, rax + 00165 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 0016b 48 89 85 08 02 + 00 00 mov QWORD PTR tv300[rbp], rax + 00172 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv300[rbp] + 00179 48 89 85 10 02 + 00 00 mov QWORD PTR tv179[rbp], rax + 00180 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00187 48 8b 00 mov rax, QWORD PTR [rax] + 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0018e 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 8b c8 mov rcx, rax + 0019e ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ + 001a4 88 85 18 02 00 + 00 mov BYTE PTR tv301[rbp], al + 001aa 0f b6 85 18 02 + 00 00 movzx eax, BYTE PTR tv301[rbp] + 001b1 88 85 19 02 00 + 00 mov BYTE PTR tv177[rbp], al + 001b7 0f b6 95 19 02 + 00 00 movzx edx, BYTE PTR tv177[rbp] + 001be 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv179[rbp] + 001c5 ff 15 00 00 00 + 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z + 001cb 89 85 1c 02 00 + 00 mov DWORD PTR tv302[rbp], eax + 001d1 8b 85 1c 02 00 + 00 mov eax, DWORD PTR tv302[rbp] + 001d7 89 85 34 01 00 + 00 mov DWORD PTR $T5[rbp], eax + 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001e2 89 85 54 01 00 + 00 mov DWORD PTR $T6[rbp], eax + 001e8 48 8d 95 34 01 + 00 00 lea rdx, QWORD PTR $T5[rbp] + 001ef 48 8d 8d 54 01 + 00 00 lea rcx, QWORD PTR $T6[rbp] + 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 001fb 0f b6 c0 movzx eax, al + 001fe 85 c0 test eax, eax + 00200 74 09 je SHORT $LN11@operator - 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 +; 794 : _State |= ios_base::badbit; -; 61 : -; 62 : if constexpr (_Overflow_is_possible) { -; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; + 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00205 83 c8 04 or eax, 4 + 00208 89 45 04 mov DWORD PTR _State$[rbp], eax +$LN11@operator: - 00023 48 b8 ff ff ff - ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax +; 795 : } +; 796 : } -; 64 : if (_Count > _Max_possible) { + 0020b e9 17 ff ff ff jmp $LN2@operator +$LN10@operator: - 00031 48 b8 ff ff ff - ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 0003b 48 39 85 20 01 - 00 00 cmp QWORD PTR _Count$[rbp], rax - 00042 76 05 jbe SHORT $LN2@Get_size_o +; 797 : } +; 798 : +; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { + + 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00214 0f 85 8d 00 00 + 00 jne $LN12@operator + 0021a 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00221 48 8b 00 mov rax, QWORD PTR [rax] + 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00228 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0022f 48 03 c8 add rcx, rax + 00232 48 8b c1 mov rax, rcx + 00235 48 8b c8 mov rcx, rax + 00238 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 0023e 48 89 85 08 02 + 00 00 mov QWORD PTR tv303[rbp], rax + 00245 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv303[rbp] + 0024c 48 89 85 10 02 + 00 00 mov QWORD PTR tv204[rbp], rax + 00253 0f b6 95 58 02 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 0025a 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv204[rbp] + 00261 ff 15 00 00 00 + 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z + 00267 89 85 18 02 00 + 00 mov DWORD PTR tv304[rbp], eax + 0026d 8b 85 18 02 00 + 00 mov eax, DWORD PTR tv304[rbp] + 00273 89 85 74 01 00 + 00 mov DWORD PTR $T7[rbp], eax + 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0027e 89 85 94 01 00 + 00 mov DWORD PTR $T8[rbp], eax + 00284 48 8d 95 74 01 + 00 00 lea rdx, QWORD PTR $T7[rbp] + 0028b 48 8d 8d 94 01 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00297 0f b6 c0 movzx eax, al + 0029a 85 c0 test eax, eax + 0029c 74 09 je SHORT $LN12@operator + +; 800 : _State |= ios_base::badbit; + + 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 002a1 83 c8 04 or eax, 4 + 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax +$LN12@operator: + +; 801 : } +; 802 : +; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right + + 002a7 eb 0b jmp SHORT $LN7@operator +$LN5@operator: + 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 002ad 48 ff c8 dec rax + 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax +$LN7@operator: + 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002b8 0f 85 d4 00 00 + 00 jne $LN6@operator + 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c3 0f 8e c9 00 00 + 00 jle $LN6@operator + +; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { + + 002c9 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 002d0 48 8b 00 mov rax, QWORD PTR [rax] + 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 002d7 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 002de 48 03 c8 add rcx, rax + 002e1 48 8b c1 mov rax, rcx + 002e4 48 8b c8 mov rcx, rax + 002e7 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 002ed 48 89 85 08 02 + 00 00 mov QWORD PTR tv305[rbp], rax + 002f4 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv305[rbp] + 002fb 48 89 85 10 02 + 00 00 mov QWORD PTR tv245[rbp], rax + 00302 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00309 48 8b 00 mov rax, QWORD PTR [rax] + 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00310 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00317 48 03 c8 add rcx, rax + 0031a 48 8b c1 mov rax, rcx + 0031d 48 8b c8 mov rcx, rax + 00320 ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ + 00326 88 85 18 02 00 + 00 mov BYTE PTR tv306[rbp], al + 0032c 0f b6 85 18 02 + 00 00 movzx eax, BYTE PTR tv306[rbp] + 00333 88 85 19 02 00 + 00 mov BYTE PTR tv243[rbp], al + 00339 0f b6 95 19 02 + 00 00 movzx edx, BYTE PTR tv243[rbp] + 00340 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv245[rbp] + 00347 ff 15 00 00 00 + 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z + 0034d 89 85 1c 02 00 + 00 mov DWORD PTR tv307[rbp], eax + 00353 8b 85 1c 02 00 + 00 mov eax, DWORD PTR tv307[rbp] + 00359 89 85 b4 01 00 + 00 mov DWORD PTR $T9[rbp], eax + 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00364 89 85 d4 01 00 + 00 mov DWORD PTR $T10[rbp], eax + 0036a 48 8d 95 b4 01 + 00 00 lea rdx, QWORD PTR $T9[rbp] + 00371 48 8d 8d d4 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0037d 0f b6 c0 movzx eax, al + 00380 85 c0 test eax, eax + 00382 74 09 je SHORT $LN13@operator + +; 805 : _State |= ios_base::badbit; + + 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00387 83 c8 04 or eax, 4 + 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax +$LN13@operator: + +; 806 : } +; 807 : } + + 0038d e9 17 ff ff ff jmp $LN5@operator +$LN6@operator: + 00392 eb 00 jmp SHORT $LN8@operator +$LN21@operator: +$LN8@operator: + +; 808 : _CATCH_IO_(ios_base, _Ostr) +; 809 : } +; 810 : +; 811 : _Ostr.width(0); + + 00394 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0039b 48 8b 00 mov rax, QWORD PTR [rax] + 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003a2 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 003a9 48 03 c8 add rcx, rax + 003ac 48 8b c1 mov rax, rcx + 003af 48 89 85 08 02 + 00 00 mov QWORD PTR tv281[rbp], rax + 003b6 33 d2 xor edx, edx + 003b8 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv281[rbp] + 003bf ff 15 00 00 00 + 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z -; 65 : _Throw_bad_array_new_length(); // multiply overflow +; 812 : _Ostr.setstate(_State); - 00044 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length -$LN2@Get_size_o: + 003c5 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 003cc 48 8b 00 mov rax, QWORD PTR [rax] + 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003d3 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 003da 48 03 c8 add rcx, rax + 003dd 48 8b c1 mov rax, rcx + 003e0 48 89 85 08 02 + 00 00 mov QWORD PTR tv295[rbp], rax + 003e7 45 33 c0 xor r8d, r8d + 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] + 003ed 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv295[rbp] + 003f4 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 66 : } -; 67 : } -; 68 : -; 69 : return _Count * _Ty_size; +; 813 : return _Ostr; - 00049 48 6b 85 20 01 - 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 -$LN3@Get_size_o: + 003fa 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00401 48 89 85 f8 01 + 00 00 mov QWORD PTR $T11[rbp], rax + 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00411 48 8b 85 f8 01 + 00 00 mov rax, QWORD PTR $T11[rbp] -; 70 : } +; 814 : } - 00051 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00058 5f pop rdi - 00059 5d pop rbp - 0005a c3 ret 0 -??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> + 00418 48 8b f8 mov rdi, rax + 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0041f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData + 00426 e8 00 00 00 00 call _RTC_CheckStackVars + 0042b 48 8b c7 mov rax, rdi + 0042e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00435 48 33 cd xor rcx, rbp + 00438 e8 00 00 00 00 call __security_check_cookie + 0043d 48 8d a5 38 02 + 00 00 lea rsp, QWORD PTR [rbp+568] + 00444 5f pop rdi + 00445 5d pop rbp + 00446 c3 ret 0 +??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > _TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z -_TEXT SEGMENT -_First$ = 224 -_Last$ = 232 -_Al$ = 240 -??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT +; COMDAT text$x +text$x SEGMENT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00018 e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 808 : _CATCH_IO_(ios_base, _Ostr) -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 947 : using _Ty = typename _Alloc::value_type; -; 948 : if constexpr (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 949 : for (; _First != _Last; ++_First) { -; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 951 : } -; 952 : } -; 953 : } - - 00029 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 -??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > -_TEXT ENDS + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: + 00014 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0001b 48 8b 00 mov rax, QWORD PTR [rax] + 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00029 48 03 c8 add rcx, rax + 0002c 48 8b c1 mov rax, rcx + 0002f 48 89 85 08 02 + 00 00 mov QWORD PTR tv266[rbp], rax + 00036 41 b0 01 mov r8b, 1 + 00039 ba 04 00 00 00 mov edx, 4 + 0003e 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv266[rbp] + 00045 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z + 0004b 90 npad 1 + 0004c 48 8d 05 00 00 + 00 00 lea rax, $LN21@catch$1 + 00053 48 83 c4 28 add rsp, 40 ; 00000028H + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 + 0005a cc int 3 +?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef -; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z -_TEXT SEGMENT -_Ptr$ = 224 -??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z PROC ; std::_Unfancy, COMDAT - -; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers - -$LN3: +; COMDAT text$x +text$x SEGMENT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 289 : return _Ptr; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] - -; 290 : } - - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ENDP ; std::_Unfancy -_TEXT ENDS + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00018 e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::dtor$0 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility -; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z -_TEXT SEGMENT -$T1 = 200 -tv65 = 216 -_Left$ = 256 -_Right$ = 264 -??$min@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::min, COMDAT +; COMDAT text$x +text$x SEGMENT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 66 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { +; 808 : _CATCH_IO_(ios_base, _Ostr) -$LN5: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 67 : // return smaller of _Left and _Right -; 68 : return _Right < _Left ? _Right : _Left; - - 00024 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR _Left$[rbp] - 00032 48 8b 09 mov rcx, QWORD PTR [rcx] - 00035 48 39 08 cmp QWORD PTR [rax], rcx - 00038 73 10 jae SHORT $LN3@min - 0003a 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Right$[rbp] - 00041 48 89 85 d8 00 - 00 00 mov QWORD PTR tv65[rbp], rax - 00048 eb 0e jmp SHORT $LN4@min -$LN3@min: - 0004a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR _Left$[rbp] - 00051 48 89 85 d8 00 - 00 00 mov QWORD PTR tv65[rbp], rax -$LN4@min: - 00058 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv65[rbp] - 0005f 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR $T1[rbp] - -; 69 : } - - 0006d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 -??$min@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::min -_TEXT ENDS + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: + 00014 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0001b 48 8b 00 mov rax, QWORD PTR [rax] + 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00029 48 03 c8 add rcx, rax + 0002c 48 8b c1 mov rax, rcx + 0002f 48 89 85 08 02 + 00 00 mov QWORD PTR tv266[rbp], rax + 00036 41 b0 01 mov r8b, 1 + 00039 ba 04 00 00 00 mov edx, 4 + 0003e 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv266[rbp] + 00045 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z + 0004b 90 npad 1 + 0004c 48 8d 05 00 00 + 00 00 lea rax, $LN21@catch$1 + 00053 48 83 c4 28 add rsp, 40 ; 00000028H + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 + 0005a cc int 3 +?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream -; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\cmath +; COMDAT ??$log2@H$0A@@@YANH@Z _TEXT SEGMENT -this$ = 224 -??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT +_Left$ = 224 +??$log2@H$0A@@@YANH@Z PROC ; log2, COMDAT -; 124 : explicit __CLR_OR_THIS_CALL operator bool() const { +; 636 : _GENERIC_MATH1(log2) $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 125 : return _Ok; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 0f b6 40 08 movzx eax, BYTE PTR [rax+8] - -; 126 : } - - 0002a 48 8d a5 c8 00 + 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 00004 55 push rbp + 00005 57 push rdi + 00006 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 0000d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00012 48 8b fc mov rdi, rsp + 00015 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001f f3 ab rep stosd + 00021 8b 8c 24 18 01 + 00 00 mov ecx, DWORD PTR [rsp+280] + 00028 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A4FAB91_cmath + 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00034 f2 0f 2a 85 e0 + 00 00 00 cvtsi2sd xmm0, DWORD PTR _Left$[rbp] + 0003c ff 15 00 00 00 + 00 call QWORD PTR __imp_log2 + 00042 90 npad 1 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 -??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ENDP ; std::basic_ostream >::sentry::operator bool + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 +??$log2@H$0A@@@YANH@Z ENDP ; log2 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream -; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z _TEXT SEGMENT -_Zero_uncaught_exceptions$ = 4 -tv72 = 212 -this$ = 256 -??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT - -; 109 : __CLR_OR_THIS_CALL ~sentry() noexcept { - -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 110 : #if !_HAS_EXCEPTIONS -; 111 : const bool _Zero_uncaught_exceptions = true; -; 112 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 113 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 - - 0001f e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception - 00024 0f b6 c0 movzx eax, al - 00027 85 c0 test eax, eax - 00029 75 09 jne SHORT $LN4@sentry - 0002b c6 85 d4 00 00 - 00 01 mov BYTE PTR tv72[rbp], 1 - 00032 eb 07 jmp SHORT $LN5@sentry -$LN4@sentry: - 00034 c6 85 d4 00 00 - 00 00 mov BYTE PTR tv72[rbp], 0 -$LN5@sentry: - 0003b 0f b6 85 d4 00 - 00 00 movzx eax, BYTE PTR tv72[rbp] - 00042 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al - -; 114 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv -; 115 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; -; 116 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 117 : -; 118 : if (_Zero_uncaught_exceptions) { - - 00045 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] - 00049 85 c0 test eax, eax - 0004b 74 10 je SHORT $LN2@sentry - -; 119 : this->_Myostr._Osfx(); - - 0004d 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ -$LN2@sentry: +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv139 = 536 +tv137 = 544 +tv135 = 552 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +<_Val_1>$ = 616 +??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z PROC ; std::vector,std::allocator > >::_Emplace_reallocate, COMDAT -; 120 : } -; 121 : } +; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { - 0005d 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00064 e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00069 90 npad 1 - 0006a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 -??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream -; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z -_TEXT SEGMENT -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::sentry::sentry, COMDAT +$LN13: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 92 : explicit __CLR_OR_THIS_CALL sentry(basic_ostream& _Ostr) : _Sentry_base(_Ostr) { +; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 727 : _Alty& _Al = _Getal(); -$LN7: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 0002b 48 8b 8d 00 01 + 00045 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base - 00037 90 npad 1 - -; 93 : if (!_Ostr.good()) { - - 00038 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0003f 48 8b 00 mov rax, QWORD PTR [rax] - 00042 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00046 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0004d 48 03 c8 add rcx, rax - 00050 48 8b c1 mov rax, rcx - 00053 48 8b c8 mov rcx, rax - 00056 ff 15 00 00 00 - 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 0005c 0f b6 c0 movzx eax, al - 0005f 85 c0 test eax, eax - 00061 75 10 jne SHORT $LN2@sentry + 0004c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00051 48 89 45 08 mov QWORD PTR _Al$[rbp], rax -; 94 : _Ok = false; +; 728 : auto& _My_data = _Mypair._Myval2; - 00063 48 8b 85 00 01 + 00055 48 8b 85 50 02 00 00 mov rax, QWORD PTR this$[rbp] - 0006a c6 40 08 00 mov BYTE PTR [rax+8], 0 - -; 95 : return; - - 0006e e9 81 00 00 00 jmp $LN1@sentry -$LN2@sentry: - -; 96 : } -; 97 : -; 98 : const auto _Tied = _Ostr.tie(); - - 00073 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00081 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00088 48 03 c8 add rcx, rax - 0008b 48 8b c1 mov rax, rcx - 0008e 48 8b c8 mov rcx, rax - 00091 ff 15 00 00 00 - 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ - 00097 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax - -; 99 : if (!_Tied || _Tied == &_Ostr) { - - 0009b 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 - 000a0 74 0d je SHORT $LN4@sentry - 000a2 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000a9 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000ad 75 0d jne SHORT $LN3@sentry -$LN4@sentry: + 0005c 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax -; 100 : _Ok = true; +; 729 : pointer& _Myfirst = _My_data._Myfirst; - 000af 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000b6 c6 40 08 01 mov BYTE PTR [rax+8], 1 + 00060 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00064 48 83 c0 08 add rax, 8 + 00068 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax -; 101 : return; +; 730 : pointer& _Mylast = _My_data._Mylast; - 000ba eb 38 jmp SHORT $LN1@sentry -$LN3@sentry: + 0006c 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00070 48 83 c0 10 add rax, 16 + 00074 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax -; 102 : } -; 103 : -; 104 : _Tied->flush(); +; 731 : +; 732 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity +; 733 : +; 734 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); - 000bc 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000c0 ff 15 00 00 00 - 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ + 00078 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 0007c 48 8b 00 mov rax, QWORD PTR [rax] + 0007f 48 8b 8d 58 02 + 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] + 00086 48 2b c8 sub rcx, rax + 00089 48 8b c1 mov rax, rcx + 0008c 48 c1 f8 04 sar rax, 4 + 00090 48 89 85 88 00 + 00 00 mov QWORD PTR _Whereoff$[rbp], rax -; 105 : _Ok = _Ostr.good(); // store test only after flushing tie +; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); - 000c6 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000cd 48 8b 00 mov rax, QWORD PTR [rax] - 000d0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000d4 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000db 48 03 c8 add rcx, rax - 000de 48 8b c1 mov rax, rcx - 000e1 48 8b c8 mov rcx, rax - 000e4 ff 15 00 00 00 - 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 000ea 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000f1 88 41 08 mov BYTE PTR [rcx+8], al -$LN1@sentry: + 00097 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0009b 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009f 48 8b 09 mov rcx, QWORD PTR [rcx] + 000a2 48 8b 00 mov rax, QWORD PTR [rax] + 000a5 48 2b c1 sub rax, rcx + 000a8 48 c1 f8 04 sar rax, 4 + 000ac 48 89 85 a8 00 + 00 00 mov QWORD PTR _Oldsize$[rbp], rax -; 106 : } +; 736 : +; 737 : if (_Oldsize == max_size()) { - 000f4 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00102 5f pop rdi - 00103 5d pop rbp - 00104 c3 ret 0 -??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA PROC ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 00 01 + 000b3 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0001b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA PROC ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 00 01 + 000ba e8 00 00 00 00 call ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::max_size + 000bf 48 39 85 a8 00 + 00 00 cmp QWORD PTR _Oldsize$[rbp], rax + 000c6 75 05 jne SHORT $LN2@Emplace_re + +; 738 : _Xlength(); + + 000c8 e8 00 00 00 00 call ?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ ; std::vector,std::allocator > >::_Xlength +$LN2@Emplace_re: + +; 739 : } +; 740 : +; 741 : const size_type _Newsize = _Oldsize + 1; + + 000cd 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR _Oldsize$[rbp] + 000d4 48 ff c0 inc rax + 000d7 48 89 85 c8 00 + 00 00 mov QWORD PTR _Newsize$[rbp], rax + +; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); + + 000de 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR _Newsize$[rbp] + 000e5 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0001b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream -; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ -_TEXT SEGMENT -_Rdbuf$ = 8 -tv72 = 216 -this$ = 256 -??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::_Sentry_base::~_Sentry_base, COMDAT + 000ec e8 00 00 00 00 call ?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z ; std::vector,std::allocator > >::_Calculate_growth + 000f1 48 89 85 e8 00 + 00 00 mov QWORD PTR _Newcapacity$[rbp], rax -; 78 : __CLR_OR_THIS_CALL ~_Sentry_base() noexcept { // destroy after unlocking +; 743 : +; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000f8 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] + 000ff 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00103 e8 00 00 00 00 call ?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::allocate + 00108 48 89 85 08 01 + 00 00 mov QWORD PTR _Newvec$[rbp], rax -; 79 : const auto _Rdbuf = _Myostr.rdbuf(); +; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; - 0001f 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 89 85 d8 00 - 00 00 mov QWORD PTR tv72[rbp], rax - 00030 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv72[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0003e 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR tv72[rbp] - 00045 48 03 c8 add rcx, rax - 00048 48 8b c1 mov rax, rcx - 0004b 48 8b c8 mov rcx, rax - 0004e ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00054 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 0010f 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 00117 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 0011e 48 8d 44 01 10 lea rax, QWORD PTR [rcx+rax+16] + 00123 48 89 85 28 01 + 00 00 mov QWORD PTR _Constructed_last$[rbp], rax -; 80 : if (_Rdbuf) { +; 746 : pointer _Constructed_first = _Constructed_last; - 00058 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0005d 74 0f je SHORT $LN2@Sentry_bas + 0012a 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] + 00131 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 81 : _Rdbuf->_Unlock(); +; 747 : +; 748 : _TRY_BEGIN +; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); - 0005f 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00063 48 8b 00 mov rax, QWORD PTR [rax] - 00066 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 0006a ff 50 10 call QWORD PTR [rax+16] - 0006d 90 npad 1 -$LN2@Sentry_bas: + 00138 48 8b 8d 68 02 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 0013f e8 00 00 00 00 call ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ; std::forward + 00144 48 89 85 18 02 + 00 00 mov QWORD PTR tv139[rbp], rax + 0014b 48 8b 8d 60 02 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00152 e8 00 00 00 00 call ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ; std::forward + 00157 48 89 85 20 02 + 00 00 mov QWORD PTR tv137[rbp], rax + 0015e 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 00166 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 0016d 48 03 c8 add rcx, rax + 00170 48 8b c1 mov rax, rcx + 00173 48 8b c8 mov rcx, rax + 00176 e8 00 00 00 00 call ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > + 0017b 48 89 85 28 02 + 00 00 mov QWORD PTR tv135[rbp], rax + 00182 4c 8b 8d 18 02 + 00 00 mov r9, QWORD PTR tv139[rbp] + 00189 4c 8b 85 20 02 + 00 00 mov r8, QWORD PTR tv137[rbp] + 00190 48 8b 95 28 02 + 00 00 mov rdx, QWORD PTR tv135[rbp] + 00197 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 0019b e8 00 00 00 00 call ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::_Default_allocator_traits > >::construct,int (__cdecl*const &)(_NATIVE_CODE_LINK *,unsigned char *,void *),void * const &> + +; 750 : _Constructed_first = _Newvec + _Whereoff; + + 001a0 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 001a8 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 001af 48 03 c8 add rcx, rax + 001b2 48 8b c1 mov rax, rcx + 001b5 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 82 : } -; 83 : } +; 751 : +; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee - 0006e 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 -??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream -; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z -_TEXT SEGMENT -_Rdbuf$ = 8 -tv73 = 216 -this$ = 256 -_Ostr$ = 264 -??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::_Sentry_base::_Sentry_base, COMDAT + 001bc 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001c0 48 8b 00 mov rax, QWORD PTR [rax] + 001c3 48 39 85 58 02 + 00 00 cmp QWORD PTR _Whereptr$[rbp], rax + 001ca 75 23 jne SHORT $LN4@Emplace_re -; 71 : __CLR_OR_THIS_CALL _Sentry_base(basic_ostream& _Ostr) : _Myostr(_Ostr) { // lock the stream buffer, if there +; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); -$LN4: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00032 48 89 08 mov QWORD PTR [rax], rcx + 001cc 4c 8b 8d 08 01 + 00 00 mov r9, QWORD PTR _Newvec$[rbp] + 001d3 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001d7 4c 8b 00 mov r8, QWORD PTR [rax] + 001da 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001de 48 8b 10 mov rdx, QWORD PTR [rax] + 001e1 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001e8 e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z ; std::vector,std::allocator > >::_Umove_if_noexcept -; 72 : const auto _Rdbuf = _Myostr.rdbuf(); +; 754 : } else { // provide basic guarantee - 00035 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 8b 00 mov rax, QWORD PTR [rax] - 0003f 48 89 85 d8 00 - 00 00 mov QWORD PTR tv73[rbp], rax - 00046 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv73[rbp] - 0004d 48 8b 00 mov rax, QWORD PTR [rax] - 00050 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00054 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR tv73[rbp] - 0005b 48 03 c8 add rcx, rax - 0005e 48 8b c1 mov rax, rcx - 00061 48 8b c8 mov rcx, rax - 00064 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0006a 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 001ed eb 61 jmp SHORT $LN5@Emplace_re +$LN4@Emplace_re: -; 73 : if (_Rdbuf) { +; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); - 0006e 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00073 74 0e je SHORT $LN2@Sentry_bas + 001ef 4c 8b 8d 08 01 + 00 00 mov r9, QWORD PTR _Newvec$[rbp] + 001f6 4c 8b 85 58 02 + 00 00 mov r8, QWORD PTR _Whereptr$[rbp] + 001fd 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 00201 48 8b 10 mov rdx, QWORD PTR [rax] + 00204 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0020b e8 00 00 00 00 call ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ; std::vector,std::allocator > >::_Umove -; 74 : _Rdbuf->_Lock(); +; 756 : _Constructed_first = _Newvec; - 00075 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00079 48 8b 00 mov rax, QWORD PTR [rax] - 0007c 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00080 ff 50 08 call QWORD PTR [rax+8] -$LN2@Sentry_bas: + 00210 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 00217 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 75 : } -; 76 : } +; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); - 00083 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0008a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 -??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base + 0021e 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 00226 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 0022d 48 8d 44 01 10 lea rax, QWORD PTR [rcx+rax+16] + 00232 4c 8b c8 mov r9, rax + 00235 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00239 4c 8b 00 mov r8, QWORD PTR [rax] + 0023c 48 8b 95 58 02 + 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] + 00243 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0024a e8 00 00 00 00 call ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ; std::vector,std::allocator > >::_Umove + 0024f 90 npad 1 +$LN5@Emplace_re: + 00250 eb 00 jmp SHORT $LN9@Emplace_re +$LN10@Emplace_re: +$LN9@Emplace_re: + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END +; 764 : +; 765 : _Change_array(_Newvec, _Newsize, _Newcapacity); + + 00252 4c 8b 8d e8 00 + 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] + 00259 4c 8b 85 c8 00 + 00 00 mov r8, QWORD PTR _Newsize$[rbp] + 00260 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 00267 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0026e e8 00 00 00 00 call ?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z ; std::vector,std::allocator > >::_Change_array + +; 766 : return _Newvec + _Whereoff; + + 00273 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 0027b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00282 48 03 c8 add rcx, rax + 00285 48 8b c1 mov rax, rcx + +; 767 : } + + 00288 48 8d a5 38 02 + 00 00 lea rsp, QWORD PTR [rbp+568] + 0028f 5f pop rdi + 00290 5d pop rbp + 00291 c3 ret 0 +$LN11@Emplace_re: +??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ENDP ; std::vector,std::allocator > >::_Emplace_reallocate _TEXT 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 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z -_TEXT SEGMENT -_New_proxy$ = 8 -$T1 = 232 -this$ = 288 -_Al$ = 296 -??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT +; COMDAT text$x +text$x SEGMENT +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv139 = 536 +tv137 = 544 +tv135 = 552 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +<_Val_1>$ = 616 +?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA PROC ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 -; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { +; 758 : } +; 759 : _CATCH_ALL -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z$0: -; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); - 00024 ba 01 00 00 00 mov edx, 1 - 00029 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00030 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy - 0003d 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax + 00014 4c 8b 85 28 01 + 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] + 0001b 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00029 e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy -; 1075 : _Construct_in_place(*_New_proxy, this); +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); - 00041 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 89 85 e8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 0004f 48 8d 95 e8 00 - 00 00 lea rdx, QWORD PTR $T1[rbp] - 00056 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 0005a e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place + 0002e 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] + 00035 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00040 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate -; 1076 : _Myproxy = _New_proxy; +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; - 0005f 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 0006a 48 89 08 mov QWORD PTR [rax], rcx + 00045 33 d2 xor edx, edx + 00047 33 c9 xor ecx, ecx + 00049 e8 00 00 00 00 call _CxxThrowException + 0004e 90 npad 1 -; 1077 : _New_proxy->_Mycont = this; +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END - 0006d 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] - 00071 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00078 48 89 08 mov QWORD PTR [rax], rcx + 0004f 48 8d 05 00 00 + 00 00 lea rax, $LN10@catch$0 + 00056 48 83 c4 28 add rsp, 40 ; 00000028H + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 + 0005d cc int 3 +?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA ENDP ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv139 = 536 +tv137 = 544 +tv135 = 552 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +<_Val_1>$ = 616 +?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA PROC ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 -; 1078 : } +; 759 : _CATCH_ALL - 0007b 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00082 5f pop rdi - 00083 5d pop rbp - 00084 c3 ret 0 -??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z -_TEXT SEGMENT -this$ = 224 -__formal$ = 232 -??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><>, COMDAT + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z$0: -; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} +; 760 : _Destroy(_Constructed_first, _Constructed_last); -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 48 8b 8d e0 00 + 00014 4c 8b 85 28 01 + 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] + 0001b 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] + 00022 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0002a e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator - 0002f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00036 48 8b c8 mov rcx, rax - 00039 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > - 0003e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00045 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004c 5f pop rdi - 0004d 5d pop rbp - 0004e c3 ret 0 -??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> -_TEXT ENDS + 00029 e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy + +; 761 : _Al.deallocate(_Newvec, _Newcapacity); + + 0002e 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] + 00035 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00040 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate + +; 762 : _RERAISE; + + 00045 33 d2 xor edx, edx + 00047 33 c9 xor ecx, ecx + 00049 e8 00 00 00 00 call _CxxThrowException + 0004e 90 npad 1 + +; 763 : _CATCH_END + + 0004f 48 8d 05 00 00 + 00 00 lea rax, $LN10@catch$0 + 00056 48 83 c4 28 add rsp, 40 ; 00000028H + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 + 0005d cc int 3 +?catch$0@?0???$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z@4HA ENDP ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@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 +$T1 = 200 +tv81 = 216 +tv79 = 224 +__formal$ = 272 +_Ptr$ = 280 +<_Args_0>$ = 288 +<_Args_1>$ = 296 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z PROC ; std::_Default_allocator_traits > >::construct,int (__cdecl*const &)(_NATIVE_CODE_LINK *,unsigned char *,void *),void * const &>, COMDAT -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { $LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8b 95 18 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0004c b9 10 00 00 00 mov ecx, 16 + 00051 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00056 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0005d 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR <_Args_1>$[rbp] + 00064 e8 00 00 00 00 call ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ; std::forward + 00069 48 89 85 d8 00 + 00 00 mov QWORD PTR tv81[rbp], rax + 00070 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00077 e8 00 00 00 00 call ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ; std::forward + 0007c 48 89 85 e0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00083 4c 8b 85 d8 00 + 00 00 mov r8, QWORD PTR tv81[rbp] + 0008a 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00091 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 00098 e8 00 00 00 00 call ??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::pair::pair + +; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); +; 695 : } + + 0009d 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 000a4 5f pop rdi + 000a5 5d pop rbp + 000a6 c3 ret 0 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ENDP ; std::_Default_allocator_traits > >::construct,int (__cdecl*const &)(_NATIVE_CODE_LINK *,unsigned char *,void *),void * const &> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z _TEXT SEGMENT -this$ = 224 -_Count$ = 232 -?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT +_Ptr$ = 224 +??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z PROC ; std::_Unfancy >, COMDAT -; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers $LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); +; 289 : return _Ptr; - 00024 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Count$[rbp] - 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] -; 840 : } +; 290 : } - 00038 48 8d a5 c8 00 + 0003d 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 -?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ENDP ; std::_Unfancy > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z _TEXT SEGMENT -_Al$ = 8 -_My_data$ = 40 -_Myfirst$ = 72 -_Mylast$ = 104 -_Whereoff$ = 136 -_Oldsize$ = 168 -_Newsize$ = 200 -_Newcapacity$ = 232 -_Newvec$ = 264 -_Constructed_last$ = 296 -_Constructed_first$ = 328 -tv134 = 536 -tv132 = 544 -this$ = 592 -_Whereptr$ = 600 -<_Val_0>$ = 608 -??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z PROC ; std::vector >::_Emplace_reallocate, COMDAT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv86 = 280 +tv84 = 288 +tv82 = 296 +tv80 = 304 +this$ = 352 +<_Val_0>$ = 360 +<_Val_1>$ = 368 +??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z PROC ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity, COMDAT -; 765 : _CONSTEXPR20_CONTAINER pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { +; 682 : decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { -$LN13: +$LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi - 00011 48 81 ec 58 02 - 00 00 sub rsp, 600 ; 00000258H + 00011 48 81 ec 68 01 + 00 00 sub rsp, 360 ; 00000168H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 684 : auto& _My_data = _Mypair._Myval2; + + 00040 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 766 : // reallocate and insert by perfectly forwarding _Val at _Whereptr -; 767 : _Alty& _Al = _Getal(); +; 685 : pointer& _Mylast = _My_data._Mylast; - 00029 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00035 48 89 45 08 mov QWORD PTR _Al$[rbp], rax + 0004b 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004f 48 83 c0 10 add rax, 16 + 00053 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax -; 768 : auto& _My_data = _Mypair._Myval2; +; 686 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity +; 687 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); - 00039 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR this$[rbp] - 00040 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax + 00057 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 0005e e8 00 00 00 00 call ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ; std::forward + 00063 48 89 85 18 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 0006a 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00071 e8 00 00 00 00 call ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ; std::forward + 00076 48 89 85 20 01 + 00 00 mov QWORD PTR tv84[rbp], rax + 0007d 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00081 48 8b 08 mov rcx, QWORD PTR [rax] + 00084 e8 00 00 00 00 call ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > + 00089 48 89 85 28 01 + 00 00 mov QWORD PTR tv82[rbp], rax + 00090 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00097 e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 0009c 48 89 85 30 01 + 00 00 mov QWORD PTR tv80[rbp], rax + 000a3 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv86[rbp] + 000aa 4c 8b 85 20 01 + 00 00 mov r8, QWORD PTR tv84[rbp] + 000b1 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR tv82[rbp] + 000b8 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR tv80[rbp] + 000bf e8 00 00 00 00 call ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::_Default_allocator_traits > >::construct,int (__cdecl*const &)(_NATIVE_CODE_LINK *,unsigned char *,void *),void * const &> + +; 688 : _Orphan_range(_Mylast, _Mylast); + + 000c4 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000c8 4c 8b 00 mov r8, QWORD PTR [rax] + 000cb 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000cf 48 8b 10 mov rdx, QWORD PTR [rax] + 000d2 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000d9 e8 00 00 00 00 call ?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Orphan_range -; 769 : pointer& _Myfirst = _My_data._Myfirst; +; 689 : _Ty& _Result = *_Mylast; - 00044 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] - 00048 48 83 c0 08 add rax, 8 - 0004c 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax + 000de 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000e2 48 8b 00 mov rax, QWORD PTR [rax] + 000e5 48 89 45 48 mov QWORD PTR _Result$[rbp], rax -; 770 : pointer& _Mylast = _My_data._Mylast; +; 690 : ++_Mylast; - 00050 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] - 00054 48 83 c0 10 add rax, 16 - 00058 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax + 000e9 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000ed 48 8b 00 mov rax, QWORD PTR [rax] + 000f0 48 83 c0 10 add rax, 16 + 000f4 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] + 000f8 48 89 01 mov QWORD PTR [rcx], rax -; 771 : -; 772 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity -; 773 : -; 774 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); +; 691 : #if _HAS_CXX17 +; 692 : return _Result; - 0005c 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 00060 48 8b 00 mov rax, QWORD PTR [rax] - 00063 48 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] - 0006a 48 2b c8 sub rcx, rax - 0006d 48 8b c1 mov rax, rcx - 00070 48 c1 f8 02 sar rax, 2 - 00074 48 89 85 88 00 - 00 00 mov QWORD PTR _Whereoff$[rbp], rax + 000fb 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] -; 775 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); +; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 694 : (void) _Result; +; 695 : #endif // _HAS_CXX17 +; 696 : } - 0007b 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 0007f 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] - 00083 48 8b 09 mov rcx, QWORD PTR [rcx] - 00086 48 8b 00 mov rax, QWORD PTR [rax] - 00089 48 2b c1 sub rax, rcx - 0008c 48 c1 f8 02 sar rax, 2 - 00090 48 89 85 a8 00 - 00 00 mov QWORD PTR _Oldsize$[rbp], rax + 000ff 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 00106 5f pop rdi + 00107 5d pop rbp + 00108 c3 ret 0 +??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ENDP ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z PROC ; std::forward, COMDAT -; 776 : -; 777 : if (_Oldsize == max_size()) { +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue - 00097 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0009e e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size - 000a3 48 39 85 a8 00 - 00 00 cmp QWORD PTR _Oldsize$[rbp], rax - 000aa 75 05 jne SHORT $LN2@Emplace_re +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); -; 778 : _Xlength(); + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] - 000ac e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength -$LN2@Emplace_re: +; 1456 : } -; 779 : } -; 780 : -; 781 : const size_type _Newsize = _Oldsize + 1; + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z PROC ; std::forward, COMDAT - 000b1 48 8b 85 a8 00 - 00 00 mov rax, QWORD PTR _Oldsize$[rbp] - 000b8 48 ff c0 inc rax - 000bb 48 89 85 c8 00 - 00 00 mov QWORD PTR _Newsize$[rbp], rax +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue -; 782 : const size_type _Newcapacity = _Calculate_growth(_Newsize); +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); - 000c2 48 8b 95 c8 00 - 00 00 mov rdx, QWORD PTR _Newsize$[rbp] - 000c9 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000d0 e8 00 00 00 00 call ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth - 000d5 48 89 85 e8 00 - 00 00 mov QWORD PTR _Newcapacity$[rbp], rax + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 783 : -; 784 : const pointer _Newvec = _Al.allocate(_Newcapacity); +; 1456 : } - 000dc 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] - 000e3 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 000e7 e8 00 00 00 00 call ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate - 000ec 48 89 85 08 01 - 00 00 mov QWORD PTR _Newvec$[rbp], rax + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z +_TEXT SEGMENT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv95 = 280 +tv80 = 280 +tv93 = 288 +tv78 = 288 +tv91 = 296 +this$ = 336 +<_Val_0>$ = 344 +<_Val_1>$ = 352 +??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z PROC ; std::vector,std::allocator > >::emplace_back, COMDAT -; 785 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; +; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { - 000f3 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 000fa 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00101 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 00106 48 89 85 28 01 - 00 00 mov QWORD PTR _Constructed_last$[rbp], rax +$LN4: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 786 : pointer _Constructed_first = _Constructed_last; +; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 702 : auto& _My_data = _Mypair._Myval2; - 0010d 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] - 00114 48 89 85 48 01 - 00 00 mov QWORD PTR _Constructed_first$[rbp], rax + 00040 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 787 : -; 788 : _TRY_BEGIN -; 789 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); +; 703 : pointer& _Mylast = _My_data._Mylast; - 0011b 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00122 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00127 48 89 85 18 02 - 00 00 mov QWORD PTR tv134[rbp], rax - 0012e 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00135 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 0013c 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00140 48 8b c8 mov rcx, rax - 00143 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 00148 48 89 85 20 02 - 00 00 mov QWORD PTR tv132[rbp], rax - 0014f 4c 8b 85 18 02 - 00 00 mov r8, QWORD PTR tv134[rbp] - 00156 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR tv132[rbp] - 0015d 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 00161 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + 0004b 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004f 48 83 c0 10 add rax, 16 + 00053 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax -; 790 : _Constructed_first = _Newvec + _Whereoff; +; 704 : if (_Mylast != _My_data._Myend) { - 00166 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0016d 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00174 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00178 48 89 85 48 01 - 00 00 mov QWORD PTR _Constructed_first$[rbp], rax + 00057 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 0005b 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005f 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] + 00063 48 39 08 cmp QWORD PTR [rax], rcx + 00066 74 42 je SHORT $LN2@emplace_ba -; 791 : -; 792 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee +; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); - 0017f 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 00183 48 8b 00 mov rax, QWORD PTR [rax] - 00186 48 39 85 58 02 - 00 00 cmp QWORD PTR _Whereptr$[rbp], rax - 0018d 75 23 jne SHORT $LN4@Emplace_re + 00068 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 0006f e8 00 00 00 00 call ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ; std::forward + 00074 48 89 85 18 01 + 00 00 mov QWORD PTR tv80[rbp], rax + 0007b 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00082 e8 00 00 00 00 call ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ; std::forward + 00087 48 89 85 20 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 0008e 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv80[rbp] + 00095 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 0009c 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a3 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity + 000a8 eb 5d jmp SHORT $LN1@emplace_ba +$LN2@emplace_ba: -; 793 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); +; 706 : } +; 707 : +; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); - 0018f 4c 8b 8d 08 01 - 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 0019a 4c 8b 00 mov r8, QWORD PTR [rax] - 0019d 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 001a1 48 8b 10 mov rdx, QWORD PTR [rax] - 001a4 48 8b 8d 50 02 + 000aa 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 000b1 e8 00 00 00 00 call ??$forward@AEBQEAX@std@@YAAEBQEAXAEBQEAX@Z ; std::forward + 000b6 48 89 85 18 01 + 00 00 mov QWORD PTR tv95[rbp], rax + 000bd 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 000c4 e8 00 00 00 00 call ??$forward@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YAAEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQ6AH012@Z@Z ; std::forward + 000c9 48 89 85 20 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 000d0 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000d4 48 8b 00 mov rax, QWORD PTR [rax] + 000d7 48 89 85 28 01 + 00 00 mov QWORD PTR tv91[rbp], rax + 000de 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv95[rbp] + 000e5 4c 8b 85 20 01 + 00 00 mov r8, QWORD PTR tv93[rbp] + 000ec 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR tv91[rbp] + 000f3 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR this$[rbp] - 001ab e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept - -; 794 : } else { // provide basic guarantee + 000fa e8 00 00 00 00 call ??$_Emplace_reallocate@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::vector,std::allocator > >::_Emplace_reallocate + 000ff 48 89 45 48 mov QWORD PTR _Result$[rbp], rax - 001b0 eb 60 jmp SHORT $LN5@Emplace_re -$LN4@Emplace_re: +; 709 : #if _HAS_CXX17 +; 710 : return _Result; -; 795 : _Umove(_Myfirst, _Whereptr, _Newvec); + 00103 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] +$LN1@emplace_ba: - 001b2 4c 8b 8d 08 01 - 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 001b9 4c 8b 85 58 02 - 00 00 mov r8, QWORD PTR _Whereptr$[rbp] - 001c0 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 001c4 48 8b 10 mov rdx, QWORD PTR [rax] - 001c7 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 001ce e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove +; 711 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 712 : (void) _Result; +; 713 : #endif // _HAS_CXX17 +; 714 : } -; 796 : _Constructed_first = _Newvec; + 00107 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 0010e 5f pop rdi + 0010f 5d pop rbp + 00110 c3 ret 0 +??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ENDP ; std::vector,std::allocator > >::emplace_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z +_TEXT SEGMENT +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z PROC ; std::find > >,unsigned long>, COMDAT - 001d3 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001da 48 89 85 48 01 - 00 00 mov QWORD PTR _Constructed_first$[rbp], rax +; 5171 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val -; 797 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); +$LN7: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00039 c7 85 e4 00 00 + 00 00 00 00 00 mov DWORD PTR $T2[rbp], 0 + 00043 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 001e1 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001e8 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 001ef 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 001f4 4c 8b c8 mov r9, rax - 001f7 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 001fb 4c 8b 00 mov r8, QWORD PTR [rax] - 001fe 48 8b 95 58 02 - 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] - 00205 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0020c e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove - 00211 90 npad 1 -$LN5@Emplace_re: - 00212 eb 00 jmp SHORT $LN9@Emplace_re -$LN10@Emplace_re: -$LN9@Emplace_re: +; 5172 : _Adl_verify_range(_First, _Last); -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); -; 802 : _RERAISE; -; 803 : _CATCH_END -; 804 : -; 805 : _Change_array(_Newvec, _Newsize, _Newcapacity); + 0004f 48 8b 95 40 01 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > - 00214 4c 8b 8d e8 00 - 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] - 0021b 4c 8b 85 c8 00 - 00 00 mov r8, QWORD PTR _Newsize$[rbp] - 00222 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Newvec$[rbp] - 00229 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00230 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array +; 5173 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); -; 806 : return _Newvec + _Whereoff; + 00062 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Last$[rbp] + 00069 e8 00 00 00 00 call ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> + 0006e 48 89 85 f8 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00075 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0007c e8 00 00 00 00 call ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> + 00081 48 89 85 00 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 00088 4c 8b 85 48 01 + 00 00 mov r8, QWORD PTR _Val$[rbp] + 0008f 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00096 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 0009d e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked + 000a2 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 000a9 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 000b0 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 000b7 e8 00 00 00 00 call ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> - 00235 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0023c 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00243 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] +; 5174 : return _First; + + 000bc 48 8b 95 38 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 000c3 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 000ca e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z + 000cf 8b 85 e4 00 00 + 00 mov eax, DWORD PTR $T2[rbp] + 000d5 83 c8 01 or eax, 1 + 000d8 89 85 e4 00 00 + 00 mov DWORD PTR $T2[rbp], eax + 000de 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 000e5 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 000ea 90 npad 1 + 000eb 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Last$[rbp] + 000f2 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 000f7 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 807 : } +; 5175 : } - 00247 48 8d a5 38 02 - 00 00 lea rsp, QWORD PTR [rbp+568] - 0024e 5f pop rdi - 0024f 5d pop rbp - 00250 c3 ret 0 -$LN11@Emplace_re: -??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ENDP ; std::vector >::_Emplace_reallocate + 000fe 48 8d a5 18 01 + 00 00 lea rsp, QWORD PTR [rbp+280] + 00105 5f pop rdi + 00106 5d pop rbp + 00107 c3 ret 0 +??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ENDP ; std::find > >,unsigned long> _TEXT ENDS ; COMDAT text$x text$x SEGMENT -_Al$ = 8 -_My_data$ = 40 -_Myfirst$ = 72 -_Mylast$ = 104 -_Whereoff$ = 136 -_Oldsize$ = 168 -_Newsize$ = 200 -_Newcapacity$ = 232 -_Newvec$ = 264 -_Constructed_last$ = 296 -_Constructed_first$ = 328 -tv134 = 536 -tv132 = 544 -this$ = 592 -_Whereptr$ = 600 -<_Val_0>$ = 608 -?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 - -; 798 : } -; 799 : _CATCH_ALL - +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] -__catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: - -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); - - 00014 4c 8b 85 28 01 - 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] - 0001b 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy - -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); - - 0002e 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] - 00035 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Newvec$[rbp] - 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate - -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); -; 802 : _RERAISE; - - 00045 33 d2 xor edx, edx - 00047 33 c9 xor ecx, ecx - 00049 e8 00 00 00 00 call _CxxThrowException - 0004e 90 npad 1 - -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); -; 802 : _RERAISE; -; 803 : _CATCH_END - - 0004f 48 8d 05 00 00 - 00 00 lea rax, $LN10@catch$0 - 00056 48 83 c4 28 add rsp, 40 ; 00000028H - 0005a 5f pop rdi - 0005b 5d pop rbp - 0005c c3 ret 0 - 0005d cc int 3 -?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA ENDP ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 + 00014 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Last$[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -_Al$ = 8 -_My_data$ = 40 -_Myfirst$ = 72 -_Mylast$ = 104 -_Whereoff$ = 136 -_Oldsize$ = 168 -_Newsize$ = 200 -_Newcapacity$ = 232 -_Newvec$ = 264 -_Constructed_last$ = 296 -_Constructed_first$ = 328 -tv134 = 536 -tv132 = 544 -this$ = 592 -_Whereptr$ = 600 -<_Val_0>$ = 608 -?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 - -; 799 : _CATCH_ALL - +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] -__catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: - -; 800 : _Destroy(_Constructed_first, _Constructed_last); - - 00014 4c 8b 85 28 01 - 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] - 0001b 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy - -; 801 : _Al.deallocate(_Newvec, _Newcapacity); - - 0002e 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] - 00035 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Newvec$[rbp] - 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate - -; 802 : _RERAISE; - - 00045 33 d2 xor edx, edx - 00047 33 c9 xor ecx, ecx - 00049 e8 00 00 00 00 call _CxxThrowException - 0004e 90 npad 1 - -; 803 : _CATCH_END - - 0004f 48 8d 05 00 00 - 00 00 lea rax, $LN10@catch$0 - 00056 48 83 c4 28 add rsp, 40 ; 00000028H - 0005a 5f pop rdi - 0005b 5d pop rbp - 0005c c3 ret 0 - 0005d cc int 3 -?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA ENDP ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 + 00014 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Last$[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z +; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +_TEXT SEGMENT +this$ = 224 +__param0$ = 232 +__param1$ = 240 +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 4c 8b 85 f0 00 + 00 00 mov r8, QWORD PTR __param1$[rbp] + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR __param0$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00049 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > + 0004e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00055 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +_TEXT SEGMENT +this$ = 224 +__that$ = 232 +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ _TEXT SEGMENT -$T1 = 200 -__formal$ = 256 -_Ptr$ = 264 -<_Args_0>$ = 272 -??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT - -; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { - +this$ = 224 +??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ PROC ; std::_Vector_iterator > >::~_Vector_iterator > >, COMDAT $LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter - 00035 48 8b d0 mov rdx, rax - 00038 b9 04 00 00 00 mov ecx, 4 - 0003d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00042 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 00049 48 8b 8d 10 01 - 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00050 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00055 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR $T1[rbp] - 0005c 8b 00 mov eax, DWORD PTR [rax] - 0005e 89 01 mov DWORD PTR [rcx], eax - -; 708 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 709 : if (_STD is_constant_evaluated()) { -; 710 : _STD construct_at(_Ptr, _STD forward<_Types>(_Args)...); -; 711 : } else -; 712 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 713 : { -; 714 : ::new (_Voidify_iter(_Ptr)) _Objty(_STD forward<_Types>(_Args)...); -; 715 : } -; 716 : } - - 00060 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 -??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ENDP ; std::_Default_allocator_traits >::construct + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00031 e8 00 00 00 00 call ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00036 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_iterator > >::~_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef -; COMDAT ??$_Unfancy@K@std@@YAPEAKPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ _TEXT SEGMENT -_Ptr$ = 224 -??$_Unfancy@K@std@@YAPEAKPEAK@Z PROC ; std::_Unfancy, COMDAT +this$ = 224 +?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ PROC ; std::_Vector_iterator > >::_Unwrapped, COMDAT -; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers +; 309 : _NODISCARD value_type* _Unwrapped() const { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -7305,6371 +11863,7150 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 310 : return _Unfancy(this->_Ptr); -; 289 : return _Ptr; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 00041 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy -; 290 : } +; 311 : } - 00026 48 8d a5 c8 00 + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$_Unfancy@K@std@@YAPEAKPEAK@Z ENDP ; std::_Unfancy + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ENDP ; std::_Vector_iterator > >::_Unwrapped _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z _TEXT SEGMENT -_My_data$ = 8 -_Mylast$ = 40 -_Result$ = 72 -tv81 = 280 -tv79 = 288 -tv77 = 296 -this$ = 336 -<_Val_0>$ = 344 -??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z PROC ; std::vector >::_Emplace_back_with_unused_capacity, COMDAT +this$ = 224 +__that$ = 232 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR __that$[rbp] + 00050 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00054 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ PROC ; std::_Vector_const_iterator > >::~_Vector_const_iterator > >, COMDAT +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00031 e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 + 00036 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z +_TEXT SEGMENT +this$ = 224 +_It$ = 232 +?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z PROC ; std::_Vector_const_iterator > >::_Seek_to, COMDAT -; 721 : _CONSTEXPR20_CONTAINER decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { +; 194 : void _Seek_to(const value_type* _It) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 58 01 - 00 00 sub rsp, 344 ; 00000158H + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 195 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 00042 e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy + 00047 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 722 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 723 : auto& _My_data = _Mypair._Myval2; +; 196 : } - 00024 48 8b 85 50 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00052 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00059 5f pop rdi + 0005a 5d pop rbp + 0005b c3 ret 0 +?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ENDP ; std::_Vector_const_iterator > >::_Seek_to +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z +_TEXT SEGMENT +tv69 = 192 +_First$ = 240 +_Last$ = 248 +?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z PROC ; std::_Verify_range, COMDAT -; 724 : pointer& _Mylast = _My_data._Mylast; +; 182 : friend void _Verify_range(const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) { - 0002f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00033 48 83 c0 10 add rax, 16 - 00037 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN4@Verify_ran: -; 725 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity -; 726 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); +; 183 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); - 0003b 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00042 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00047 48 89 85 18 01 - 00 00 mov QWORD PTR tv81[rbp], rax - 0004e 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00052 48 8b 08 mov rcx, QWORD PTR [rax] - 00055 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 0005a 48 89 85 20 01 - 00 00 mov QWORD PTR tv79[rbp], rax - 00061 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00068 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0006d 48 89 85 28 01 - 00 00 mov QWORD PTR tv77[rbp], rax - 00074 4c 8b 85 18 01 - 00 00 mov r8, QWORD PTR tv81[rbp] - 0007b 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR tv79[rbp] - 00082 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR tv77[rbp] - 00089 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + 0003b 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00042 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00047 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 0004e 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Last$[rbp] + 00055 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 0005a 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 00061 48 3b c8 cmp rcx, rax + 00064 75 02 jne SHORT $LN14@Verify_ran + 00066 eb 6b jmp SHORT $LN15@Verify_ran +$LN14@Verify_ran: +$LN7@Verify_ran: + 00068 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ + 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00074 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 0007b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00080 45 33 c9 xor r9d, r9d + 00083 41 b8 b7 00 00 + 00 mov r8d, 183 ; 000000b7H + 00089 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00090 b9 02 00 00 00 mov ecx, 2 + 00095 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 0009b 83 f8 01 cmp eax, 1 + 0009e 75 03 jne SHORT $LN19@Verify_ran + 000a0 cc int 3 + 000a1 33 c0 xor eax, eax +$LN19@Verify_ran: + 000a3 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000ac 41 b9 b7 00 00 + 00 mov r9d, 183 ; 000000b7H + 000b2 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000b9 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ + 000c0 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ + 000c7 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000cd 33 c0 xor eax, eax + 000cf 85 c0 test eax, eax + 000d1 75 95 jne SHORT $LN7@Verify_ran +$LN15@Verify_ran: + 000d3 33 c0 xor eax, eax + 000d5 85 c0 test eax, eax + 000d7 0f 85 5e ff ff + ff jne $LN4@Verify_ran +$LN10@Verify_ran: -; 727 : _Orphan_range(_Mylast, _Mylast); +; 184 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); - 0008e 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00092 4c 8b 00 mov r8, QWORD PTR [rax] - 00095 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00099 48 8b 10 mov rdx, QWORD PTR [rax] - 0009c 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000a3 e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range + 000dd 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + 000e4 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Last$[rbp] + 000eb 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 000ef 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 000f3 77 02 ja SHORT $LN16@Verify_ran + 000f5 eb 6b jmp SHORT $LN17@Verify_ran +$LN16@Verify_ran: +$LN13@Verify_ran: + 000f7 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ + 000fe 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00103 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 0010a 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0010f 45 33 c9 xor r9d, r9d + 00112 41 b8 b8 00 00 + 00 mov r8d, 184 ; 000000b8H + 00118 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0011f b9 02 00 00 00 mov ecx, 2 + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 0012a 83 f8 01 cmp eax, 1 + 0012d 75 03 jne SHORT $LN20@Verify_ran + 0012f cc int 3 + 00130 33 c0 xor eax, eax +$LN20@Verify_ran: + 00132 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 0013b 41 b9 b8 00 00 + 00 mov r9d, 184 ; 000000b8H + 00141 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00148 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ + 0014f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ + 00156 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 0015c 33 c0 xor eax, eax + 0015e 85 c0 test eax, eax + 00160 75 95 jne SHORT $LN13@Verify_ran +$LN17@Verify_ran: + 00162 33 c0 xor eax, eax + 00164 85 c0 test eax, eax + 00166 0f 85 71 ff ff + ff jne $LN10@Verify_ran -; 728 : _Ty& _Result = *_Mylast; +; 185 : } - 000a8 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000ac 48 8b 00 mov rax, QWORD PTR [rax] - 000af 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + 0016c 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00173 5f pop rdi + 00174 5d pop rbp + 00175 c3 ret 0 +?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ENDP ; std::_Verify_range +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z +_TEXT SEGMENT +tv69 = 192 +this$ = 240 +_Right$ = 248 +?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z PROC ; std::_Vector_const_iterator > >::_Compat, COMDAT -; 729 : ++_Mylast; +; 173 : void _Compat(const _Vector_const_iterator& _Right) const { // test for compatible iterator pair - 000b3 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000b7 48 8b 00 mov rax, QWORD PTR [rax] - 000ba 48 83 c0 04 add rax, 4 - 000be 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] - 000c2 48 89 01 mov QWORD PTR [rcx], rax +$LN12: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN4@Compat: -; 730 : #if _HAS_CXX17 -; 731 : return _Result; +; 174 : #if _ITERATOR_DEBUG_LEVEL == 0 +; 175 : (void) _Right; +; 176 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 0 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 0 vvv +; 177 : _STL_VERIFY(this->_Getcont() == _Right._Getcont(), "vector iterators incompatible"); - 000c5 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + 0003b 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00042 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00047 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 0004e 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Right$[rbp] + 00055 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 0005a 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 00061 48 3b c8 cmp rcx, rax + 00064 75 02 jne SHORT $LN8@Compat + 00066 eb 6b jmp SHORT $LN9@Compat +$LN8@Compat: +$LN7@Compat: + 00068 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ + 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00074 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 0007b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00080 45 33 c9 xor r9d, r9d + 00083 41 b8 b1 00 00 + 00 mov r8d, 177 ; 000000b1H + 00089 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00090 b9 02 00 00 00 mov ecx, 2 + 00095 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 0009b 83 f8 01 cmp eax, 1 + 0009e 75 03 jne SHORT $LN11@Compat + 000a0 cc int 3 + 000a1 33 c0 xor eax, eax +$LN11@Compat: + 000a3 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000ac 41 b9 b1 00 00 + 00 mov r9d, 177 ; 000000b1H + 000b2 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000b9 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ + 000c0 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ + 000c7 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000cd 33 c0 xor eax, eax + 000cf 85 c0 test eax, eax + 000d1 75 95 jne SHORT $LN7@Compat +$LN9@Compat: + 000d3 33 c0 xor eax, eax + 000d5 85 c0 test eax, eax + 000d7 0f 85 5e ff ff + ff jne $LN4@Compat -; 732 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv -; 733 : (void) _Result; -; 734 : #endif // _HAS_CXX17 -; 735 : } +; 178 : #endif // _ITERATOR_DEBUG_LEVEL == 0 +; 179 : } - 000c9 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 000d0 5f pop rdi - 000d1 5d pop rbp - 000d2 c3 ret 0 -??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity + 000dd 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 000e4 5f pop rdi + 000e5 5d pop rbp + 000e6 c3 ret 0 +?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ENDP ; std::_Vector_const_iterator > >::_Compat _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits -; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT -_Arg$ = 224 -??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT - -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode +tv69 = 192 +this$ = 240 +_Right$ = 248 +??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator!=, COMDAT -; 1444 : return static_cast<_Ty&&>(_Arg); +; 152 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const { - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 153 : return !(*this == _Right); + + 0003b 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _Right$[rbp] + 00042 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00049 e8 00 00 00 00 call ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== + 0004e 0f b6 c0 movzx eax, al + 00051 85 c0 test eax, eax + 00053 75 0c jne SHORT $LN3@operator + 00055 c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 + 0005f eb 0a jmp SHORT $LN4@operator +$LN3@operator: + 00061 c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 +$LN4@operator: + 0006b 0f b6 85 c0 00 + 00 00 movzx eax, BYTE PTR tv69[rbp] -; 1445 : } +; 154 : } - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward + 00072 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b c3 ret 0 +??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator!= _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT -_My_data$ = 8 -_Mylast$ = 40 -_Result$ = 72 -tv83 = 280 -tv81 = 288 -this$ = 336 -<_Val_0>$ = 344 -??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z PROC ; std::vector >::emplace_back, COMDAT +tv69 = 192 +this$ = 240 +_Right$ = 248 +??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator==, COMDAT -; 739 : _CONSTEXPR20_CONTAINER decltype(auto) emplace_back(_Valty&&... _Val) { +; 147 : _NODISCARD bool operator==(const _Vector_const_iterator& _Right) const { -$LN4: +$LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 58 01 - 00 00 sub rsp, 344 ; 00000158H + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 740 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 741 : auto& _My_data = _Mypair._Myval2; - - 00024 48 8b 85 50 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax - -; 742 : pointer& _Mylast = _My_data._Mylast; - - 0002f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00033 48 83 c0 10 add rax, 16 - 00037 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax - -; 743 : if (_Mylast != _My_data._Myend) { - - 0003b 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 0003f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00043 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 00047 48 39 08 cmp QWORD PTR [rax], rcx - 0004a 74 1d je SHORT $LN2@emplace_ba - -; 744 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); - - 0004c 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00053 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00058 48 8b d0 mov rdx, rax - 0005b 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00062 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity - 00067 eb 43 jmp SHORT $LN1@emplace_ba -$LN2@emplace_ba: - -; 745 : } -; 746 : -; 747 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); - - 00069 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00070 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00075 48 89 85 18 01 - 00 00 mov QWORD PTR tv83[rbp], rax - 0007c 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00080 48 8b 00 mov rax, QWORD PTR [rax] - 00083 48 89 85 20 01 - 00 00 mov QWORD PTR tv81[rbp], rax - 0008a 4c 8b 85 18 01 - 00 00 mov r8, QWORD PTR tv83[rbp] - 00091 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR tv81[rbp] - 00098 48 8b 8d 50 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 148 : _Compat(_Right); + + 0003b 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _Right$[rbp] + 00042 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0009f e8 00 00 00 00 call ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate - 000a4 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + 00049 e8 00 00 00 00 call ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat -; 748 : #if _HAS_CXX17 -; 749 : return _Result; +; 149 : return _Ptr == _Right._Ptr; - 000a8 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] -$LN1@emplace_ba: + 0004e 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00055 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Right$[rbp] + 0005c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00060 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 00064 75 0c jne SHORT $LN3@operator + 00066 c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 + 00070 eb 0a jmp SHORT $LN4@operator +$LN3@operator: + 00072 c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 +$LN4@operator: + 0007c 0f b6 85 c0 00 + 00 00 movzx eax, BYTE PTR tv69[rbp] -; 750 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv -; 751 : (void) _Result; -; 752 : #endif // _HAS_CXX17 -; 753 : } +; 150 : } - 000ac 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 000b3 5f pop rdi - 000b4 5d pop rbp - 000b5 c3 ret 0 -??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ENDP ; std::vector >::emplace_back + 00083 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 0008a 5f pop rdi + 0008b 5d pop rbp + 0008c c3 ret 0 +??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator== _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef -; COMDAT ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z _TEXT SEGMENT -_Val$ = 224 -??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z PROC ; std::addressof > >, COMDAT +this$ = 224 +_Parg$ = 232 +_Pvector$ = 240 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT -; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { +; 42 : _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Parg$[rbp] + 0005a 48 89 48 10 mov QWORD PTR [rax+16], rcx -; 275 : return __builtin_addressof(_Val); +; 43 : this->_Adopt(_Pvector); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] + 0005e 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Pvector$[rbp] + 00065 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006c e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt -; 276 : } +; 44 : } - 00026 48 8d a5 c8 00 + 00071 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00078 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ENDP ; std::addressof > > + 0007f 5f pop rdi + 00080 5d pop rbp + 00081 c3 ret 0 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream -; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT +T$1 = 8 +i$2 = 36 +$T3 = 260 +$T4 = 296 +tv93 = 328 +tv95 = 336 +tv130 = 344 +tv132 = 352 +tv144 = 360 +tv142 = 368 +Block$ = 416 +?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcPrintBlockCode, COMDAT -; 779 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream +; 607 : { -$LN23: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 58 02 - 00 00 sub rsp, 600 ; 00000258H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001c b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 48 8b 8c 24 78 - 02 00 00 mov rcx, QWORD PTR [rsp+632] - 00030 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 20 02 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN10: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec a8 01 + 00 00 sub rsp, 424 ; 000001a8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 c8 + 01 00 00 mov rcx, QWORD PTR [rsp+456] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 608 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + + 00036 48 8b 85 a0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00044 eb 0b jmp SHORT $LN4@NcPrintBlo +$LN2@NcPrintBlo: + 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN4@NcPrintBlo: + 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00056 0f 84 03 01 00 + 00 je $LN3@NcPrintBlo + 0005c 48 8b 85 a0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00063 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0006e 0f 84 eb 00 00 + 00 je $LN3@NcPrintBlo -; 780 : using _Elem = char; -; 781 : using _Myos = basic_ostream<_Elem, _Traits>; -; 782 : -; 783 : ios_base::iostate _State = ios_base::goodbit; +; 609 : { +; 610 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) - 0004d c7 45 04 00 00 - 00 00 mov DWORD PTR _State$[rbp], 0 + 00074 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00078 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007b 83 e0 01 and eax, 1 + 0007e 85 c0 test eax, eax + 00080 0f 85 d4 00 00 + 00 jne $LN8@NcPrintBlo -; 784 : const typename _Myos::sentry _Ok(_Ostr); +; 611 : { +; 612 : for (uint32_t i = 0; i < T->RawDataSize; i++) - 00054 48 8b 95 50 02 - 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 0005b 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0005f e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry - 00064 90 npad 1 - -; 785 : -; 786 : if (_Ok) { // state okay, insert - - 00065 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00069 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool - 0006e 0f b6 c0 movzx eax, al - 00071 85 c0 test eax, eax - 00073 0f 84 1d 03 00 - 00 je $LN8@operator + 00086 c7 45 24 00 00 + 00 00 mov DWORD PTR i$2[rbp], 0 + 0008d eb 08 jmp SHORT $LN7@NcPrintBlo +$LN5@NcPrintBlo: + 0008f 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 00092 ff c0 inc eax + 00094 89 45 24 mov DWORD PTR i$2[rbp], eax +$LN7@NcPrintBlo: + 00097 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0009b 8b 40 28 mov eax, DWORD PTR [rax+40] + 0009e 39 45 24 cmp DWORD PTR i$2[rbp], eax + 000a1 0f 83 b3 00 00 + 00 jae $LN6@NcPrintBlo -; 787 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; +; 613 : { +; 614 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; - 00079 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00080 48 8b 00 mov rax, QWORD PTR [rax] - 00083 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00087 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0008e 48 03 c8 add rcx, rax - 00091 48 8b c1 mov rax, rcx - 00094 48 8b c8 mov rcx, rax - 00097 ff 15 00 00 00 - 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 0009d 48 83 f8 01 cmp rax, 1 - 000a1 7f 0d jg SHORT $LN15@operator - 000a3 48 c7 85 08 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv130[rbp], 0 - 000ae eb 2e jmp SHORT $LN16@operator -$LN15@operator: - 000b0 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000b7 48 8b 00 mov rax, QWORD PTR [rax] - 000ba 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000be 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000c5 48 03 c8 add rcx, rax - 000c8 48 8b c1 mov rax, rcx - 000cb 48 8b c8 mov rcx, rax - 000ce ff 15 00 00 00 - 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 000d4 48 ff c8 dec rax - 000d7 48 89 85 08 02 + 000a7 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex + 000ae 48 8b 0d 00 00 + 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A + 000b5 ff 15 00 00 00 + 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z + 000bb 48 89 85 48 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 000c2 ba 02 00 00 00 mov edx, 2 + 000c7 48 8d 8d 28 01 + 00 00 lea rcx, QWORD PTR $T4[rbp] + 000ce e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 000d3 48 89 85 50 01 + 00 00 mov QWORD PTR tv95[rbp], rax + 000da 48 8b 95 50 01 + 00 00 mov rdx, QWORD PTR tv95[rbp] + 000e1 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 000e8 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> + 000ed 48 89 85 58 01 00 00 mov QWORD PTR tv130[rbp], rax -$LN16@operator: - 000de 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv130[rbp] - 000e5 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax - -; 788 : -; 789 : _TRY_IO_BEGIN -; 790 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - - 000e9 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000f0 48 8b 00 mov rax, QWORD PTR [rax] - 000f3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000f7 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000fe 48 03 c8 add rcx, rax - 00101 48 8b c1 mov rax, rcx - 00104 48 8b c8 mov rcx, rax - 00107 ff 15 00 00 00 - 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ - 0010d 89 85 04 02 00 - 00 mov DWORD PTR tv65[rbp], eax - 00113 8b 85 04 02 00 - 00 mov eax, DWORD PTR tv65[rbp] - 00119 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011e 83 f8 40 cmp eax, 64 ; 00000040H - 00121 0f 84 eb 00 00 - 00 je $LN10@operator + 000f4 b2 30 mov dl, 48 ; 00000030H + 000f6 48 8d 8d 04 01 + 00 00 lea rcx, QWORD PTR $T3[rbp] + 000fd e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill + 00102 48 89 85 60 01 + 00 00 mov QWORD PTR tv132[rbp], rax + 00109 48 8b 95 60 01 + 00 00 mov rdx, QWORD PTR tv132[rbp] + 00110 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR tv130[rbp] + 00117 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> + 0011c 48 89 85 68 01 + 00 00 mov QWORD PTR tv144[rbp], rax + 00123 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 00126 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 0012a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0012e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 00132 89 85 70 01 00 + 00 mov DWORD PTR tv142[rbp], eax + 00138 8b 95 70 01 00 + 00 mov edx, DWORD PTR tv142[rbp] + 0013e 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR tv144[rbp] + 00145 ff 15 00 00 00 + 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z + 0014b b2 20 mov dl, 32 ; 00000020H + 0014d 48 8b c8 mov rcx, rax + 00150 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > -; 791 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left +; 615 : } - 00127 eb 0b jmp SHORT $LN4@operator -$LN2@operator: - 00129 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 0012d 48 ff c8 dec rax - 00130 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -$LN4@operator: - 00134 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00138 0f 85 d4 00 00 - 00 jne $LN10@operator - 0013e 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00143 0f 8e c9 00 00 - 00 jle $LN10@operator + 00155 e9 35 ff ff ff jmp $LN5@NcPrintBlo +$LN6@NcPrintBlo: +$LN8@NcPrintBlo: -; 792 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 616 : } +; 617 : } - 00149 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00150 48 8b 00 mov rax, QWORD PTR [rax] - 00153 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00157 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0015e 48 03 c8 add rcx, rax - 00161 48 8b c1 mov rax, rcx - 00164 48 8b c8 mov rcx, rax - 00167 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0016d 48 89 85 08 02 - 00 00 mov QWORD PTR tv300[rbp], rax - 00174 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv300[rbp] - 0017b 48 89 85 10 02 - 00 00 mov QWORD PTR tv179[rbp], rax - 00182 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00189 48 8b 00 mov rax, QWORD PTR [rax] - 0018c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00190 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 8b c8 mov rcx, rax - 001a0 ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 001a6 88 85 18 02 00 - 00 mov BYTE PTR tv301[rbp], al - 001ac 0f b6 85 18 02 - 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b3 88 85 19 02 00 - 00 mov BYTE PTR tv177[rbp], al - 001b9 0f b6 95 19 02 - 00 00 movzx edx, BYTE PTR tv177[rbp] - 001c0 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c7 ff 15 00 00 00 - 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cd 89 85 1c 02 00 - 00 mov DWORD PTR tv302[rbp], eax - 001d3 8b 85 1c 02 00 - 00 mov eax, DWORD PTR tv302[rbp] - 001d9 89 85 34 01 00 - 00 mov DWORD PTR $T5[rbp], eax - 001df e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 001e4 89 85 54 01 00 - 00 mov DWORD PTR $T6[rbp], eax - 001ea 48 8d 95 34 01 - 00 00 lea rdx, QWORD PTR $T5[rbp] - 001f1 48 8d 8d 54 01 - 00 00 lea rcx, QWORD PTR $T6[rbp] - 001f8 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 001fd 0f b6 c0 movzx eax, al - 00200 85 c0 test eax, eax - 00202 74 09 je SHORT $LN11@operator + 0015a e9 e7 fe ff ff jmp $LN2@NcPrintBlo +$LN3@NcPrintBlo: -; 793 : _State |= ios_base::badbit; +; 618 : } - 00204 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00207 83 c8 04 or eax, 4 - 0020a 89 45 04 mov DWORD PTR _State$[rbp], eax -$LN11@operator: + 0015f 48 8d a5 88 01 + 00 00 lea rsp, QWORD PTR [rbp+392] + 00166 5f pop rdi + 00167 5d pop rbp + 00168 c3 ret 0 +?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcPrintBlockCode +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +ConsoleHandle$ = 8 +T$1 = 40 +IClass$2 = 68 +tv131 = 276 +tv129 = 280 +Block$ = 320 +?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDebugPrint, COMDAT -; 794 : } -; 795 : } +; 577 : { - 0020d e9 17 ff ff ff jmp $LN2@operator -$LN10@operator: +$LN11: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 578 : HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + + 00036 b9 f5 ff ff ff mov ecx, -11 ; fffffff5H + 0003b ff 15 00 00 00 + 00 call QWORD PTR __imp_GetStdHandle + 00041 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax -; 796 : } -; 797 : -; 798 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { +; 579 : if (!ConsoleHandle) - 00212 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00216 0f 85 8d 00 00 - 00 jne $LN12@operator - 0021c 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00223 48 8b 00 mov rax, QWORD PTR [rax] - 00226 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0022a 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00231 48 03 c8 add rcx, rax - 00234 48 8b c1 mov rax, rcx - 00237 48 8b c8 mov rcx, rax - 0023a ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00240 48 89 85 08 02 - 00 00 mov QWORD PTR tv303[rbp], rax - 00247 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv303[rbp] - 0024e 48 89 85 10 02 - 00 00 mov QWORD PTR tv204[rbp], rax - 00255 0f b6 95 58 02 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025c 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv204[rbp] - 00263 ff 15 00 00 00 - 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00269 89 85 18 02 00 - 00 mov DWORD PTR tv304[rbp], eax - 0026f 8b 85 18 02 00 - 00 mov eax, DWORD PTR tv304[rbp] - 00275 89 85 74 01 00 - 00 mov DWORD PTR $T7[rbp], eax - 0027b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00280 89 85 94 01 00 - 00 mov DWORD PTR $T8[rbp], eax - 00286 48 8d 95 74 01 - 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028d 48 8d 8d 94 01 - 00 00 lea rcx, QWORD PTR $T8[rbp] - 00294 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00299 0f b6 c0 movzx eax, al - 0029c 85 c0 test eax, eax - 0029e 74 09 je SHORT $LN12@operator + 00045 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 + 0004a 75 05 jne SHORT $LN5@NcDebugPri -; 799 : _State |= ios_base::badbit; +; 580 : return; - 002a0 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 002a3 83 c8 04 or eax, 4 - 002a6 89 45 04 mov DWORD PTR _State$[rbp], eax -$LN12@operator: + 0004c e9 03 01 00 00 jmp $LN1@NcDebugPri +$LN5@NcDebugPri: -; 800 : } -; 801 : -; 802 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right +; 581 : +; 582 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 002a9 eb 0b jmp SHORT $LN7@operator -$LN5@operator: - 002ab 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 002af 48 ff c8 dec rax - 002b2 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -$LN7@operator: - 002b6 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002ba 0f 85 d4 00 00 - 00 jne $LN6@operator - 002c0 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c5 0f 8e c9 00 00 - 00 jle $LN6@operator + 00051 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0005b 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0005f eb 0b jmp SHORT $LN4@NcDebugPri +$LN2@NcDebugPri: + 00061 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00065 48 8b 00 mov rax, QWORD PTR [rax] + 00068 48 89 45 28 mov QWORD PTR T$1[rbp], rax +$LN4@NcDebugPri: + 0006c 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00071 0f 84 dd 00 00 + 00 je $LN3@NcDebugPri + 00077 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0007e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00082 48 8b 00 mov rax, QWORD PTR [rax] + 00085 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 00089 0f 84 c5 00 00 + 00 je $LN3@NcDebugPri -; 803 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 583 : { +; 584 : if (T->Flags & CODE_FLAG_IS_LABEL) - 002cb 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 002d2 48 8b 00 mov rax, QWORD PTR [rax] - 002d5 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 002d9 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 002e0 48 03 c8 add rcx, rax - 002e3 48 8b c1 mov rax, rcx - 002e6 48 8b c8 mov rcx, rax - 002e9 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 002ef 48 89 85 08 02 - 00 00 mov QWORD PTR tv305[rbp], rax - 002f6 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv305[rbp] - 002fd 48 89 85 10 02 - 00 00 mov QWORD PTR tv245[rbp], rax - 00304 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0030b 48 8b 00 mov rax, QWORD PTR [rax] - 0030e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00312 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00319 48 03 c8 add rcx, rax - 0031c 48 8b c1 mov rax, rcx - 0031f 48 8b c8 mov rcx, rax - 00322 ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 00328 88 85 18 02 00 - 00 mov BYTE PTR tv306[rbp], al - 0032e 0f b6 85 18 02 - 00 00 movzx eax, BYTE PTR tv306[rbp] - 00335 88 85 19 02 00 - 00 mov BYTE PTR tv243[rbp], al - 0033b 0f b6 95 19 02 - 00 00 movzx edx, BYTE PTR tv243[rbp] - 00342 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv245[rbp] - 00349 ff 15 00 00 00 - 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034f 89 85 1c 02 00 - 00 mov DWORD PTR tv307[rbp], eax - 00355 8b 85 1c 02 00 - 00 mov eax, DWORD PTR tv307[rbp] - 0035b 89 85 b4 01 00 - 00 mov DWORD PTR $T9[rbp], eax - 00361 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00366 89 85 d4 01 00 - 00 mov DWORD PTR $T10[rbp], eax - 0036c 48 8d 95 b4 01 - 00 00 lea rdx, QWORD PTR $T9[rbp] - 00373 48 8d 8d d4 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 0037a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0037f 0f b6 c0 movzx eax, al - 00382 85 c0 test eax, eax - 00384 74 09 je SHORT $LN13@operator + 0008f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00093 8b 40 18 mov eax, DWORD PTR [rax+24] + 00096 83 e0 01 and eax, 1 + 00099 85 c0 test eax, eax + 0009b 74 26 je SHORT $LN6@NcDebugPri -; 804 : _State |= ios_base::badbit; +; 585 : { +; 586 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 00386 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00389 83 c8 04 or eax, 4 - 0038c 89 45 04 mov DWORD PTR _State$[rbp], eax -$LN13@operator: + 0009d 66 ba 06 00 mov dx, 6 + 000a1 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 000a5 ff 15 00 00 00 + 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 805 : } -; 806 : } +; 587 : printf("Label: %u\n", T->Label); - 0038f e9 17 ff ff ff jmp $LN5@operator -$LN6@operator: - 00394 eb 00 jmp SHORT $LN8@operator -$LN21@operator: -$LN8@operator: + 000ab 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000af 8b 50 1c mov edx, DWORD PTR [rax+28] + 000b2 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ + 000b9 e8 00 00 00 00 call printf -; 807 : _CATCH_IO_(ios_base, _Ostr) -; 808 : } -; 809 : -; 810 : _Ostr.width(0); +; 588 : } - 00396 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0039d 48 8b 00 mov rax, QWORD PTR [rax] - 003a0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003a4 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003ab 48 03 c8 add rcx, rax - 003ae 48 8b c1 mov rax, rcx - 003b1 48 89 85 08 02 - 00 00 mov QWORD PTR tv281[rbp], rax - 003b8 33 d2 xor edx, edx - 003ba 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv281[rbp] - 003c1 ff 15 00 00 00 - 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z + 000be e9 8c 00 00 00 jmp $LN7@NcDebugPri +$LN6@NcDebugPri: -; 811 : _Ostr.setstate(_State); +; 589 : else +; 590 : { +; 591 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - 003c7 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 003ce 48 8b 00 mov rax, QWORD PTR [rax] - 003d1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003d5 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003dc 48 03 c8 add rcx, rax - 003df 48 8b c1 mov rax, rcx - 003e2 48 89 85 08 02 - 00 00 mov QWORD PTR tv295[rbp], rax - 003e9 45 33 c0 xor r8d, r8d - 003ec 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ef 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv295[rbp] - 003f6 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z + 000c3 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000c7 48 83 c0 30 add rax, 48 ; 00000030H + 000cb 48 8b c8 mov rcx, rax + 000ce e8 00 00 00 00 call xed_decoded_inst_get_iclass + 000d3 89 45 44 mov DWORD PTR IClass$2[rbp], eax -; 812 : return _Ostr; +; 592 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 003fc 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00403 48 89 85 f8 01 - 00 00 mov QWORD PTR $T11[rbp], rax - 0040a 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0040e e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 00413 48 8b 85 f8 01 - 00 00 mov rax, QWORD PTR $T11[rbp] + 000d6 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000da 8b 40 18 mov eax, DWORD PTR [rax+24] + 000dd 83 e0 02 and eax, 2 + 000e0 85 c0 test eax, eax + 000e2 74 46 je SHORT $LN8@NcDebugPri -; 813 : } +; 593 : { +; 594 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 0041a 48 8b f8 mov rdi, rax - 0041d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00421 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData - 00428 e8 00 00 00 00 call _RTC_CheckStackVars - 0042d 48 8b c7 mov rax, rdi - 00430 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00437 48 33 cd xor rcx, rbp - 0043a e8 00 00 00 00 call __security_check_cookie - 0043f 48 8d a5 38 02 - 00 00 lea rsp, QWORD PTR [rbp+568] - 00446 5f pop rdi - 00447 5d pop rbp - 00448 c3 ret 0 -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00018 e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 0001d 48 83 c4 28 add rsp, 40 ; 00000028H - 00021 5f pop rdi - 00022 5d pop rbp - 00023 c3 ret 0 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::dtor$0 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 + 000e4 66 ba 06 00 mov dx, 6 + 000e8 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 000ec ff 15 00 00 00 + 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 807 : _CATCH_IO_(ios_base, _Ostr) +; 595 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] -__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: - 00014 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0001b 48 8b 00 mov rax, QWORD PTR [rax] - 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00029 48 03 c8 add rcx, rax - 0002c 48 8b c1 mov rax, rcx - 0002f 48 89 85 08 02 - 00 00 mov QWORD PTR tv266[rbp], rax - 00036 41 b0 01 mov r8b, 1 - 00039 ba 04 00 00 00 mov edx, 4 - 0003e 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv266[rbp] - 00045 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z - 0004b 90 npad 1 - 0004c 48 8d 05 00 00 - 00 00 lea rax, $LN21@catch$1 - 00053 48 83 c4 28 add rsp, 40 ; 00000028H - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 - 0005a cc int 3 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00018 e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 0001d 48 83 c4 28 add rsp, 40 ; 00000028H - 00021 5f pop rdi - 00022 5d pop rbp - 00023 c3 ret 0 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::dtor$0 -text$x ENDS + 000f2 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000f6 8b 40 1c mov eax, DWORD PTR [rax+28] + 000f9 89 85 14 01 00 + 00 mov DWORD PTR tv131[rbp], eax + 000ff 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 00102 e8 00 00 00 00 call xed_iclass_enum_t2str + 00107 48 89 85 18 01 + 00 00 mov QWORD PTR tv129[rbp], rax + 0010e 44 8b 85 14 01 + 00 00 mov r8d, DWORD PTR tv131[rbp] + 00115 48 8b 95 18 01 + 00 00 mov rdx, QWORD PTR tv129[rbp] + 0011c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ + 00123 e8 00 00 00 00 call printf + +; 596 : } + + 00128 eb 25 jmp SHORT $LN9@NcDebugPri +$LN8@NcDebugPri: + +; 597 : else +; 598 : { +; 599 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); + + 0012a 66 ba 03 00 mov dx, 3 + 0012e 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 00132 ff 15 00 00 00 + 00 call QWORD PTR __imp_SetConsoleTextAttribute + +; 600 : printf("%s\n", XedIClassEnumToString(IClass)); + + 00138 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 0013b e8 00 00 00 00 call xed_iclass_enum_t2str + 00140 48 8b d0 mov rdx, rax + 00143 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@ + 0014a e8 00 00 00 00 call printf +$LN9@NcDebugPri: +$LN7@NcDebugPri: + +; 601 : } +; 602 : } +; 603 : } + + 0014f e9 0d ff ff ff jmp $LN2@NcDebugPri +$LN3@NcDebugPri: +$LN1@NcDebugPri: + +; 604 : } + + 00154 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 0015b 5f pop rdi + 0015c 5d pop rbp + 0015d c3 ret 0 +?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDebugPrint +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +BlockEnding$ = 8 +T$1 = 40 +Next$2 = 72 +$T3 = 296 +tv78 = 312 +Block$ = 352 +?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeleteBlock, COMDAT -; 807 : _CATCH_IO_(ios_base, _Ostr) +; 562 : { +$LN10: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] -__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: - 00014 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0001b 48 8b 00 mov rax, QWORD PTR [rax] - 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00029 48 03 c8 add rcx, rax - 0002c 48 8b c1 mov rax, rcx - 0002f 48 89 85 08 02 - 00 00 mov QWORD PTR tv266[rbp], rax - 00036 41 b0 01 mov r8b, 1 - 00039 ba 04 00 00 00 mov edx, 4 - 0003e 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv266[rbp] - 00045 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z - 0004b 90 npad 1 - 0004c 48 8d 05 00 00 - 00 00 lea rax, $LN21@catch$1 - 00053 48 83 c4 28 add rsp, 40 ; 00000028H - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 - 0005a cc int 3 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 -text$x ENDS + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 68 01 + 00 00 sub rsp, 360 ; 00000168H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 563 : if (!Block->Start || !Block->End) + + 00036 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 74 0e je SHORT $LN6@NcDeleteBl + 00043 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0004a 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0004f 75 05 jne SHORT $LN5@NcDeleteBl +$LN6@NcDeleteBl: + +; 564 : return; + + 00051 e9 80 00 00 00 jmp $LN1@NcDeleteBl +$LN5@NcDeleteBl: + +; 565 : +; 566 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; + + 00056 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0005d 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00061 48 8b 00 mov rax, QWORD PTR [rax] + 00064 48 89 45 08 mov QWORD PTR BlockEnding$[rbp], rax + +; 567 : +; 568 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) + + 00068 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0006f 48 8b 00 mov rax, QWORD PTR [rax] + 00072 48 89 45 28 mov QWORD PTR T$1[rbp], rax +$LN2@NcDeleteBl: + 00076 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0007b 74 59 je SHORT $LN3@NcDeleteBl + 0007d 48 8b 45 08 mov rax, QWORD PTR BlockEnding$[rbp] + 00081 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 00085 74 4f je SHORT $LN3@NcDeleteBl + +; 569 : { +; 570 : PNATIVE_CODE_LINK Next = T->Next; + + 00087 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0008b 48 8b 00 mov rax, QWORD PTR [rax] + 0008e 48 89 45 48 mov QWORD PTR Next$2[rbp], rax + +; 571 : delete T; + + 00092 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00096 48 89 85 28 01 + 00 00 mov QWORD PTR $T3[rbp], rax + 0009d 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T3[rbp], 0 + 000a5 74 1a je SHORT $LN8@NcDeleteBl + 000a7 ba 01 00 00 00 mov edx, 1 + 000ac 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T3[rbp] + 000b3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000b8 48 89 85 38 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000bf eb 0b jmp SHORT $LN9@NcDeleteBl +$LN8@NcDeleteBl: + 000c1 48 c7 85 38 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN9@NcDeleteBl: + +; 572 : T = Next; + + 000cc 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] + 000d0 48 89 45 28 mov QWORD PTR T$1[rbp], rax + +; 573 : } + + 000d4 eb a0 jmp SHORT $LN2@NcDeleteBl +$LN3@NcDeleteBl: +$LN1@NcDeleteBl: + +; 574 : } + + 000d6 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 000dd 5f pop rdi + 000de 5d pop rbp + 000df c3 ret 0 +?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeleteBlock +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z _TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT +Block$ = 224 +OutSize$ = 232 +ChooseRandomDuplicateLabel$ = 240 +?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z PROC ; NcAssembleEx, COMDAT -; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream +; 557 : { $LN3: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 558 : return NULL; + + 00040 33 c0 xor eax, eax + +; 559 : } + + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +?NcAssembleEx@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAKH@Z ENDP ; NcAssembleEx +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z +_TEXT SEGMENT +Buffer$ = 8 +BufferOffset$ = 40 +T$1 = 72 +$L0$2 = 104 +$L0$3 = 136 +$L0$4 = 168 +Op$5 = 200 +tv140 = 408 +Block$ = 448 +OutSize$ = 456 +?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z PROC ; NcAssemble, COMDAT + +; 528 : { + +$LN13: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H + 0000c 48 81 ec c8 01 + 00 00 sub rsp, 456 ; 000001c8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 72 00 00 00 mov ecx, 114 ; 00000072H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 e8 + 01 00 00 mov rcx, QWORD PTR [rsp+488] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 529 : if (!NcFixRelJmps(Block)) + + 0003b 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00042 e8 00 00 00 00 call ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps + 00047 85 c0 test eax, eax + 00049 75 07 jne SHORT $LN8@NcAssemble -; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); -; 51 : -; 52 : _Ostr.fill(_Manip._Fill); +; 530 : return NULL; - 00024 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00032 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00039 48 03 c8 add rcx, rax - 0003c 48 8b c1 mov rax, rcx - 0003f 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 00046 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 0004d 0f b6 10 movzx edx, BYTE PTR [rax] - 00050 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv79[rbp] - 00057 ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z + 0004b 33 c0 xor eax, eax + 0004d e9 65 01 00 00 jmp $LN1@NcAssemble +$LN8@NcAssemble: -; 53 : return _Ostr; +; 531 : +; 532 : *OutSize = NcCalcBlockSizeInBytes(Block); - 0005d 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00052 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00059 e8 00 00 00 00 call ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSizeInBytes + 0005e 48 8b 8d c8 01 + 00 00 mov rcx, QWORD PTR OutSize$[rbp] + 00065 89 01 mov DWORD PTR [rcx], eax -; 54 : } +; 533 : +; 534 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); - 00064 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0006b 5f pop rdi - 0006c 5d pop rbp - 0006d c3 ret 0 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> + 00067 48 8b 85 c8 01 + 00 00 mov rax, QWORD PTR OutSize$[rbp] + 0006e 8b 00 mov eax, DWORD PTR [rax] + 00070 8b c8 mov ecx, eax + 00072 ff 15 00 00 00 + 00 call QWORD PTR __imp_malloc + 00078 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax + +; 535 : if (!Buffer) + + 0007c 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 + 00081 75 07 jne SHORT $LN9@NcAssemble + +; 536 : return NULL; + + 00083 33 c0 xor eax, eax + 00085 e9 2d 01 00 00 jmp $LN1@NcAssemble +$LN9@NcAssemble: + +; 537 : +; 538 : PUCHAR BufferOffset = Buffer; + + 0008a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 0008e 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + +; 539 : +; 540 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + + 00092 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00099 48 8b 00 mov rax, QWORD PTR [rax] + 0009c 48 89 45 48 mov QWORD PTR T$1[rbp], rax + 000a0 eb 0b jmp SHORT $LN4@NcAssemble +$LN2@NcAssemble: + 000a2 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000a6 48 8b 00 mov rax, QWORD PTR [rax] + 000a9 48 89 45 48 mov QWORD PTR T$1[rbp], rax +$LN4@NcAssemble: + 000ad 48 83 7d 48 00 cmp QWORD PTR T$1[rbp], 0 + 000b2 0f 84 fb 00 00 + 00 je $LN3@NcAssemble + 000b8 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000bf 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000c3 48 8b 00 mov rax, QWORD PTR [rax] + 000c6 48 39 45 48 cmp QWORD PTR T$1[rbp], rax + 000ca 0f 84 e3 00 00 + 00 je $LN3@NcAssemble + +; 541 : { +; 542 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 000d0 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000d4 8b 40 18 mov eax, DWORD PTR [rax+24] + 000d7 83 e0 01 and eax, 1 + 000da 85 c0 test eax, eax + 000dc 74 02 je SHORT $LN10@NcAssemble + +; 543 : continue; + + 000de eb c2 jmp SHORT $LN2@NcAssemble +$LN10@NcAssemble: + +; 544 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); + + 000e0 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000e4 8b 40 28 mov eax, DWORD PTR [rax+40] + 000e7 44 8b c0 mov r8d, eax + 000ea 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000ee 48 8b 50 20 mov rdx, QWORD PTR [rax+32] + 000f2 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] + 000f6 e8 00 00 00 00 call memcpy + +; 545 : if (T->Flags & CODE_FLAG_HAS_ASM_OP) + + 000fb 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000ff 8b 40 18 mov eax, DWORD PTR [rax+24] + 00102 83 e0 40 and eax, 64 ; 00000040H + 00105 85 c0 test eax, eax + 00107 0f 84 8c 00 00 + 00 je $LN11@NcAssemble + +; 546 : { +; 547 : for (STDPAIR CONST& Op : T->AsmOperations) + + 0010d 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 00111 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 00117 48 89 45 68 mov QWORD PTR $L0$2[rbp], rax + 0011b 48 8b 4d 68 mov rcx, QWORD PTR $L0$2[rbp] + 0011f e8 00 00 00 00 call ?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_begin + 00124 48 89 85 88 00 + 00 00 mov QWORD PTR $L0$3[rbp], rax + 0012b 48 8b 4d 68 mov rcx, QWORD PTR $L0$2[rbp] + 0012f e8 00 00 00 00 call ?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_end + 00134 48 89 85 a8 00 + 00 00 mov QWORD PTR $L0$4[rbp], rax + 0013b eb 12 jmp SHORT $LN7@NcAssemble +$LN5@NcAssemble: + 0013d 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR $L0$3[rbp] + 00144 48 83 c0 10 add rax, 16 + 00148 48 89 85 88 00 + 00 00 mov QWORD PTR $L0$3[rbp], rax +$LN7@NcAssemble: + 0014f 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR $L0$4[rbp] + 00156 48 39 85 88 00 + 00 00 cmp QWORD PTR $L0$3[rbp], rax + 0015d 74 3a je SHORT $LN6@NcAssemble + 0015f 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR $L0$3[rbp] + 00166 48 89 85 c8 00 + 00 00 mov QWORD PTR Op$5[rbp], rax + +; 548 : Op.first(T, BufferOffset, Op.second); + + 0016d 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR Op$5[rbp] + 00174 48 8b 00 mov rax, QWORD PTR [rax] + 00177 48 89 85 98 01 + 00 00 mov QWORD PTR tv140[rbp], rax + 0017e 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR Op$5[rbp] + 00185 4c 8b 40 08 mov r8, QWORD PTR [rax+8] + 00189 48 8b 55 28 mov rdx, QWORD PTR BufferOffset$[rbp] + 0018d 48 8b 4d 48 mov rcx, QWORD PTR T$1[rbp] + 00191 ff 95 98 01 00 + 00 call QWORD PTR tv140[rbp] + 00197 eb a4 jmp SHORT $LN5@NcAssemble +$LN6@NcAssemble: +$LN11@NcAssemble: + +; 549 : } +; 550 : BufferOffset += T->RawDataSize; + + 00199 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 0019d 8b 40 28 mov eax, DWORD PTR [rax+40] + 001a0 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] + 001a4 48 03 c8 add rcx, rax + 001a7 48 8b c1 mov rax, rcx + 001aa 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + +; 551 : } + + 001ae e9 ef fe ff ff jmp $LN2@NcAssemble +$LN3@NcAssemble: + +; 552 : +; 553 : return Buffer; + + 001b3 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] +$LN1@NcAssemble: + +; 554 : } + + 001b7 48 8d a5 a8 01 + 00 00 lea rsp, QWORD PTR [rbp+424] + 001be 5f pop rdi + 001bf 5d pop rbp + 001c0 c3 ret 0 +?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ENDP ; NcAssemble _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z _TEXT SEGMENT -this$ = 224 -_Ch$ = 232 -??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT +Buf$ = 8 +Offset$ = 36 +Link$1 = 72 +PossibleSize$2 = 100 +DecodeError$3 = 132 +$T4 = 360 +$T5 = 392 +$T6 = 424 +$T7 = 456 +tv80 = 468 +tv130 = 472 +tv76 = 472 +Block$ = 512 +Buffer$ = 520 +BufferSize$ = 528 +?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z PROC ; NcDisassemble, COMDAT + +; 496 : { + +$LN13: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 02 + 00 00 sub rsp, 520 ; 00000208H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 82 00 00 00 mov ecx, 130 ; 00000082H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 02 00 00 mov rcx, QWORD PTR [rsp+552] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 497 : PUCHAR Buf = (PUCHAR)Buffer; + + 00040 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR Buffer$[rbp] + 00047 48 89 45 08 mov QWORD PTR Buf$[rbp], rax -; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} +; 498 : ULONG Offset = 0; -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00023 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002a 0f b6 8d e8 00 - 00 00 movzx ecx, BYTE PTR _Ch$[rbp] - 00031 88 08 mov BYTE PTR [rax], cl - 00033 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003a 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 -??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z -_TEXT SEGMENT -__$ReturnUdt$ = 224 -_Ch$ = 232 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT + 0004b c7 45 24 00 00 + 00 00 mov DWORD PTR Offset$[rbp], 0 +$LN2@NcDisassem: -; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { +; 499 : +; 500 : while (Offset < BufferSize) -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00052 8b 85 10 02 00 + 00 mov eax, DWORD PTR BufferSize$[rbp] + 00058 39 45 24 cmp DWORD PTR Offset$[rbp], eax + 0005b 0f 83 b8 01 00 + 00 jae $LN3@NcDisassem -; 35 : return _Fillobj<_Elem>(_Ch); +; 501 : { +; 502 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; - 00023 0f b6 95 e8 00 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0002a 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00031 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 00061 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00066 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0006b 48 89 85 88 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00072 48 83 bd 88 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 0007a 74 15 je SHORT $LN6@NcDisassem + 0007c 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 00083 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00088 48 89 85 d8 01 + 00 00 mov QWORD PTR tv76[rbp], rax + 0008f eb 0b jmp SHORT $LN7@NcDisassem +$LN6@NcDisassem: + 00091 48 c7 85 d8 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv76[rbp], 0 +$LN7@NcDisassem: + 0009c 48 8b 85 d8 01 + 00 00 mov rax, QWORD PTR tv76[rbp] + 000a3 48 89 85 68 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000aa 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000b1 48 89 45 48 mov QWORD PTR Link$1[rbp], rax -; 36 : } +; 503 : Link->Flags = CODE_FLAG_IS_INST; - 0003d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z -_TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT + 000b5 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 000b9 c7 40 18 04 00 + 00 00 mov DWORD PTR [rax+24], 4 -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument +; 504 : ULONG PossibleSize = min(15, BufferSize - Offset); -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000c0 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000c3 8b 8d 10 02 00 + 00 mov ecx, DWORD PTR BufferSize$[rbp] + 000c9 2b c8 sub ecx, eax + 000cb 8b c1 mov eax, ecx + 000cd 83 f8 0f cmp eax, 15 + 000d0 76 0c jbe SHORT $LN8@NcDisassem + 000d2 c7 85 d4 01 00 + 00 0f 00 00 00 mov DWORD PTR tv80[rbp], 15 + 000dc eb 13 jmp SHORT $LN9@NcDisassem +$LN8@NcDisassem: + 000de 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000e1 8b 8d 10 02 00 + 00 mov ecx, DWORD PTR BufferSize$[rbp] + 000e7 2b c8 sub ecx, eax + 000e9 8b c1 mov eax, ecx + 000eb 89 85 d4 01 00 + 00 mov DWORD PTR tv80[rbp], eax +$LN9@NcDisassem: + 000f1 8b 85 d4 01 00 + 00 mov eax, DWORD PTR tv80[rbp] + 000f7 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax + +; 505 : XED_ERROR_ENUM DecodeError = XedDecode(&Link->XedInstruction, (Buf + Offset), PossibleSize); + + 000fa 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000fd 48 8b 4d 08 mov rcx, QWORD PTR Buf$[rbp] + 00101 48 03 c8 add rcx, rax + 00104 48 8b c1 mov rax, rcx + 00107 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] + 0010b 48 83 c1 30 add rcx, 48 ; 00000030H + 0010f 44 8b 45 64 mov r8d, DWORD PTR PossibleSize$2[rbp] + 00113 48 8b d0 mov rdx, rax + 00116 e8 00 00 00 00 call xed_decode + 0011b 89 85 84 00 00 + 00 mov DWORD PTR DecodeError$3[rbp], eax -; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); +; 506 : if (DecodeError != XED_ERROR_NONE) - 00024 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 00035 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0003c 48 8b 00 mov rax, QWORD PTR [rax] - 0003f 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00043 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0004a 48 03 c8 add rcx, rax - 0004d 48 8b c1 mov rax, rcx - 00050 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Manip$[rbp] - 00057 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] - 0005b 48 8b c8 mov rcx, rax - 0005e ff 95 c0 00 00 - 00 call QWORD PTR tv79[rbp] + 00121 83 bd 84 00 00 + 00 00 cmp DWORD PTR DecodeError$3[rbp], 0 + 00128 74 67 je SHORT $LN4@NcDisassem -; 425 : return _Ostr; +; 507 : { +; 508 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); - 00064 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0012a 8b 8d 84 00 00 + 00 mov ecx, DWORD PTR DecodeError$3[rbp] + 00130 e8 00 00 00 00 call xed_error_enum_t2str + 00135 48 8b d0 mov rdx, rax + 00138 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ + 0013f e8 00 00 00 00 call printf -; 426 : } +; 509 : NcDeleteBlock(Block); - 0006b 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\cmath -; COMDAT ??$log2@H$0A@@@YANH@Z -_TEXT SEGMENT -_Left$ = 224 -??$log2@H$0A@@@YANH@Z PROC ; log2, COMDAT + 00144 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0014b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 662 : _GENERIC_MATH1(log2) +; 510 : delete Link; -$LN3: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 00006 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0000d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6D66DEAE_cmath - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001e f2 0f 2a 85 e0 - 00 00 00 cvtsi2sd xmm0, DWORD PTR _Left$[rbp] - 00026 ff 15 00 00 00 - 00 call QWORD PTR __imp_log2 - 0002c 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00033 5f pop rdi - 00034 5d pop rbp - 00035 c3 ret 0 -??$log2@H$0A@@@YANH@Z ENDP ; log2 -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility -; COMDAT ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z -_TEXT SEGMENT -$T1 = 200 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z PROC ; std::find > >,unsigned long>, COMDAT + 00150 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00154 48 89 85 a8 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 0015b 48 83 bd a8 01 + 00 00 00 cmp QWORD PTR $T6[rbp], 0 + 00163 74 1a je SHORT $LN10@NcDisassem + 00165 ba 01 00 00 00 mov edx, 1 + 0016a 48 8b 8d a8 01 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 00171 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00176 48 89 85 d8 01 + 00 00 mov QWORD PTR tv130[rbp], rax + 0017d eb 0b jmp SHORT $LN11@NcDisassem +$LN10@NcDisassem: + 0017f 48 c7 85 d8 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv130[rbp], 0 +$LN11@NcDisassem: -; 5340 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val +; 511 : return FALSE; -$LN7: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 c7 85 e4 00 00 - 00 00 00 00 00 mov DWORD PTR $T2[rbp], 0 - 0002c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0018a 33 c0 xor eax, eax + 0018c e9 99 00 00 00 jmp $LN1@NcDisassem +$LN4@NcDisassem: -; 5341 : _Adl_verify_range(_First, _Last); +; 512 : } +; 513 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); - 00038 48 8b 95 40 01 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00046 e8 00 00 00 00 call ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > + 00191 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00195 48 83 c0 30 add rax, 48 ; 00000030H + 00199 48 8b c8 mov rcx, rax + 0019c e8 00 00 00 00 call xed_decoded_inst_get_length + 001a1 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] + 001a5 89 41 28 mov DWORD PTR [rcx+40], eax + +; 514 : Link->RawData = new UCHAR[Link->RawDataSize]; + + 001a8 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001ac 8b 40 28 mov eax, DWORD PTR [rax+40] + 001af 8b c8 mov ecx, eax + 001b1 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 001b6 48 89 85 c8 01 + 00 00 mov QWORD PTR $T7[rbp], rax + 001bd 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001c1 48 8b 8d c8 01 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 001c8 48 89 48 20 mov QWORD PTR [rax+32], rcx + +; 515 : RtlCopyMemory(Link->RawData, (Buf + Offset), Link->RawDataSize); + + 001cc 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001d0 8b 40 28 mov eax, DWORD PTR [rax+40] + 001d3 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] + 001d6 48 8b 55 08 mov rdx, QWORD PTR Buf$[rbp] + 001da 48 03 d1 add rdx, rcx + 001dd 48 8b ca mov rcx, rdx + 001e0 44 8b c0 mov r8d, eax + 001e3 48 8b d1 mov rdx, rcx + 001e6 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001ea 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 001ee e8 00 00 00 00 call memcpy + +; 516 : +; 517 : NcAppendToBlock(Block, Link); + + 001f3 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] + 001f7 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 001fe e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock -; 5342 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); +; 518 : +; 519 : Offset += Link->RawDataSize; - 0004b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 00052 e8 00 00 00 00 call ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> - 00057 48 89 85 f8 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 0005e 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00065 e8 00 00 00 00 call ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> - 0006a 48 89 85 00 01 - 00 00 mov QWORD PTR tv77[rbp], rax - 00071 4c 8b 85 48 01 - 00 00 mov r8, QWORD PTR _Val$[rbp] - 00078 48 8b 95 f8 00 - 00 00 mov rdx, QWORD PTR tv79[rbp] - 0007f 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR tv77[rbp] - 00086 e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked - 0008b 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 00092 48 8d 95 c8 00 - 00 00 lea rdx, QWORD PTR $T1[rbp] - 00099 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 000a0 e8 00 00 00 00 call ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> + 00203 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00207 8b 40 28 mov eax, DWORD PTR [rax+40] + 0020a 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] + 0020d 03 c8 add ecx, eax + 0020f 8b c1 mov eax, ecx + 00211 89 45 24 mov DWORD PTR Offset$[rbp], eax -; 5343 : return _First; +; 520 : } - 000a5 48 8b 95 38 01 - 00 00 mov rdx, QWORD PTR _First$[rbp] - 000ac 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 000b3 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z - 000b8 8b 85 e4 00 00 - 00 mov eax, DWORD PTR $T2[rbp] - 000be 83 c8 01 or eax, 1 - 000c1 89 85 e4 00 00 - 00 mov DWORD PTR $T2[rbp], eax - 000c7 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 000ce e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 000d3 90 npad 1 - 000d4 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 000db e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 000e0 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 00214 e9 39 fe ff ff jmp $LN2@NcDisassem +$LN3@NcDisassem: -; 5344 : } +; 521 : +; 522 : NcCreateLabels(Block); - 000e7 48 8d a5 18 01 - 00 00 lea rsp, QWORD PTR [rbp+280] - 000ee 5f pop rdi - 000ef 5d pop rbp - 000f0 c3 ret 0 -??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ENDP ; std::find > >,unsigned long> -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -$T1 = 200 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$0 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -$T1 = 200 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$1 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$1 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -$T1 = 200 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$0 + 00219 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00220 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels + +; 523 : +; 524 : return TRUE; + + 00225 b8 01 00 00 00 mov eax, 1 +$LN1@NcDisassem: + +; 525 : } + + 0022a 48 8d a5 e8 01 + 00 00 lea rsp, QWORD PTR [rbp+488] + 00231 5f pop rdi + 00232 5d pop rbp + 00233 c3 ret 0 +?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ENDP ; NcDisassemble +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +Buf$ = 8 +Offset$ = 36 +Link$1 = 72 +PossibleSize$2 = 100 +DecodeError$3 = 132 +$T4 = 360 +$T5 = 392 +$T6 = 424 +$T7 = 456 +tv80 = 468 +tv130 = 472 +tv76 = 472 +Block$ = 512 +Buffer$ = 520 +BufferSize$ = 528 +?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA PROC ; `NcDisassemble'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$0 + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA ENDP ; `NcDisassemble'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -$T1 = 200 -$T2 = 228 -tv79 = 248 -tv77 = 256 -__$ReturnUdt$ = 304 -_First$ = 312 -_Last$ = 320 -_Val$ = 328 -?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA PROC ; `std::find > >,unsigned long>'::`1'::dtor$1 +Buf$ = 8 +Offset$ = 36 +Link$1 = 72 +PossibleSize$2 = 100 +DecodeError$3 = 132 +$T4 = 360 +$T5 = 392 +$T6 = 424 +$T7 = 456 +tv80 = 468 +tv130 = 472 +tv76 = 472 +Block$ = 512 +Buffer$ = 520 +BufferSize$ = 528 +?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA PROC ; `NcDisassemble'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA ENDP ; `std::find > >,unsigned long>'::`1'::dtor$1 + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA ENDP ; `NcDisassemble'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z -_TEXT SEGMENT -this$ = 224 -__param0$ = 232 -__param1$ = 240 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR __param1$[rbp] - 00024 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR __param0$[rbp] - 0002b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > - 00037 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z -_TEXT SEGMENT -this$ = 224 -__that$ = 232 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z - 0002b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -_TEXT SEGMENT -this$ = 224 -??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ PROC ; std::_Vector_iterator > >::~_Vector_iterator > >, COMDAT -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 0001f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 -??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_iterator > >::~_Vector_iterator > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT -this$ = 224 -?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ PROC ; std::_Vector_iterator > >::_Unwrapped, COMDAT +T$9 = 8 +BranchDisp$10 = 36 +DispWidth$11 = 68 +MachineState$12 = 104 +EncoderInstruction$13 = 144 +EncoderRequest$14 = 592 +EncodeBuffer$15 = 808 +ReturnedSize$16 = 852 +IClass$17 = 884 +Err$18 = 916 +$T19 = 1528 +$T20 = 1608 +$T21 = 1688 +$T22 = 1720 +$T23 = 1760 +tv174 = 1812 +__$ArrayPad$ = 1816 +Block$ = 1856 +?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcFixRelJmps, COMDAT -; 335 : _NODISCARD _CONSTEXPR20_CONTAINER value_type* _Unwrapped() const noexcept { +; 413 : { -$LN3: +$LN19: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00006 56 push rsi + 00007 57 push rdi + 00008 48 81 ec 50 07 + 00 00 sub rsp, 1872 ; 00000750H + 0000f 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00014 48 8b fc mov rdi, rsp + 00017 b9 d4 01 00 00 mov ecx, 468 ; 000001d4H + 0001c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00021 f3 ab rep stosd + 00023 48 8b 8c 24 78 + 07 00 00 mov rcx, QWORD PTR [rsp+1912] + 0002b 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00032 48 33 c5 xor rax, rbp + 00035 48 89 85 18 07 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00043 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 336 : return _Unfancy(this->_Ptr); +; 414 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 0002a e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00048 48 8b 85 40 07 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0004f 48 8b 00 mov rax, QWORD PTR [rax] + 00052 48 89 45 08 mov QWORD PTR T$9[rbp], rax +$LN2@NcFixRelJm: + 00056 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 + 0005b 0f 84 ec 02 00 + 00 je $LN3@NcFixRelJm + 00061 48 8b 85 40 07 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00068 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006c 48 8b 00 mov rax, QWORD PTR [rax] + 0006f 48 39 45 08 cmp QWORD PTR T$9[rbp], rax + 00073 0f 84 d4 02 00 + 00 je $LN3@NcFixRelJm -; 337 : } +; 415 : { +; 416 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 0002f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00036 5f pop rdi - 00037 5d pop rbp - 00038 c3 ret 0 -?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ENDP ; std::_Vector_iterator > >::_Unwrapped -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z -_TEXT SEGMENT -this$ = 224 -__that$ = 232 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 - 0002b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR __that$[rbp] - 00039 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 0003d 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00041 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -_TEXT SEGMENT -this$ = 224 -??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ PROC ; std::_Vector_const_iterator > >::~_Vector_const_iterator > >, COMDAT -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 - 0001f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 -??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z -_TEXT SEGMENT -this$ = 224 -_It$ = 232 -?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z PROC ; std::_Vector_const_iterator > >::_Seek_to, COMDAT + 00079 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0007d 8b 40 18 mov eax, DWORD PTR [rax+24] + 00080 83 e0 02 and eax, 2 + 00083 85 c0 test eax, eax + 00085 0f 84 b2 02 00 + 00 je $LN7@NcFixRelJm + +; 417 : { +; 418 : INT32 BranchDisp = 0; + + 0008b c7 45 24 00 00 + 00 00 mov DWORD PTR BranchDisp$10[rbp], 0 + +; 419 : if (!NcGetDeltaToLabel(T, &BranchDisp)) + + 00092 48 8d 55 24 lea rdx, QWORD PTR BranchDisp$10[rbp] + 00096 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 0009a e8 00 00 00 00 call ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel + 0009f 85 c0 test eax, eax + 000a1 75 07 jne SHORT $LN8@NcFixRelJm + +; 420 : return FALSE; + + 000a3 33 c0 xor eax, eax + 000a5 e9 a8 02 00 00 jmp $LN1@NcFixRelJm +$LN8@NcFixRelJm: + +; 421 : +; 422 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); + + 000aa 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 000ae 48 83 c0 30 add rax, 48 ; 00000030H + 000b2 48 8b c8 mov rcx, rax + 000b5 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width_bits + 000ba 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + +; 423 : if (log2(abs(BranchDisp)) + 1 > DispWidth) + + 000bd 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] + 000c0 e8 00 00 00 00 call abs + 000c5 8b c8 mov ecx, eax + 000c7 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 + 000cc f2 0f 58 05 00 + 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 + 000d4 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 000d7 f2 48 0f 2a c8 cvtsi2sd xmm1, rax + 000dc 66 0f 2f c1 comisd xmm0, xmm1 + 000e0 0f 86 c3 01 00 + 00 jbe $LN9@NcFixRelJm + +; 424 : { +; 425 : //duh oh +; 426 : if (DispWidth == 32) + + 000e6 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + 000ea 75 07 jne SHORT $LN11@NcFixRelJm + +; 427 : return FALSE; + + 000ec 33 c0 xor eax, eax + 000ee e9 5f 02 00 00 jmp $LN1@NcFixRelJm +$LN11@NcFixRelJm: + +; 428 : +; 429 : ////Grow displacement width to required size +; 430 : //DispWidth *= 2; +; 431 : +; 432 : ////Check again +; 433 : //if (log2(abs(BranchDisp)) + 1 > DispWidth) +; 434 : //{ +; 435 : // if (DispWidth == 32) +; 436 : // return FALSE; +; 437 : +; 438 : // //Grow once more if not already at 32 +; 439 : // DispWidth *= 2; +; 440 : //} +; 441 : +; 442 : DispWidth = 32; + + 000f3 c7 45 44 20 00 + 00 00 mov DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + +; 443 : +; 444 : //Encode new instruction +; 445 : XED_STATE MachineState; +; 446 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; + + 000fa c7 45 68 01 00 + 00 00 mov DWORD PTR MachineState$12[rbp], 1 + +; 447 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; + + 00101 c7 45 6c 08 00 + 00 00 mov DWORD PTR MachineState$12[rbp+4], 8 -; 208 : _CONSTEXPR20_CONTAINER void _Seek_to(const value_type* _It) noexcept { +; 448 : XED_ENCODER_INSTRUCTION EncoderInstruction; +; 449 : XED_ENCODER_REQUEST EncoderRequest; +; 450 : UCHAR EncodeBuffer[15]; +; 451 : UINT ReturnedSize; +; 452 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); + + 00108 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0010c 48 83 c0 30 add rax, 48 ; 00000030H + 00110 48 8b c8 mov rcx, rax + 00113 e8 00 00 00 00 call xed_decoded_inst_get_iclass + 00118 89 85 74 03 00 + 00 mov DWORD PTR IClass$17[rbp], eax -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode +; 453 : +; 454 : //Do the encoding +; 455 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); -; 209 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); + 0011e 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] + 00122 33 d2 xor edx, edx + 00124 48 8d 8d 48 06 + 00 00 lea rcx, QWORD PTR $T20[rbp] + 0012b e8 00 00 00 00 call xed_relbr + 00130 48 8d 8d f8 05 + 00 00 lea rcx, QWORD PTR $T19[rbp] + 00137 48 8b f9 mov rdi, rcx + 0013a 48 8b f0 mov rsi, rax + 0013d b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00142 f3 a4 rep movsb + 00144 48 8d 85 e0 06 + 00 00 lea rax, QWORD PTR $T23[rbp] + 0014b 48 8d 8d f8 05 + 00 00 lea rcx, QWORD PTR $T19[rbp] + 00152 48 8b f8 mov rdi, rax + 00155 48 8b f1 mov rsi, rcx + 00158 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0015d f3 a4 rep movsb + 0015f 48 8d 85 e0 06 + 00 00 lea rax, QWORD PTR $T23[rbp] + 00166 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0016b 44 8b 4d 44 mov r9d, DWORD PTR DispWidth$11[rbp] + 0016f 44 8b 85 74 03 + 00 00 mov r8d, DWORD PTR IClass$17[rbp] + 00176 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] + 0017a 48 8d 8d 90 00 + 00 00 lea rcx, QWORD PTR EncoderInstruction$13[rbp] + 00181 e8 00 00 00 00 call xed_inst1 - 00024 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 0002b e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy - 00030 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00037 48 89 41 10 mov QWORD PTR [rcx+16], rax +; 456 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); -; 210 : } + 00186 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 0018a 48 8d 8d 50 02 + 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] + 00191 e8 00 00 00 00 call xed_encoder_request_zero_set_mode - 0003b 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 -?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ENDP ; std::_Vector_const_iterator > >::_Seek_to -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z -_TEXT SEGMENT -tv69 = 192 -_First$ = 240 -_Last$ = 248 -?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z PROC ; std::_Verify_range, COMDAT +; 457 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) -; 196 : const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) noexcept { + 00196 48 8d 95 90 00 + 00 00 lea rdx, QWORD PTR EncoderInstruction$13[rbp] + 0019d 48 8d 8d 50 02 + 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] + 001a4 e8 00 00 00 00 call xed_convert_to_encoder_request + 001a9 85 c0 test eax, eax + 001ab 75 07 jne SHORT $LN12@NcFixRelJm -$LN21: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -$LN4@Verify_ran: +; 458 : return FALSE; -; 197 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); + 001ad 33 c0 xor eax, eax + 001af e9 9e 01 00 00 jmp $LN1@NcFixRelJm +$LN12@NcFixRelJm: - 00024 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 0002b e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00030 48 89 85 c0 00 - 00 00 mov QWORD PTR tv69[rbp], rax - 00037 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 0003e e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00043 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv69[rbp] - 0004a 48 3b c8 cmp rcx, rax - 0004d 75 02 jne SHORT $LN7@Verify_ran - 0004f eb 6b jmp SHORT $LN15@Verify_ran -$LN7@Verify_ran: - 00051 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ - 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0005d 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00064 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00069 45 33 c9 xor r9d, r9d - 0006c 41 b8 c5 00 00 - 00 mov r8d, 197 ; 000000c5H - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00079 b9 02 00 00 00 mov ecx, 2 - 0007e ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 00084 83 f8 01 cmp eax, 1 - 00087 75 03 jne SHORT $LN19@Verify_ran - 00089 cc int 3 - 0008a 33 c0 xor eax, eax -$LN19@Verify_ran: - 0008c 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00095 41 b9 c5 00 00 - 00 mov r9d, 197 ; 000000c5H - 0009b 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000a2 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ - 000a9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 000b0 ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 000b6 33 c0 xor eax, eax - 000b8 85 c0 test eax, eax - 000ba 75 95 jne SHORT $LN7@Verify_ran -$LN15@Verify_ran: - 000bc 33 c0 xor eax, eax - 000be 85 c0 test eax, eax - 000c0 0f 85 5e ff ff - ff jne $LN4@Verify_ran -$LN10@Verify_ran: +; 459 : XED_ERROR_ENUM Err = XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize); -; 198 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); + 001b4 4c 8d 8d 54 03 + 00 00 lea r9, QWORD PTR ReturnedSize$16[rbp] + 001bb 41 b8 0f 00 00 + 00 mov r8d, 15 + 001c1 48 8d 95 28 03 + 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] + 001c8 48 8d 8d 50 02 + 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] + 001cf e8 00 00 00 00 call xed_encode + 001d4 89 85 94 03 00 + 00 mov DWORD PTR Err$18[rbp], eax - 000c6 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] - 000cd 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Last$[rbp] - 000d4 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 000d8 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 000dc 77 02 ja SHORT $LN13@Verify_ran - 000de eb 6b jmp SHORT $LN17@Verify_ran -$LN13@Verify_ran: - 000e0 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ - 000e7 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 000ec 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000f3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000f8 45 33 c9 xor r9d, r9d - 000fb 41 b8 c6 00 00 - 00 mov r8d, 198 ; 000000c6H - 00101 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00108 b9 02 00 00 00 mov ecx, 2 - 0010d ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 00113 83 f8 01 cmp eax, 1 - 00116 75 03 jne SHORT $LN20@Verify_ran - 00118 cc int 3 - 00119 33 c0 xor eax, eax -$LN20@Verify_ran: - 0011b 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00124 41 b9 c6 00 00 - 00 mov r9d, 198 ; 000000c6H - 0012a 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00131 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ - 00138 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 0013f ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 00145 33 c0 xor eax, eax - 00147 85 c0 test eax, eax - 00149 75 95 jne SHORT $LN13@Verify_ran -$LN17@Verify_ran: - 0014b 33 c0 xor eax, eax - 0014d 85 c0 test eax, eax - 0014f 0f 85 71 ff ff - ff jne $LN10@Verify_ran +; 460 : if (XED_ERROR_NONE != Err) -; 199 : } + 001da 83 bd 94 03 00 + 00 00 cmp DWORD PTR Err$18[rbp], 0 + 001e1 74 07 je SHORT $LN13@NcFixRelJm - 00155 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 0015c 5f pop rdi - 0015d 5d pop rbp - 0015e c3 ret 0 -?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ENDP ; std::_Verify_range -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z -_TEXT SEGMENT -tv69 = 192 -this$ = 240 -_Right$ = 248 -?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z PROC ; std::_Vector_const_iterator > >::_Compat, COMDAT +; 461 : return FALSE; -; 185 : _CONSTEXPR20_CONTAINER void _Compat(const _Vector_const_iterator& _Right) const noexcept { + 001e3 33 c0 xor eax, eax + 001e5 e9 68 01 00 00 jmp $LN1@NcFixRelJm +$LN13@NcFixRelJm: -$LN12: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -$LN4@Compat: +; 462 : +; 463 : //fixup T->RawData +; 464 : delete[] T->RawData; -; 186 : // test for compatible iterator pair -; 187 : #if _ITERATOR_DEBUG_LEVEL == 0 -; 188 : (void) _Right; -; 189 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 0 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 0 vvv -; 190 : _STL_VERIFY(this->_Getcont() == _Right._Getcont(), "vector iterators incompatible"); + 001ea 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 001ee 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 001f2 48 89 85 98 06 + 00 00 mov QWORD PTR $T21[rbp], rax + 001f9 48 8b 8d 98 06 + 00 00 mov rcx, QWORD PTR $T21[rbp] + 00200 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] - 00024 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0002b e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00030 48 89 85 c0 00 - 00 00 mov QWORD PTR tv69[rbp], rax - 00037 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Right$[rbp] - 0003e e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00043 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv69[rbp] - 0004a 48 3b c8 cmp rcx, rax - 0004d 75 02 jne SHORT $LN7@Compat - 0004f eb 6b jmp SHORT $LN9@Compat -$LN7@Compat: - 00051 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ - 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0005d 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00064 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00069 45 33 c9 xor r9d, r9d - 0006c 41 b8 be 00 00 - 00 mov r8d, 190 ; 000000beH - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00079 b9 02 00 00 00 mov ecx, 2 - 0007e ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 00084 83 f8 01 cmp eax, 1 - 00087 75 03 jne SHORT $LN11@Compat - 00089 cc int 3 - 0008a 33 c0 xor eax, eax -$LN11@Compat: - 0008c 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00095 41 b9 be 00 00 - 00 mov r9d, 190 ; 000000beH - 0009b 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000a2 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ - 000a9 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 000b0 ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 000b6 33 c0 xor eax, eax - 000b8 85 c0 test eax, eax - 000ba 75 95 jne SHORT $LN7@Compat -$LN9@Compat: - 000bc 33 c0 xor eax, eax - 000be 85 c0 test eax, eax - 000c0 0f 85 5e ff ff - ff jne $LN4@Compat +; 465 : T->RawDataSize = ReturnedSize; -; 191 : #endif // _ITERATOR_DEBUG_LEVEL == 0 -; 192 : } + 00205 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00209 8b 8d 54 03 00 + 00 mov ecx, DWORD PTR ReturnedSize$16[rbp] + 0020f 89 48 28 mov DWORD PTR [rax+40], ecx - 000c6 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 000cd 5f pop rdi - 000ce 5d pop rbp - 000cf c3 ret 0 -?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ENDP ; std::_Vector_const_iterator > >::_Compat -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z -_TEXT SEGMENT -tv69 = 192 -this$ = 240 -_Right$ = 248 -??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator!=, COMDAT +; 466 : T->RawData = new UCHAR[ReturnedSize]; + + 00212 8b 85 54 03 00 + 00 mov eax, DWORD PTR ReturnedSize$16[rbp] + 00218 8b c8 mov ecx, eax + 0021a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 0021f 48 89 85 b8 06 + 00 00 mov QWORD PTR $T22[rbp], rax + 00226 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0022a 48 8b 8d b8 06 + 00 00 mov rcx, QWORD PTR $T22[rbp] + 00231 48 89 48 20 mov QWORD PTR [rax+32], rcx -; 163 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const noexcept { +; 467 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); -$LN5: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00235 8b 85 54 03 00 + 00 mov eax, DWORD PTR ReturnedSize$16[rbp] + 0023b 44 8b c0 mov r8d, eax + 0023e 48 8d 95 28 03 + 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] + 00245 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00249 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 0024d e8 00 00 00 00 call memcpy + +; 468 : +; 469 : //Decode instruction so its proper and all that +; 470 : XedDecodedInstZeroSetMode(&T->XedInstruction, &MachineState); + + 00252 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00256 48 83 c0 30 add rax, 48 ; 00000030H + 0025a 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 0025e 48 8b c8 mov rcx, rax + 00261 e8 00 00 00 00 call xed_decoded_inst_zero_set_mode + +; 471 : if (XED_ERROR_NONE != XedDecode(&T->XedInstruction, T->RawData, T->RawDataSize)) + + 00266 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0026a 48 83 c0 30 add rax, 48 ; 00000030H + 0026e 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00272 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00276 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 0027a 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0027e 48 8b c8 mov rcx, rax + 00281 e8 00 00 00 00 call xed_decode + 00286 85 c0 test eax, eax + 00288 74 07 je SHORT $LN14@NcFixRelJm + +; 472 : return FALSE; + + 0028a 33 c0 xor eax, eax + 0028c e9 c1 00 00 00 jmp $LN1@NcFixRelJm +$LN14@NcFixRelJm: -; 164 : return !(*this == _Right); +; 473 : +; 474 : //Go back to the start and loop through all labels again because now this instruction is larger :)))) +; 475 : T = Block->Start; - 00024 48 8b 95 f8 00 - 00 00 mov rdx, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== - 00037 0f b6 c0 movzx eax, al - 0003a 85 c0 test eax, eax - 0003c 75 0c jne SHORT $LN3@operator - 0003e c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00048 eb 0a jmp SHORT $LN4@operator -$LN3@operator: - 0004a c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 -$LN4@operator: - 00054 0f b6 85 c0 00 - 00 00 movzx eax, BYTE PTR tv69[rbp] + 00291 48 8b 85 40 07 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00298 48 8b 00 mov rax, QWORD PTR [rax] + 0029b 48 89 45 08 mov QWORD PTR T$9[rbp], rax -; 165 : } +; 476 : continue; - 0005b 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 -??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator!= + 0029f e9 b2 fd ff ff jmp $LN2@NcFixRelJm + +; 477 : } + + 002a4 e9 94 00 00 00 jmp $LN10@NcFixRelJm +$LN9@NcFixRelJm: + +; 478 : else +; 479 : { +; 480 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); + + 002a9 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 002ad 48 83 c0 30 add rax, 48 ; 00000030H + 002b1 48 8b c8 mov rcx, rax + 002b4 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width + 002b9 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + +; 481 : switch (DispWidth) + + 002bc 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 002bf 89 85 14 07 00 + 00 mov DWORD PTR tv174[rbp], eax + 002c5 83 bd 14 07 00 + 00 01 cmp DWORD PTR tv174[rbp], 1 + 002cc 74 14 je SHORT $LN15@NcFixRelJm + 002ce 83 bd 14 07 00 + 00 02 cmp DWORD PTR tv174[rbp], 2 + 002d5 74 2a je SHORT $LN16@NcFixRelJm + 002d7 83 bd 14 07 00 + 00 04 cmp DWORD PTR tv174[rbp], 4 + 002de 74 41 je SHORT $LN17@NcFixRelJm + 002e0 eb 5b jmp SHORT $LN5@NcFixRelJm +$LN15@NcFixRelJm: + +; 482 : { +; 483 : case 1: *(PINT8)&T->RawData[T->RawDataSize - DispWidth] = (INT8)BranchDisp; break; + + 002e2 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 002e6 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 002e9 8b 40 28 mov eax, DWORD PTR [rax+40] + 002ec 2b c1 sub eax, ecx + 002ee 8b c0 mov eax, eax + 002f0 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 002f4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 002f8 0f b6 55 24 movzx edx, BYTE PTR BranchDisp$10[rbp] + 002fc 88 14 01 mov BYTE PTR [rcx+rax], dl + 002ff eb 3c jmp SHORT $LN5@NcFixRelJm +$LN16@NcFixRelJm: + +; 484 : case 2: *(PINT16)&T->RawData[T->RawDataSize - DispWidth] = (INT16)BranchDisp; break; + + 00301 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00305 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 00308 8b 40 28 mov eax, DWORD PTR [rax+40] + 0030b 2b c1 sub eax, ecx + 0030d 8b c0 mov eax, eax + 0030f 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00313 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00317 0f b7 55 24 movzx edx, WORD PTR BranchDisp$10[rbp] + 0031b 66 89 14 01 mov WORD PTR [rcx+rax], dx + 0031f eb 1c jmp SHORT $LN5@NcFixRelJm +$LN17@NcFixRelJm: + +; 485 : case 4: *(PINT32)&T->RawData[T->RawDataSize - DispWidth] = (INT32)BranchDisp; break; + + 00321 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00325 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 00328 8b 40 28 mov eax, DWORD PTR [rax+40] + 0032b 2b c1 sub eax, ecx + 0032d 8b c0 mov eax, eax + 0032f 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00333 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00337 8b 55 24 mov edx, DWORD PTR BranchDisp$10[rbp] + 0033a 89 14 01 mov DWORD PTR [rcx+rax], edx +$LN5@NcFixRelJm: +$LN10@NcFixRelJm: +$LN7@NcFixRelJm: + +; 486 : } +; 487 : } +; 488 : } +; 489 : +; 490 : T = T->Next; + + 0033d 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00341 48 8b 00 mov rax, QWORD PTR [rax] + 00344 48 89 45 08 mov QWORD PTR T$9[rbp], rax + +; 491 : } + + 00348 e9 09 fd ff ff jmp $LN2@NcFixRelJm +$LN3@NcFixRelJm: + +; 492 : return TRUE; + + 0034d b8 01 00 00 00 mov eax, 1 +$LN1@NcFixRelJm: + +; 493 : } + + 00352 48 8b f8 mov rdi, rax + 00355 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00359 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 00360 e8 00 00 00 00 call _RTC_CheckStackVars + 00365 48 8b c7 mov rax, rdi + 00368 48 8b 8d 18 07 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0036f 48 33 cd xor rcx, rbp + 00372 e8 00 00 00 00 call __security_check_cookie + 00377 48 8d a5 20 07 + 00 00 lea rsp, QWORD PTR [rbp+1824] + 0037e 5f pop rdi + 0037f 5e pop rsi + 00380 5d pop rbp + 00381 c3 ret 0 +?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcFixRelJmps _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z _TEXT SEGMENT -tv69 = 192 -this$ = 240 -_Right$ = 248 -??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator==, COMDAT +Delta$ = 4 +T$1 = 40 +T$2 = 72 +Link$ = 320 +DeltaOut$ = 328 +?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z PROC ; NcGetDeltaToLabel, COMDAT -; 152 : _NODISCARD _CONSTEXPR20_CONTAINER bool operator==(const _Vector_const_iterator& _Right) const noexcept { +; 377 : { -$LN5: +$LN13: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H + 0000c 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 378 : INT32 Delta = 0; + + 0003b c7 45 04 00 00 + 00 00 mov DWORD PTR Delta$[rbp], 0 -; 153 : _Compat(_Right); +; 379 : //First checking backwards because I feel like thats the direction most jmps are in +; 380 : for (PNATIVE_CODE_LINK T = Link; T; T = T->Prev) - 00024 48 8b 95 f8 00 - 00 00 mov rdx, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat + 00042 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00049 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004d eb 0c jmp SHORT $LN4@NcGetDelta +$LN2@NcGetDelta: + 0004f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00053 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00057 48 89 45 28 mov QWORD PTR T$1[rbp], rax +$LN4@NcGetDelta: + 0005b 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00060 74 4c je SHORT $LN3@NcGetDelta -; 154 : return _Ptr == _Right._Ptr; +; 381 : { +; 382 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00037 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00045 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00049 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 0004d 75 0c jne SHORT $LN3@operator - 0004f c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00059 eb 0a jmp SHORT $LN4@operator -$LN3@operator: - 0005b c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 -$LN4@operator: - 00065 0f b6 85 c0 00 - 00 00 movzx eax, BYTE PTR tv69[rbp] + 00062 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00066 8b 40 18 mov eax, DWORD PTR [rax+24] + 00069 83 e0 01 and eax, 1 + 0006c 85 c0 test eax, eax + 0006e 74 2b je SHORT $LN8@NcGetDelta -; 155 : } +; 383 : { +; 384 : if (T->Label == Link->Label) - 0006c 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 -??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator== -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z -_TEXT SEGMENT -this$ = 224 -_Parg$ = 232 -_Pvector$ = 240 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT + 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00074 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0007b 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 0007e 39 48 1c cmp DWORD PTR [rax+28], ecx + 00081 75 16 jne SHORT $LN9@NcGetDelta -; 42 : _CONSTEXPR20_CONTAINER _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { +; 385 : { +; 386 : *DeltaOut = Delta; -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 - 00035 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Parg$[rbp] - 00043 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00083 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR DeltaOut$[rbp] + 0008a 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 0008d 89 08 mov DWORD PTR [rax], ecx + +; 387 : return TRUE; + + 0008f b8 01 00 00 00 mov eax, 1 + 00094 e9 89 00 00 00 jmp $LN1@NcGetDelta +$LN9@NcGetDelta: + +; 388 : } +; 389 : continue; -; 43 : this->_Adopt(_Pvector); + 00099 eb b4 jmp SHORT $LN2@NcGetDelta +$LN8@NcGetDelta: - 00047 48 8b 95 f0 00 - 00 00 mov rdx, QWORD PTR _Pvector$[rbp] - 0004e 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00055 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt +; 390 : } +; 391 : Delta -= T->RawDataSize; -; 44 : } + 0009b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0009f 8b 40 28 mov eax, DWORD PTR [rax+40] + 000a2 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 000a5 2b c8 sub ecx, eax + 000a7 8b c1 mov eax, ecx + 000a9 89 45 04 mov DWORD PTR Delta$[rbp], eax - 0005a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00061 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z -_TEXT SEGMENT -T$1 = 8 -i$2 = 36 -$T3 = 260 -$T4 = 296 -tv93 = 328 -tv95 = 336 -tv130 = 344 -tv132 = 352 -tv144 = 360 -tv142 = 368 -Block$ = 416 -?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcPrintBlockCode, COMDAT +; 392 : } -; 584 : { + 000ac eb a1 jmp SHORT $LN2@NcGetDelta +$LN3@NcGetDelta: -$LN10: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec a8 01 - 00 00 sub rsp, 424 ; 000001a8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode +; 393 : +; 394 : //Now check forwards +; 395 : Delta = 0; -; 585 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + 000ae c7 45 04 00 00 + 00 00 mov DWORD PTR Delta$[rbp], 0 - 0001f 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 0002d eb 0b jmp SHORT $LN4@NcPrintBlo -$LN2@NcPrintBlo: - 0002f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00033 48 8b 00 mov rax, QWORD PTR [rax] - 00036 48 89 45 08 mov QWORD PTR T$1[rbp], rax -$LN4@NcPrintBlo: - 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0003f 0f 84 03 01 00 - 00 je $LN3@NcPrintBlo - 00045 48 8b 85 a0 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0004c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00050 48 8b 00 mov rax, QWORD PTR [rax] - 00053 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00057 0f 84 eb 00 00 - 00 je $LN3@NcPrintBlo +; 396 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) -; 586 : { -; 587 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) + 000b5 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000bc 48 8b 00 mov rax, QWORD PTR [rax] + 000bf 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 000c3 eb 0b jmp SHORT $LN7@NcGetDelta +$LN5@NcGetDelta: + 000c5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 45 48 mov QWORD PTR T$2[rbp], rax +$LN7@NcGetDelta: + 000d0 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 000d5 74 49 je SHORT $LN6@NcGetDelta - 0005d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00061 8b 40 18 mov eax, DWORD PTR [rax+24] - 00064 83 e0 01 and eax, 1 - 00067 85 c0 test eax, eax - 00069 0f 85 d4 00 00 - 00 jne $LN8@NcPrintBlo +; 397 : { +; 398 : if (T->Flags & CODE_FLAG_IS_LABEL) -; 588 : { -; 589 : for (uint32_t i = 0; i < T->RawDataSize; i++) + 000d7 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000db 8b 40 18 mov eax, DWORD PTR [rax+24] + 000de 83 e0 01 and eax, 1 + 000e1 85 c0 test eax, eax + 000e3 74 28 je SHORT $LN10@NcGetDelta - 0006f c7 45 24 00 00 - 00 00 mov DWORD PTR i$2[rbp], 0 - 00076 eb 08 jmp SHORT $LN7@NcPrintBlo -$LN5@NcPrintBlo: - 00078 8b 45 24 mov eax, DWORD PTR i$2[rbp] - 0007b ff c0 inc eax - 0007d 89 45 24 mov DWORD PTR i$2[rbp], eax -$LN7@NcPrintBlo: - 00080 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00084 8b 40 28 mov eax, DWORD PTR [rax+40] - 00087 39 45 24 cmp DWORD PTR i$2[rbp], eax - 0008a 0f 83 b3 00 00 - 00 jae $LN6@NcPrintBlo +; 399 : { +; 400 : if (T->Label == Link->Label) -; 590 : { -; 591 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; + 000e5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000e9 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000f0 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 000f3 39 48 1c cmp DWORD PTR [rax+28], ecx + 000f6 75 13 jne SHORT $LN11@NcGetDelta - 00090 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 00097 48 8b 0d 00 00 - 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 0009e ff 15 00 00 00 - 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z - 000a4 48 89 85 48 01 - 00 00 mov QWORD PTR tv93[rbp], rax - 000ab ba 02 00 00 00 mov edx, 2 - 000b0 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR $T4[rbp] - 000b7 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 000bc 48 89 85 50 01 - 00 00 mov QWORD PTR tv95[rbp], rax - 000c3 48 8b 95 50 01 - 00 00 mov rdx, QWORD PTR tv95[rbp] - 000ca 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR tv93[rbp] - 000d1 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> - 000d6 48 89 85 58 01 - 00 00 mov QWORD PTR tv130[rbp], rax - 000dd b2 30 mov dl, 48 ; 00000030H - 000df 48 8d 8d 04 01 - 00 00 lea rcx, QWORD PTR $T3[rbp] - 000e6 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill - 000eb 48 89 85 60 01 - 00 00 mov QWORD PTR tv132[rbp], rax - 000f2 48 8b 95 60 01 - 00 00 mov rdx, QWORD PTR tv132[rbp] - 000f9 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR tv130[rbp] - 00100 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> - 00105 48 89 85 68 01 - 00 00 mov QWORD PTR tv144[rbp], rax - 0010c 8b 45 24 mov eax, DWORD PTR i$2[rbp] - 0010f 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] - 00113 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00117 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 0011b 89 85 70 01 00 - 00 mov DWORD PTR tv142[rbp], eax - 00121 8b 95 70 01 00 - 00 mov edx, DWORD PTR tv142[rbp] - 00127 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR tv144[rbp] - 0012e ff 15 00 00 00 - 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 00134 b2 20 mov dl, 32 ; 00000020H - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > +; 401 : { +; 402 : *DeltaOut = Delta; -; 592 : } + 000f8 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR DeltaOut$[rbp] + 000ff 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00102 89 08 mov DWORD PTR [rax], ecx - 0013e e9 35 ff ff ff jmp $LN5@NcPrintBlo -$LN6@NcPrintBlo: -$LN8@NcPrintBlo: +; 403 : return TRUE; -; 593 : } -; 594 : } + 00104 b8 01 00 00 00 mov eax, 1 + 00109 eb 17 jmp SHORT $LN1@NcGetDelta +$LN11@NcGetDelta: - 00143 e9 e7 fe ff ff jmp $LN2@NcPrintBlo -$LN3@NcPrintBlo: +; 404 : } +; 405 : continue; -; 595 : } + 0010b eb b8 jmp SHORT $LN5@NcGetDelta +$LN10@NcGetDelta: - 00148 48 8d a5 88 01 - 00 00 lea rsp, QWORD PTR [rbp+392] - 0014f 5f pop rdi - 00150 5d pop rbp - 00151 c3 ret 0 -?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcPrintBlockCode +; 406 : } +; 407 : Delta += T->RawDataSize; + + 0010d 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 00111 8b 40 28 mov eax, DWORD PTR [rax+40] + 00114 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00117 03 c8 add ecx, eax + 00119 8b c1 mov eax, ecx + 0011b 89 45 04 mov DWORD PTR Delta$[rbp], eax + +; 408 : } + + 0011e eb a5 jmp SHORT $LN5@NcGetDelta +$LN6@NcGetDelta: + +; 409 : return FALSE; + + 00120 33 c0 xor eax, eax +$LN1@NcGetDelta: + +; 410 : } + + 00122 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00129 5f pop rdi + 0012a 5d pop rbp + 0012b c3 ret 0 +?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ENDP ; NcGetDeltaToLabel _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT -ConsoleHandle$ = 8 -T$1 = 40 -IClass$2 = 68 -tv131 = 276 -tv129 = 280 -Block$ = 320 -?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDebugPrint, COMDAT +Block$ = 224 +BlockCopy$ = 232 +?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcDeepCopyBlock, COMDAT -; 554 : { +; 372 : { -$LN11: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 373 : return NcDeepCopyPartialBlock(Block->Start, Block->End, BlockCopy); + + 0003b 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR BlockCopy$[rbp] + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00049 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 0004d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock -; 555 : HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); +; 374 : } - 0001f b9 f5 ff ff ff mov ecx, -11 ; fffffff5H - 00024 ff 15 00 00 00 - 00 call QWORD PTR __imp_GetStdHandle - 0002a 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax + 0005c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 +?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcDeepCopyBlock +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +$L0$4 = 8 +$L0$5 = 40 +$L0$6 = 72 +L$7 = 100 +CurLink$8 = 136 +Temp$9 = 168 +tv88 = 376 +__$ArrayPad$ = 384 +Start$ = 432 +End$ = 440 +Block$ = 448 +?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeepCopyPartialBlock, COMDAT -; 556 : if (!ConsoleHandle) +; 347 : { - 0002e 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 - 00033 75 05 jne SHORT $LN5@NcDebugPri +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec b8 01 + 00 00 sub rsp, 440 ; 000001b8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 d8 + 01 00 00 mov rcx, QWORD PTR [rsp+472] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 80 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 557 : return; +; 348 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) - 00035 e9 03 01 00 00 jmp $LN1@NcDebugPri -$LN5@NcDebugPri: + 00051 48 83 bd b0 01 + 00 00 00 cmp QWORD PTR Start$[rbp], 0 + 00059 74 3a je SHORT $LN9@NcDeepCopy + 0005b 48 83 bd b8 01 + 00 00 00 cmp QWORD PTR End$[rbp], 0 + 00063 74 30 je SHORT $LN9@NcDeepCopy + 00065 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 0006c 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 00071 74 22 je SHORT $LN9@NcDeepCopy + 00073 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 0007a 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR End$[rbp] + 00081 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00085 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 00089 75 0a jne SHORT $LN9@NcDeepCopy + 0008b 48 83 bd c0 01 + 00 00 00 cmp QWORD PTR Block$[rbp], 0 + 00093 75 07 jne SHORT $LN8@NcDeepCopy +$LN9@NcDeepCopy: -; 558 : -; 559 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 349 : return FALSE; - 0003a 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00041 48 8b 00 mov rax, QWORD PTR [rax] - 00044 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 00048 eb 0b jmp SHORT $LN4@NcDebugPri -$LN2@NcDebugPri: - 0004a 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 89 45 28 mov QWORD PTR T$1[rbp], rax -$LN4@NcDebugPri: - 00055 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0005a 0f 84 dd 00 00 - 00 je $LN3@NcDebugPri - 00060 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00067 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006b 48 8b 00 mov rax, QWORD PTR [rax] - 0006e 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00072 0f 84 c5 00 00 - 00 je $LN3@NcDebugPri + 00095 33 c0 xor eax, eax + 00097 e9 27 01 00 00 jmp $LN1@NcDeepCopy +$LN8@NcDeepCopy: -; 560 : { -; 561 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 350 : +; 351 : Block->LabelIds.clear(); - 00078 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0007c 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007f 83 e0 01 and eax, 1 - 00082 85 c0 test eax, eax - 00084 74 26 je SHORT $LN6@NcDebugPri + 0009c 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000a3 48 83 c0 10 add rax, 16 + 000a7 48 8b c8 mov rcx, rax + 000aa e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear -; 562 : { -; 563 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); +; 352 : Block->Start = Block->End = NULL; - 00086 66 ba 06 00 mov dx, 6 - 0008a 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 0008e ff 15 00 00 00 - 00 call QWORD PTR __imp_SetConsoleTextAttribute + 000af 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000b6 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 000be 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000c5 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 564 : printf("Label: %u\n", T->Label); +; 353 : +; 354 : for (ULONG L : Start->Block->LabelIds) - 00094 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00098 8b 50 1c mov edx, DWORD PTR [rax+28] - 0009b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ - 000a2 e8 00 00 00 00 call printf + 000cc 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 000d3 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000d7 48 83 c0 10 add rax, 16 + 000db 48 89 45 08 mov QWORD PTR $L0$4[rbp], rax + 000df 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] + 000e3 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin + 000e8 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax + 000ec 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] + 000f0 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end + 000f5 48 89 45 48 mov QWORD PTR $L0$6[rbp], rax + 000f9 eb 0c jmp SHORT $LN4@NcDeepCopy +$LN2@NcDeepCopy: + 000fb 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] + 000ff 48 83 c0 04 add rax, 4 + 00103 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax +$LN4@NcDeepCopy: + 00107 48 8b 45 48 mov rax, QWORD PTR $L0$6[rbp] + 0010b 48 39 45 28 cmp QWORD PTR $L0$5[rbp], rax + 0010f 74 2d je SHORT $LN3@NcDeepCopy + 00111 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] + 00115 8b 00 mov eax, DWORD PTR [rax] + 00117 89 45 64 mov DWORD PTR L$7[rbp], eax -; 565 : } +; 355 : Block->LabelIds.push_back(L); - 000a7 e9 8c 00 00 00 jmp $LN7@NcDebugPri -$LN6@NcDebugPri: + 0011a 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00121 48 83 c0 10 add rax, 16 + 00125 48 89 85 78 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 0012c 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] + 00130 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR tv88[rbp] + 00137 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 0013c eb bd jmp SHORT $LN2@NcDeepCopy +$LN3@NcDeepCopy: -; 566 : else -; 567 : { -; 568 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); +; 356 : +; 357 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) - 000ac 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000b0 48 83 c0 30 add rax, 48 ; 00000030H - 000b4 48 8b c8 mov rcx, rax - 000b7 e8 00 00 00 00 call xed_decoded_inst_get_iclass - 000bc 89 45 44 mov DWORD PTR IClass$2[rbp], eax + 0013e 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00145 48 89 85 88 00 + 00 00 mov QWORD PTR CurLink$8[rbp], rax + 0014c eb 11 jmp SHORT $LN7@NcDeepCopy +$LN5@NcDeepCopy: + 0014e 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR CurLink$8[rbp] + 00155 48 8b 00 mov rax, QWORD PTR [rax] + 00158 48 89 85 88 00 + 00 00 mov QWORD PTR CurLink$8[rbp], rax +$LN7@NcDeepCopy: + 0015f 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR CurLink$8[rbp], 0 + 00167 74 55 je SHORT $LN6@NcDeepCopy + 00169 48 8b 85 b8 01 + 00 00 mov rax, QWORD PTR End$[rbp] + 00170 48 8b 00 mov rax, QWORD PTR [rax] + 00173 48 39 85 88 00 + 00 00 cmp QWORD PTR CurLink$8[rbp], rax + 0017a 74 42 je SHORT $LN6@NcDeepCopy -; 569 : if (T->Flags & CODE_FLAG_IS_REL_JMP) +; 358 : { +; 359 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); - 000bf 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000c3 8b 40 18 mov eax, DWORD PTR [rax+24] - 000c6 83 e0 02 and eax, 2 - 000c9 85 c0 test eax, eax - 000cb 74 46 je SHORT $LN8@NcDebugPri + 0017c 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR CurLink$8[rbp] + 00183 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink + 00188 48 89 85 a8 00 + 00 00 mov QWORD PTR Temp$9[rbp], rax -; 570 : { -; 571 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); +; 360 : if (!Temp) - 000cd 66 ba 06 00 mov dx, 6 - 000d1 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 000d5 ff 15 00 00 00 - 00 call QWORD PTR __imp_SetConsoleTextAttribute + 0018f 48 83 bd a8 00 + 00 00 00 cmp QWORD PTR Temp$9[rbp], 0 + 00197 75 10 jne SHORT $LN10@NcDeepCopy -; 572 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); +; 361 : { +; 362 : NcDeleteBlock(Block); - 000db 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000df 8b 40 1c mov eax, DWORD PTR [rax+28] - 000e2 89 85 14 01 00 - 00 mov DWORD PTR tv131[rbp], eax - 000e8 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] - 000eb e8 00 00 00 00 call xed_iclass_enum_t2str - 000f0 48 89 85 18 01 - 00 00 mov QWORD PTR tv129[rbp], rax - 000f7 44 8b 85 14 01 - 00 00 mov r8d, DWORD PTR tv131[rbp] - 000fe 48 8b 95 18 01 - 00 00 mov rdx, QWORD PTR tv129[rbp] - 00105 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ - 0010c e8 00 00 00 00 call printf + 00199 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 001a0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 573 : } +; 363 : return FALSE; - 00111 eb 25 jmp SHORT $LN9@NcDebugPri -$LN8@NcDebugPri: + 001a5 33 c0 xor eax, eax + 001a7 eb 1a jmp SHORT $LN1@NcDeepCopy +$LN10@NcDeepCopy: -; 574 : else -; 575 : { -; 576 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); +; 364 : } +; 365 : NcAppendToBlock(Block, Temp); - 00113 66 ba 03 00 mov dx, 3 - 00117 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 0011b ff 15 00 00 00 - 00 call QWORD PTR __imp_SetConsoleTextAttribute + 001a9 48 8b 95 a8 00 + 00 00 mov rdx, QWORD PTR Temp$9[rbp] + 001b0 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 001b7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock -; 577 : printf("%s\n", XedIClassEnumToString(IClass)); +; 366 : } - 00121 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] - 00124 e8 00 00 00 00 call xed_iclass_enum_t2str - 00129 48 8b d0 mov rdx, rax - 0012c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@ - 00133 e8 00 00 00 00 call printf -$LN9@NcDebugPri: -$LN7@NcDebugPri: + 001bc eb 90 jmp SHORT $LN5@NcDeepCopy +$LN6@NcDeepCopy: -; 578 : } -; 579 : } -; 580 : } +; 367 : +; 368 : return TRUE; - 00138 e9 0d ff ff ff jmp $LN2@NcDebugPri -$LN3@NcDebugPri: -$LN1@NcDebugPri: + 001be b8 01 00 00 00 mov eax, 1 +$LN1@NcDeepCopy: -; 581 : } +; 369 : } - 0013d 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00144 5f pop rdi - 00145 5d pop rbp - 00146 c3 ret 0 -?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDebugPrint + 001c3 48 8b f8 mov rdi, rax + 001c6 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001ca 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 001d1 e8 00 00 00 00 call _RTC_CheckStackVars + 001d6 48 8b c7 mov rax, rdi + 001d9 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 001e0 48 33 cd xor rcx, rbp + 001e3 e8 00 00 00 00 call __security_check_cookie + 001e8 48 8d a5 98 01 + 00 00 lea rsp, QWORD PTR [rbp+408] + 001ef 5f pop rdi + 001f0 5d pop rbp + 001f1 c3 ret 0 +?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeepCopyPartialBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z _TEXT SEGMENT -BlockEnding$ = 8 -T$1 = 40 -Next$2 = 72 -$T3 = 296 -tv78 = 312 -Block$ = 352 -?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeleteBlock, COMDAT +NewLink$1 = 8 +DecodeError$2 = 36 +$L0$3 = 72 +$L0$4 = 104 +$L0$5 = 136 +Op$6 = 168 +$T7 = 392 +$T8 = 424 +$T9 = 456 +$T10 = 488 +$T11 = 520 +tv151 = 532 +tv174 = 536 +tv155 = 536 +tv149 = 536 +tv131 = 536 +tv81 = 536 +Link$ = 576 +?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z PROC ; NcDeepCopyLink, COMDAT -; 539 : { +; 319 : { -$LN10: +$LN18: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 540 : if (!Block->Start || !Block->End) + 00007 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 0e je SHORT $LN6@NcDeleteBl - 0002c 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00033 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00038 75 05 jne SHORT $LN5@NcDeleteBl -$LN6@NcDeleteBl: +; 320 : if (Link->Flags & CODE_FLAG_IS_LABEL) -; 541 : return; + 00036 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0003d 8b 40 18 mov eax, DWORD PTR [rax+24] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 67 je SHORT $LN5@NcDeepCopy - 0003a e9 80 00 00 00 jmp $LN1@NcDeleteBl -$LN5@NcDeleteBl: +; 321 : { +; 322 : return new NATIVE_CODE_LINK(Link->Label, NULL); -; 542 : -; 543 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; + 00047 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 0004c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00051 48 89 85 a8 01 + 00 00 mov QWORD PTR $T8[rbp], rax + 00058 48 83 bd a8 01 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 00060 74 22 je SHORT $LN10@NcDeepCopy + 00062 45 33 c0 xor r8d, r8d + 00065 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0006c 8b 50 1c mov edx, DWORD PTR [rax+28] + 0006f 48 8b 8d a8 01 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00076 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0007b 48 89 85 18 02 + 00 00 mov QWORD PTR tv81[rbp], rax + 00082 eb 0b jmp SHORT $LN11@NcDeepCopy +$LN10@NcDeepCopy: + 00084 48 c7 85 18 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv81[rbp], 0 +$LN11@NcDeepCopy: + 0008f 48 8b 85 18 02 + 00 00 mov rax, QWORD PTR tv81[rbp] + 00096 48 89 85 88 01 + 00 00 mov QWORD PTR $T7[rbp], rax + 0009d 48 8b 85 88 01 + 00 00 mov rax, QWORD PTR $T7[rbp] + 000a4 e9 df 01 00 00 jmp $LN1@NcDeepCopy - 0003f 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00046 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 89 45 08 mov QWORD PTR BlockEnding$[rbp], rax +; 323 : } -; 544 : -; 545 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) + 000a9 e9 da 01 00 00 jmp $LN1@NcDeepCopy +$LN5@NcDeepCopy: - 00051 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00058 48 8b 00 mov rax, QWORD PTR [rax] - 0005b 48 89 45 28 mov QWORD PTR T$1[rbp], rax -$LN2@NcDeleteBl: - 0005f 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00064 74 59 je SHORT $LN3@NcDeleteBl - 00066 48 8b 45 08 mov rax, QWORD PTR BlockEnding$[rbp] - 0006a 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 0006e 74 4f je SHORT $LN3@NcDeleteBl +; 324 : else +; 325 : { +; 326 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); + + 000ae b9 10 01 00 00 mov ecx, 272 ; 00000110H + 000b3 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000b8 48 89 85 e8 01 + 00 00 mov QWORD PTR $T10[rbp], rax + 000bf 48 83 bd e8 01 + 00 00 00 cmp QWORD PTR $T10[rbp], 0 + 000c7 74 3d je SHORT $LN12@NcDeepCopy + 000c9 c7 44 24 20 00 + 00 00 00 mov DWORD PTR [rsp+32], 0 + 000d1 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000d8 44 8b 48 28 mov r9d, DWORD PTR [rax+40] + 000dc 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000e3 4c 8b 40 20 mov r8, QWORD PTR [rax+32] + 000e7 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000ee 8b 50 18 mov edx, DWORD PTR [rax+24] + 000f1 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 000f8 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000fd 48 89 85 18 02 + 00 00 mov QWORD PTR tv131[rbp], rax + 00104 eb 0b jmp SHORT $LN13@NcDeepCopy +$LN12@NcDeepCopy: + 00106 48 c7 85 18 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv131[rbp], 0 +$LN13@NcDeepCopy: + 00111 48 8b 85 18 02 + 00 00 mov rax, QWORD PTR tv131[rbp] + 00118 48 89 85 c8 01 + 00 00 mov QWORD PTR $T9[rbp], rax + 0011f 48 8b 85 c8 01 + 00 00 mov rax, QWORD PTR $T9[rbp] + 00126 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax -; 546 : { -; 547 : PNATIVE_CODE_LINK Next = T->Next; +; 327 : NewLink->Label = Link->Label; - 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00074 48 8b 00 mov rax, QWORD PTR [rax] - 00077 48 89 45 48 mov QWORD PTR Next$2[rbp], rax + 0012a 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 0012e 48 8b 8d 40 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00135 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00138 89 48 1c mov DWORD PTR [rax+28], ecx -; 548 : delete T; +; 328 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); - 0007b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0007f 48 89 85 28 01 - 00 00 mov QWORD PTR $T3[rbp], rax - 00086 48 83 bd 28 01 - 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 0008e 74 1a je SHORT $LN8@NcDeleteBl - 00090 ba 01 00 00 00 mov edx, 1 - 00095 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR $T3[rbp] - 0009c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 000a1 48 89 85 38 01 - 00 00 mov QWORD PTR tv78[rbp], rax - 000a8 eb 0b jmp SHORT $LN9@NcDeleteBl -$LN8@NcDeleteBl: - 000aa 48 c7 85 38 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv78[rbp], 0 -$LN9@NcDeleteBl: + 0013b 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 0013f 48 83 c0 30 add rax, 48 ; 00000030H + 00143 48 8b 8d 40 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0014a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0014e 48 8b 8d 40 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00155 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00159 48 8b c8 mov rcx, rax + 0015c e8 00 00 00 00 call xed_decode + 00161 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax -; 549 : T = Next; +; 329 : if (DecodeError != XED_ERROR_NONE) - 000b5 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] - 000b9 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00164 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 + 00168 74 7a je SHORT $LN7@NcDeepCopy -; 550 : } +; 330 : { +; 331 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); - 000bd eb a0 jmp SHORT $LN2@NcDeleteBl -$LN3@NcDeleteBl: -$LN1@NcDeleteBl: + 0016a 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00171 8b 40 28 mov eax, DWORD PTR [rax+40] + 00174 89 85 14 02 00 + 00 mov DWORD PTR tv151[rbp], eax + 0017a 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] + 0017d e8 00 00 00 00 call xed_error_enum_t2str + 00182 48 89 85 18 02 + 00 00 mov QWORD PTR tv149[rbp], rax + 00189 44 8b 85 14 02 + 00 00 mov r8d, DWORD PTR tv151[rbp] + 00190 48 8b 95 18 02 + 00 00 mov rdx, QWORD PTR tv149[rbp] + 00197 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ + 0019e e8 00 00 00 00 call printf -; 551 : } +; 332 : delete NewLink; - 000bf 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 000c6 5f pop rdi - 000c7 5d pop rbp - 000c8 c3 ret 0 -?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeleteBlock -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z -_TEXT SEGMENT -Buffer$ = 8 -BufferOffset$ = 40 -T$1 = 72 -Block$ = 320 -OutSize$ = 328 -?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z PROC ; NcAssemble, COMDAT + 001a3 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 001a7 48 89 85 08 02 + 00 00 mov QWORD PTR $T11[rbp], rax + 001ae 48 83 bd 08 02 + 00 00 00 cmp QWORD PTR $T11[rbp], 0 + 001b6 74 1a je SHORT $LN14@NcDeepCopy + 001b8 ba 01 00 00 00 mov edx, 1 + 001bd 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR $T11[rbp] + 001c4 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001c9 48 89 85 18 02 + 00 00 mov QWORD PTR tv155[rbp], rax + 001d0 eb 0b jmp SHORT $LN15@NcDeepCopy +$LN14@NcDeepCopy: + 001d2 48 c7 85 18 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv155[rbp], 0 +$LN15@NcDeepCopy: -; 514 : { +; 333 : return NULL; -$LN9: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 001dd 33 c0 xor eax, eax + 001df e9 a4 00 00 00 jmp $LN1@NcDeepCopy +$LN7@NcDeepCopy: -; 515 : if (!NcFixRelJmps(Block)) +; 334 : } +; 335 : if (Link->Flags & CODE_FLAG_HAS_ASM_OP) - 00024 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 0002b e8 00 00 00 00 call ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps - 00030 85 c0 test eax, eax - 00032 75 07 jne SHORT $LN5@NcAssemble + 001e4 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 001eb 8b 40 18 mov eax, DWORD PTR [rax+24] + 001ee 83 e0 40 and eax, 64 ; 00000040H + 001f1 85 c0 test eax, eax + 001f3 0f 84 8b 00 00 + 00 je $LN8@NcDeepCopy -; 516 : return NULL; +; 336 : { +; 337 : for (STDPAIR CONST& Op : Link->AsmOperations) - 00034 33 c0 xor eax, eax - 00036 e9 bc 00 00 00 jmp $LN1@NcAssemble -$LN5@NcAssemble: + 001f9 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00200 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 00206 48 89 45 48 mov QWORD PTR $L0$3[rbp], rax + 0020a 48 8b 4d 48 mov rcx, QWORD PTR $L0$3[rbp] + 0020e e8 00 00 00 00 call ?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_begin + 00213 48 89 45 68 mov QWORD PTR $L0$4[rbp], rax + 00217 48 8b 4d 48 mov rcx, QWORD PTR $L0$3[rbp] + 0021b e8 00 00 00 00 call ?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_end + 00220 48 89 85 88 00 + 00 00 mov QWORD PTR $L0$5[rbp], rax + 00227 eb 0c jmp SHORT $LN4@NcDeepCopy +$LN2@NcDeepCopy: + 00229 48 8b 45 68 mov rax, QWORD PTR $L0$4[rbp] + 0022d 48 83 c0 10 add rax, 16 + 00231 48 89 45 68 mov QWORD PTR $L0$4[rbp], rax +$LN4@NcDeepCopy: + 00235 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR $L0$5[rbp] + 0023c 48 39 45 68 cmp QWORD PTR $L0$4[rbp], rax + 00240 74 42 je SHORT $LN8@NcDeepCopy + 00242 48 8b 45 68 mov rax, QWORD PTR $L0$4[rbp] + 00246 48 89 85 a8 00 + 00 00 mov QWORD PTR Op$6[rbp], rax + +; 338 : { +; 339 : NewLink->AsmOperations.emplace_back(Op.first, Op.second); + + 0024d 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00251 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 00257 48 89 85 18 02 + 00 00 mov QWORD PTR tv174[rbp], rax + 0025e 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR Op$6[rbp] + 00265 48 83 c0 08 add rax, 8 + 00269 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR Op$6[rbp] + 00270 4c 8b c0 mov r8, rax + 00273 48 8b d1 mov rdx, rcx + 00276 48 8b 8d 18 02 + 00 00 mov rcx, QWORD PTR tv174[rbp] + 0027d e8 00 00 00 00 call ??$emplace_back@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@AEBQ6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEBQEAX@Z ; std::vector,std::allocator > >::emplace_back + +; 340 : } + + 00282 eb a5 jmp SHORT $LN2@NcDeepCopy +$LN8@NcDeepCopy: -; 517 : -; 518 : *OutSize = NcCalcBlockSizeInBytes(Block); +; 341 : } +; 342 : return NewLink; - 0003b 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00042 e8 00 00 00 00 call ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSizeInBytes - 00047 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR OutSize$[rbp] - 0004e 89 01 mov DWORD PTR [rcx], eax + 00284 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] +$LN1@NcDeepCopy: -; 519 : -; 520 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); +; 343 : } +; 344 : } - 00050 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR OutSize$[rbp] - 00057 8b 00 mov eax, DWORD PTR [rax] - 00059 8b c8 mov ecx, eax - 0005b ff 15 00 00 00 - 00 call QWORD PTR __imp_malloc - 00061 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax + 00288 48 8d a5 28 02 + 00 00 lea rsp, QWORD PTR [rbp+552] + 0028f 5f pop rdi + 00290 5d pop rbp + 00291 c3 ret 0 +?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ENDP ; NcDeepCopyLink +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +NewLink$1 = 8 +DecodeError$2 = 36 +$L0$3 = 72 +$L0$4 = 104 +$L0$5 = 136 +Op$6 = 168 +$T7 = 392 +$T8 = 424 +$T9 = 456 +$T10 = 488 +$T11 = 520 +tv151 = 532 +tv174 = 536 +tv155 = 536 +tv149 = 536 +tv131 = 536 +tv81 = 536 +Link$ = 576 +?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d a8 01 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +NewLink$1 = 8 +DecodeError$2 = 36 +$L0$3 = 72 +$L0$4 = 104 +$L0$5 = 136 +Op$6 = 168 +$T7 = 392 +$T8 = 424 +$T9 = 456 +$T10 = 488 +$T11 = 520 +tv151 = 532 +tv174 = 536 +tv155 = 536 +tv149 = 536 +tv131 = 536 +tv81 = 536 +Link$ = 576 +?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +NewLink$1 = 8 +DecodeError$2 = 36 +$L0$3 = 72 +$L0$4 = 104 +$L0$5 = 136 +Op$6 = 168 +$T7 = 392 +$T8 = 424 +$T9 = 456 +$T10 = 488 +$T11 = 520 +tv151 = 532 +tv174 = 536 +tv155 = 536 +tv149 = 536 +tv131 = 536 +tv81 = 536 +Link$ = 576 +?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d a8 01 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +NewLink$1 = 8 +DecodeError$2 = 36 +$L0$3 = 72 +$L0$4 = 104 +$L0$5 = 136 +Op$6 = 168 +$T7 = 392 +$T8 = 424 +$T9 = 456 +$T10 = 488 +$T11 = 520 +tv151 = 532 +tv174 = 536 +tv155 = 536 +tv149 = 536 +tv131 = 536 +tv81 = 536 +Link$ = 576 +?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z +_TEXT SEGMENT +T$ = 8 +Jmp$ = 256 +Delta$ = 264 +?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z PROC ; NcValidateJmp, COMDAT -; 521 : if (!Buffer) +; 279 : { - 00065 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 - 0006a 75 07 jne SHORT $LN6@NcAssemble +$LN23: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 522 : return NULL; +; 280 : PNATIVE_CODE_LINK T; +; 281 : if (Delta > 0) - 0006c 33 c0 xor eax, eax - 0006e e9 84 00 00 00 jmp $LN1@NcAssemble -$LN6@NcAssemble: + 0003a 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 00041 0f 8e a2 00 00 + 00 jle $LN10@NcValidate -; 523 : -; 524 : PUCHAR BufferOffset = Buffer; +; 282 : { +; 283 : T = Jmp->Next; - 00073 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] - 00077 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 00047 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Jmp$[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 89 45 08 mov QWORD PTR T$[rbp], rax +$LN21@NcValidate: +$LN2@NcValidate: -; 525 : -; 526 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 284 : while (Delta > 0 && T) - 0007b 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00082 48 8b 00 mov rax, QWORD PTR [rax] - 00085 48 89 45 48 mov QWORD PTR T$1[rbp], rax - 00089 eb 0b jmp SHORT $LN4@NcAssemble -$LN2@NcAssemble: - 0008b 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 0008f 48 8b 00 mov rax, QWORD PTR [rax] - 00092 48 89 45 48 mov QWORD PTR T$1[rbp], rax -$LN4@NcAssemble: - 00096 48 83 7d 48 00 cmp QWORD PTR T$1[rbp], 0 - 0009b 74 56 je SHORT $LN3@NcAssemble - 0009d 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000a4 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000a8 48 8b 00 mov rax, QWORD PTR [rax] - 000ab 48 39 45 48 cmp QWORD PTR T$1[rbp], rax - 000af 74 42 je SHORT $LN3@NcAssemble + 00055 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 0005c 7e 44 jle SHORT $LN3@NcValidate + 0005e 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00063 74 3d je SHORT $LN3@NcValidate -; 527 : { -; 528 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 285 : { +; 286 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000b1 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000b5 8b 40 18 mov eax, DWORD PTR [rax+24] - 000b8 83 e0 01 and eax, 1 - 000bb 85 c0 test eax, eax - 000bd 74 02 je SHORT $LN7@NcAssemble + 00065 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00069 8b 40 18 mov eax, DWORD PTR [rax+24] + 0006c 83 e0 01 and eax, 1 + 0006f 85 c0 test eax, eax + 00071 74 02 je SHORT $LN12@NcValidate -; 529 : continue; +; 287 : continue; - 000bf eb ca jmp SHORT $LN2@NcAssemble -$LN7@NcAssemble: + 00073 eb e0 jmp SHORT $LN2@NcValidate +$LN12@NcValidate: -; 530 : -; 531 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); +; 288 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); - 000c1 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000c5 8b 40 28 mov eax, DWORD PTR [rax+40] - 000c8 44 8b c0 mov r8d, eax - 000cb 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000cf 48 8b 50 20 mov rdx, QWORD PTR [rax+32] - 000d3 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] - 000d7 e8 00 00 00 00 call memcpy + 00075 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00079 48 83 c0 30 add rax, 48 ; 00000030H + 0007d 48 8b c8 mov rcx, rax + 00080 e8 00 00 00 00 call xed_decoded_inst_get_length + 00085 8b 8d 08 01 00 + 00 mov ecx, DWORD PTR Delta$[rbp] + 0008b 2b c8 sub ecx, eax + 0008d 8b c1 mov eax, ecx + 0008f 89 85 08 01 00 + 00 mov DWORD PTR Delta$[rbp], eax -; 532 : BufferOffset += T->RawDataSize; +; 289 : T = T->Next; - 000dc 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000e0 8b 40 28 mov eax, DWORD PTR [rax+40] - 000e3 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] - 000e7 48 03 c8 add rcx, rax - 000ea 48 8b c1 mov rax, rcx - 000ed 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 00095 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00099 48 8b 00 mov rax, QWORD PTR [rax] + 0009c 48 89 45 08 mov QWORD PTR T$[rbp], rax -; 533 : } +; 290 : } - 000f1 eb 98 jmp SHORT $LN2@NcAssemble -$LN3@NcAssemble: + 000a0 eb b3 jmp SHORT $LN21@NcValidate +$LN3@NcValidate: -; 534 : -; 535 : return Buffer; +; 291 : if (Delta != 0 || !T) - 000f3 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] -$LN1@NcAssemble: + 000a2 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 000a9 75 07 jne SHORT $LN14@NcValidate + 000ab 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000b0 75 07 jne SHORT $LN13@NcValidate +$LN14@NcValidate: -; 536 : } +; 292 : return NULL; - 000f7 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000fe 5f pop rdi - 000ff 5d pop rbp - 00100 c3 ret 0 -?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ENDP ; NcAssemble -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z -_TEXT SEGMENT -Buf$ = 8 -Offset$ = 36 -Link$1 = 72 -PossibleSize$2 = 100 -DecodeError$3 = 132 -$T4 = 360 -$T5 = 392 -$T6 = 424 -$T7 = 456 -tv80 = 468 -tv130 = 472 -tv76 = 472 -Block$ = 512 -Buffer$ = 520 -BufferSize$ = 528 -?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z PROC ; NcDisassemble, COMDAT + 000b2 33 c0 xor eax, eax + 000b4 e9 db 00 00 00 jmp $LN1@NcValidate +$LN13@NcValidate: +$LN4@NcValidate: -; 482 : { +; 293 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) -$LN13: - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 02 - 00 00 sub rsp, 520 ; 00000208H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000b9 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000be 74 1b je SHORT $LN5@NcValidate + 000c0 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c7 83 e0 01 and eax, 1 + 000ca 85 c0 test eax, eax + 000cc 74 0d je SHORT $LN5@NcValidate -; 483 : PUCHAR Buf = (PUCHAR)Buffer; +; 294 : T = T->Next; - 00029 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR Buffer$[rbp] - 00030 48 89 45 08 mov QWORD PTR Buf$[rbp], rax + 000ce 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000d2 48 8b 00 mov rax, QWORD PTR [rax] + 000d5 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000d9 eb de jmp SHORT $LN4@NcValidate +$LN5@NcValidate: -; 484 : ULONG Offset = 0; +; 295 : return T; - 00034 c7 45 24 00 00 - 00 00 mov DWORD PTR Offset$[rbp], 0 -$LN2@NcDisassem: + 000db 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000df e9 b0 00 00 00 jmp $LN1@NcValidate -; 485 : -; 486 : while (Offset < BufferSize) +; 296 : } - 0003b 8b 85 10 02 00 - 00 mov eax, DWORD PTR BufferSize$[rbp] - 00041 39 45 24 cmp DWORD PTR Offset$[rbp], eax - 00044 0f 83 b8 01 00 - 00 jae $LN3@NcDisassem + 000e4 e9 a4 00 00 00 jmp $LN11@NcValidate +$LN10@NcValidate: -; 487 : { -; 488 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; +; 297 : else if (Delta < 0) - 0004a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0004f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00054 48 89 85 88 01 - 00 00 mov QWORD PTR $T5[rbp], rax - 0005b 48 83 bd 88 01 - 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00063 74 15 je SHORT $LN6@NcDisassem - 00065 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR $T5[rbp] - 0006c e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00071 48 89 85 d8 01 - 00 00 mov QWORD PTR tv76[rbp], rax - 00078 eb 0b jmp SHORT $LN7@NcDisassem -$LN6@NcDisassem: - 0007a 48 c7 85 d8 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv76[rbp], 0 -$LN7@NcDisassem: - 00085 48 8b 85 d8 01 - 00 00 mov rax, QWORD PTR tv76[rbp] - 0008c 48 89 85 68 01 - 00 00 mov QWORD PTR $T4[rbp], rax - 00093 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR $T4[rbp] - 0009a 48 89 45 48 mov QWORD PTR Link$1[rbp], rax + 000e9 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 000f0 0f 8d 97 00 00 + 00 jge $LN15@NcValidate -; 489 : Link->Flags = CODE_FLAG_IS_INST; +; 298 : { +; 299 : T = Jmp; - 0009e 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 000a2 c7 40 18 04 00 - 00 00 mov DWORD PTR [rax+24], 4 + 000f6 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Jmp$[rbp] + 000fd 48 89 45 08 mov QWORD PTR T$[rbp], rax +$LN22@NcValidate: +$LN6@NcValidate: -; 490 : ULONG PossibleSize = min(15, BufferSize - Offset); +; 300 : while (T) - 000a9 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000ac 8b 8d 10 02 00 - 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000b2 2b c8 sub ecx, eax - 000b4 8b c1 mov eax, ecx - 000b6 83 f8 0f cmp eax, 15 - 000b9 76 0c jbe SHORT $LN8@NcDisassem - 000bb c7 85 d4 01 00 - 00 0f 00 00 00 mov DWORD PTR tv80[rbp], 15 - 000c5 eb 13 jmp SHORT $LN9@NcDisassem -$LN8@NcDisassem: - 000c7 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000ca 8b 8d 10 02 00 - 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000d0 2b c8 sub ecx, eax - 000d2 8b c1 mov eax, ecx - 000d4 89 85 d4 01 00 - 00 mov DWORD PTR tv80[rbp], eax -$LN9@NcDisassem: - 000da 8b 85 d4 01 00 - 00 mov eax, DWORD PTR tv80[rbp] - 000e0 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax - -; 491 : XED_ERROR_ENUM DecodeError = XedDecode(&Link->XedInstruction, (Buf + Offset), PossibleSize); - - 000e3 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000e6 48 8b 4d 08 mov rcx, QWORD PTR Buf$[rbp] - 000ea 48 03 c8 add rcx, rax - 000ed 48 8b c1 mov rax, rcx - 000f0 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] - 000f4 48 83 c1 30 add rcx, 48 ; 00000030H - 000f8 44 8b 45 64 mov r8d, DWORD PTR PossibleSize$2[rbp] - 000fc 48 8b d0 mov rdx, rax - 000ff e8 00 00 00 00 call xed_decode - 00104 89 85 84 00 00 - 00 mov DWORD PTR DecodeError$3[rbp], eax + 00101 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00106 74 49 je SHORT $LN7@NcValidate -; 492 : if (DecodeError != XED_ERROR_NONE) +; 301 : { +; 302 : if (T->Flags & CODE_FLAG_IS_LABEL) - 0010a 83 bd 84 00 00 - 00 00 cmp DWORD PTR DecodeError$3[rbp], 0 - 00111 74 67 je SHORT $LN4@NcDisassem + 00108 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0010c 8b 40 18 mov eax, DWORD PTR [rax+24] + 0010f 83 e0 01 and eax, 1 + 00112 85 c0 test eax, eax + 00114 74 02 je SHORT $LN16@NcValidate -; 493 : { -; 494 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); +; 303 : continue; - 00113 8b 8d 84 00 00 - 00 mov ecx, DWORD PTR DecodeError$3[rbp] - 00119 e8 00 00 00 00 call xed_error_enum_t2str - 0011e 48 8b d0 mov rdx, rax - 00121 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ - 00128 e8 00 00 00 00 call printf + 00116 eb e9 jmp SHORT $LN6@NcValidate +$LN16@NcValidate: -; 495 : NcDeleteBlock(Block); +; 304 : Delta += XedDecodedInstGetLength(&T->XedInstruction); - 0012d 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00134 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00118 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0011c 48 83 c0 30 add rax, 48 ; 00000030H + 00120 48 8b c8 mov rcx, rax + 00123 e8 00 00 00 00 call xed_decoded_inst_get_length + 00128 8b 8d 08 01 00 + 00 mov ecx, DWORD PTR Delta$[rbp] + 0012e 03 c8 add ecx, eax + 00130 8b c1 mov eax, ecx + 00132 89 85 08 01 00 + 00 mov DWORD PTR Delta$[rbp], eax -; 496 : delete Link; +; 305 : if (Delta >= 0) - 00139 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 0013d 48 89 85 a8 01 - 00 00 mov QWORD PTR $T6[rbp], rax - 00144 48 83 bd a8 01 - 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 0014c 74 1a je SHORT $LN10@NcDisassem - 0014e ba 01 00 00 00 mov edx, 1 - 00153 48 8b 8d a8 01 - 00 00 mov rcx, QWORD PTR $T6[rbp] - 0015a e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 0015f 48 89 85 d8 01 - 00 00 mov QWORD PTR tv130[rbp], rax - 00166 eb 0b jmp SHORT $LN11@NcDisassem -$LN10@NcDisassem: - 00168 48 c7 85 d8 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv130[rbp], 0 -$LN11@NcDisassem: + 00138 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 0013f 7c 02 jl SHORT $LN17@NcValidate -; 497 : return FALSE; +; 306 : break; - 00173 33 c0 xor eax, eax - 00175 e9 99 00 00 00 jmp $LN1@NcDisassem -$LN4@NcDisassem: + 00141 eb 0e jmp SHORT $LN7@NcValidate +$LN17@NcValidate: -; 498 : } -; 499 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); +; 307 : T = T->Prev; - 0017a 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 0017e 48 83 c0 30 add rax, 48 ; 00000030H - 00182 48 8b c8 mov rcx, rax - 00185 e8 00 00 00 00 call xed_decoded_inst_get_length - 0018a 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] - 0018e 89 41 28 mov DWORD PTR [rcx+40], eax + 00143 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00147 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0014b 48 89 45 08 mov QWORD PTR T$[rbp], rax -; 500 : Link->RawData = new UCHAR[Link->RawDataSize]; +; 308 : } - 00191 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 00195 8b 40 28 mov eax, DWORD PTR [rax+40] - 00198 8b c8 mov ecx, eax - 0019a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 0019f 48 89 85 c8 01 - 00 00 mov QWORD PTR $T7[rbp], rax - 001a6 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001aa 48 8b 8d c8 01 - 00 00 mov rcx, QWORD PTR $T7[rbp] - 001b1 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 501 : RtlCopyMemory(Link->RawData, (Buf + Offset), Link->RawDataSize); - - 001b5 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001b9 8b 40 28 mov eax, DWORD PTR [rax+40] - 001bc 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] - 001bf 48 8b 55 08 mov rdx, QWORD PTR Buf$[rbp] - 001c3 48 03 d1 add rdx, rcx - 001c6 48 8b ca mov rcx, rdx - 001c9 44 8b c0 mov r8d, eax - 001cc 48 8b d1 mov rdx, rcx - 001cf 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001d3 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 001d7 e8 00 00 00 00 call memcpy - -; 502 : -; 503 : NcAppendToBlock(Block, Link); - - 001dc 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] - 001e0 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 001e7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014f eb b0 jmp SHORT $LN22@NcValidate +$LN7@NcValidate: -; 504 : -; 505 : Offset += Link->RawDataSize; +; 309 : if (Delta != 0 || !T) - 001ec 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001f0 8b 40 28 mov eax, DWORD PTR [rax+40] - 001f3 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] - 001f6 03 c8 add ecx, eax - 001f8 8b c1 mov eax, ecx - 001fa 89 45 24 mov DWORD PTR Offset$[rbp], eax + 00151 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 00158 75 07 jne SHORT $LN19@NcValidate + 0015a 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 0015f 75 04 jne SHORT $LN18@NcValidate +$LN19@NcValidate: -; 506 : } +; 310 : return NULL; - 001fd e9 39 fe ff ff jmp $LN2@NcDisassem -$LN3@NcDisassem: + 00161 33 c0 xor eax, eax + 00163 eb 2f jmp SHORT $LN1@NcValidate +$LN18@NcValidate: +$LN8@NcValidate: -; 507 : -; 508 : NcCreateLabels(Block); +; 311 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 00202 48 8b 8d 00 02 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00209 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels + 00165 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 0016a 74 1b je SHORT $LN9@NcValidate + 0016c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00170 8b 40 18 mov eax, DWORD PTR [rax+24] + 00173 83 e0 01 and eax, 1 + 00176 85 c0 test eax, eax + 00178 74 0d je SHORT $LN9@NcValidate -; 509 : -; 510 : return TRUE; +; 312 : T = T->Next; - 0020e b8 01 00 00 00 mov eax, 1 -$LN1@NcDisassem: + 0017a 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0017e 48 8b 00 mov rax, QWORD PTR [rax] + 00181 48 89 45 08 mov QWORD PTR T$[rbp], rax + 00185 eb de jmp SHORT $LN8@NcValidate +$LN9@NcValidate: -; 511 : } +; 313 : return T; - 00213 48 8d a5 e8 01 - 00 00 lea rsp, QWORD PTR [rbp+488] - 0021a 5f pop rdi - 0021b 5d pop rbp - 0021c c3 ret 0 -?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ENDP ; NcDisassemble + 00187 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0018b eb 07 jmp SHORT $LN1@NcValidate +$LN15@NcValidate: +$LN11@NcValidate: + +; 314 : } +; 315 : return Jmp; + + 0018d 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Jmp$[rbp] +$LN1@NcValidate: + +; 316 : } + + 00194 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0019b 5f pop rdi + 0019c 5d pop rbp + 0019d c3 ret 0 +?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ENDP ; NcValidateJmp _TEXT ENDS -; COMDAT text$x -text$x SEGMENT -Buf$ = 8 -Offset$ = 36 -Link$1 = 72 -PossibleSize$2 = 100 -DecodeError$3 = 132 -$T4 = 360 -$T5 = 392 -$T6 = 424 -$T7 = 456 -tv80 = 468 -tv130 = 472 -tv76 = 472 -Block$ = 512 -Buffer$ = 520 -BufferSize$ = 528 -?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA PROC ; `NcDisassemble'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR $T5[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA ENDP ; `NcDisassemble'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -Buf$ = 8 -Offset$ = 36 -Link$1 = 72 -PossibleSize$2 = 100 -DecodeError$3 = 132 -$T4 = 360 -$T5 = 392 -$T6 = 424 -$T7 = 456 -tv80 = 468 -tv130 = 472 -tv76 = 472 -Block$ = 512 -Buffer$ = 520 -BufferSize$ = 528 -?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA PROC ; `NcDisassemble'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR $T5[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA ENDP ; `NcDisassemble'::`1'::dtor$0 -text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT -T$9 = 8 -BranchDisp$10 = 36 -DispWidth$11 = 68 -MachineState$12 = 104 -EncoderInstruction$13 = 144 -EncoderRequest$14 = 592 -EncodeBuffer$15 = 808 -ReturnedSize$16 = 852 -IClass$17 = 884 -Err$18 = 916 -$T19 = 1528 -$T20 = 1608 -$T21 = 1688 -$T22 = 1720 -$T23 = 1760 -tv174 = 1812 -__$ArrayPad$ = 1816 -Block$ = 1856 -?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcFixRelJmps, COMDAT +CurrentLabelId$ = 4 +T$4 = 40 +Category$5 = 68 +OperandCount$6 = 100 +Inst$7 = 136 +Operand$8 = 168 +OperandType$9 = 196 +BranchDisplacement$10 = 228 +JmpPos$11 = 264 +$T12 = 488 +$T13 = 520 +tv163 = 536 +tv157 = 536 +__$ArrayPad$ = 544 +Block$ = 592 +?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCreateLabels, COMDAT -; 399 : { +; 227 : { -$LN19: +$LN18: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp - 00006 56 push rsi - 00007 57 push rdi - 00008 48 81 ec 50 07 - 00 00 sub rsp, 1872 ; 00000750H - 0000f 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00014 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00019 b9 38 01 00 00 mov ecx, 312 ; 00000138H - 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00023 f3 ab rep stosd - 00025 48 8b 8c 24 78 - 07 00 00 mov rcx, QWORD PTR [rsp+1912] - 0002d 48 8b 05 00 00 + 00006 57 push rdi + 00007 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00034 48 33 c5 xor rax, rbp - 00037 48 89 85 18 07 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 400 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 228 : ULONG CurrentLabelId = 0; - 0004a 48 8b 85 40 07 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00051 48 8b 00 mov rax, QWORD PTR [rax] - 00054 48 89 45 08 mov QWORD PTR T$9[rbp], rax -$LN2@NcFixRelJm: - 00058 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 - 0005d 0f 84 ec 02 00 - 00 je $LN3@NcFixRelJm - 00063 48 8b 85 40 07 + 00047 c7 45 04 00 00 + 00 00 mov DWORD PTR CurrentLabelId$[rbp], 0 + +; 229 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 0004e 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 0006a 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006e 48 8b 00 mov rax, QWORD PTR [rax] - 00071 48 39 45 08 cmp QWORD PTR T$9[rbp], rax - 00075 0f 84 d4 02 00 - 00 je $LN3@NcFixRelJm + 00055 48 8b 00 mov rax, QWORD PTR [rax] + 00058 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0005c eb 0b jmp SHORT $LN4@NcCreateLa +$LN2@NcCreateLa: + 0005e 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00062 48 8b 00 mov rax, QWORD PTR [rax] + 00065 48 89 45 28 mov QWORD PTR T$4[rbp], rax +$LN4@NcCreateLa: + 00069 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 0006e 0f 84 07 02 00 + 00 je $LN3@NcCreateLa -; 401 : { -; 402 : if (T->Flags & CODE_FLAG_IS_REL_JMP) +; 230 : { +; 231 : if (!(T->Flags & CODE_FLAG_IS_INST)) - 0007b 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0007f 8b 40 18 mov eax, DWORD PTR [rax+24] - 00082 83 e0 02 and eax, 2 - 00085 85 c0 test eax, eax - 00087 0f 84 b2 02 00 - 00 je $LN7@NcFixRelJm + 00074 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00078 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007b 83 e0 04 and eax, 4 + 0007e 85 c0 test eax, eax + 00080 75 02 jne SHORT $LN5@NcCreateLa -; 403 : { -; 404 : INT32 BranchDisp = 0; +; 232 : continue; - 0008d c7 45 24 00 00 - 00 00 mov DWORD PTR BranchDisp$10[rbp], 0 + 00082 eb da jmp SHORT $LN2@NcCreateLa +$LN5@NcCreateLa: -; 405 : if (!NcGetDeltaToLabel(T, &BranchDisp)) +; 233 : +; 234 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); - 00094 48 8d 55 24 lea rdx, QWORD PTR BranchDisp$10[rbp] - 00098 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 0009c e8 00 00 00 00 call ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel - 000a1 85 c0 test eax, eax - 000a3 75 07 jne SHORT $LN8@NcFixRelJm + 00084 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00088 48 83 c0 30 add rax, 48 ; 00000030H + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call xed_decoded_inst_get_category + 00094 89 45 44 mov DWORD PTR Category$5[rbp], eax -; 406 : return FALSE; +; 235 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) - 000a5 33 c0 xor eax, eax - 000a7 e9 a8 02 00 00 jmp $LN1@NcFixRelJm -$LN8@NcFixRelJm: + 00097 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 + 0009b 74 08 je SHORT $LN6@NcCreateLa + 0009d 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH + 000a1 74 02 je SHORT $LN6@NcCreateLa -; 407 : -; 408 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); +; 236 : continue; - 000ac 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 000b0 48 83 c0 30 add rax, 48 ; 00000030H - 000b4 48 8b c8 mov rcx, rax - 000b7 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width_bits - 000bc 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 000a3 eb b9 jmp SHORT $LN2@NcCreateLa +$LN6@NcCreateLa: -; 409 : if (log2(abs(BranchDisp)) + 1 > DispWidth) +; 237 : +; 238 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); - 000bf 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] - 000c2 e8 00 00 00 00 call abs - 000c7 8b c8 mov ecx, eax - 000c9 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 - 000ce f2 0f 58 05 00 - 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 - 000d6 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 000d9 f2 48 0f 2a c8 cvtsi2sd xmm1, rax - 000de 66 0f 2f c1 comisd xmm0, xmm1 - 000e2 0f 86 c3 01 00 - 00 jbe $LN9@NcFixRelJm + 000a5 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000a9 48 83 c0 30 add rax, 48 ; 00000030H + 000ad 48 8b c8 mov rcx, rax + 000b0 e8 00 00 00 00 call xed_decoded_inst_noperands + 000b5 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax -; 410 : { -; 411 : //duh oh -; 412 : if (DispWidth == 32) +; 239 : if (OperandCount < 1) - 000e8 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H - 000ec 75 07 jne SHORT $LN11@NcFixRelJm + 000b8 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 + 000bc 73 02 jae SHORT $LN7@NcCreateLa -; 413 : return FALSE; +; 240 : continue; - 000ee 33 c0 xor eax, eax - 000f0 e9 5f 02 00 00 jmp $LN1@NcFixRelJm -$LN11@NcFixRelJm: + 000be eb 9e jmp SHORT $LN2@NcCreateLa +$LN7@NcCreateLa: -; 414 : -; 415 : ////Grow displacement width to required size -; 416 : //DispWidth *= 2; -; 417 : -; 418 : ////Check again -; 419 : //if (log2(abs(BranchDisp)) + 1 > DispWidth) -; 420 : //{ -; 421 : // if (DispWidth == 32) -; 422 : // return FALSE; -; 423 : -; 424 : // //Grow once more if not already at 32 -; 425 : // DispWidth *= 2; -; 426 : //} -; 427 : -; 428 : DispWidth = 32; - - 000f5 c7 45 44 20 00 - 00 00 mov DWORD PTR DispWidth$11[rbp], 32 ; 00000020H +; 241 : +; 242 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); -; 429 : -; 430 : //Encode new instruction -; 431 : XED_STATE MachineState; -; 432 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; + 000c0 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000c4 48 83 c0 30 add rax, 48 ; 00000030H + 000c8 48 8b c8 mov rcx, rax + 000cb e8 00 00 00 00 call xed_decoded_inst_inst + 000d0 48 89 85 88 00 + 00 00 mov QWORD PTR Inst$7[rbp], rax - 000fc c7 45 68 01 00 - 00 00 mov DWORD PTR MachineState$12[rbp], 1 +; 243 : if (!Inst) -; 433 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; + 000d7 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR Inst$7[rbp], 0 + 000df 75 05 jne SHORT $LN8@NcCreateLa - 00103 c7 45 6c 08 00 - 00 00 mov DWORD PTR MachineState$12[rbp+4], 8 +; 244 : continue; -; 434 : XED_ENCODER_INSTRUCTION EncoderInstruction; -; 435 : XED_ENCODER_REQUEST EncoderRequest; -; 436 : UCHAR EncodeBuffer[15]; -; 437 : UINT ReturnedSize; -; 438 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - - 0010a 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0010e 48 83 c0 30 add rax, 48 ; 00000030H - 00112 48 8b c8 mov rcx, rax - 00115 e8 00 00 00 00 call xed_decoded_inst_get_iclass - 0011a 89 85 74 03 00 - 00 mov DWORD PTR IClass$17[rbp], eax + 000e1 e9 78 ff ff ff jmp $LN2@NcCreateLa +$LN8@NcCreateLa: -; 439 : -; 440 : //Do the encoding -; 441 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); +; 245 : +; 246 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); - 00120 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] - 00124 33 d2 xor edx, edx - 00126 48 8d 8d 48 06 - 00 00 lea rcx, QWORD PTR $T20[rbp] - 0012d e8 00 00 00 00 call xed_relbr - 00132 48 8d 8d f8 05 - 00 00 lea rcx, QWORD PTR $T19[rbp] - 00139 48 8b f9 mov rdi, rcx - 0013c 48 8b f0 mov rsi, rax - 0013f b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00144 f3 a4 rep movsb - 00146 48 8d 85 e0 06 - 00 00 lea rax, QWORD PTR $T23[rbp] - 0014d 48 8d 8d f8 05 - 00 00 lea rcx, QWORD PTR $T19[rbp] - 00154 48 8b f8 mov rdi, rax - 00157 48 8b f1 mov rsi, rcx - 0015a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0015f f3 a4 rep movsb - 00161 48 8d 85 e0 06 - 00 00 lea rax, QWORD PTR $T23[rbp] - 00168 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0016d 44 8b 4d 44 mov r9d, DWORD PTR DispWidth$11[rbp] - 00171 44 8b 85 74 03 - 00 00 mov r8d, DWORD PTR IClass$17[rbp] - 00178 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] - 0017c 48 8d 8d 90 00 - 00 00 lea rcx, QWORD PTR EncoderInstruction$13[rbp] - 00183 e8 00 00 00 00 call xed_inst1 + 000e6 33 d2 xor edx, edx + 000e8 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR Inst$7[rbp] + 000ef e8 00 00 00 00 call xed_inst_operand + 000f4 48 89 85 a8 00 + 00 00 mov QWORD PTR Operand$8[rbp], rax -; 442 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); +; 247 : if (!Operand) - 00188 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 0018c 48 8d 8d 50 02 - 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 00193 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000fb 48 83 bd a8 00 + 00 00 00 cmp QWORD PTR Operand$8[rbp], 0 + 00103 75 05 jne SHORT $LN9@NcCreateLa -; 443 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) +; 248 : continue; - 00198 48 8d 95 90 00 - 00 00 lea rdx, QWORD PTR EncoderInstruction$13[rbp] - 0019f 48 8d 8d 50 02 - 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001a6 e8 00 00 00 00 call xed_convert_to_encoder_request - 001ab 85 c0 test eax, eax - 001ad 75 07 jne SHORT $LN12@NcFixRelJm + 00105 e9 54 ff ff ff jmp $LN2@NcCreateLa +$LN9@NcCreateLa: -; 444 : return FALSE; +; 249 : +; 250 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); - 001af 33 c0 xor eax, eax - 001b1 e9 9e 01 00 00 jmp $LN1@NcFixRelJm -$LN12@NcFixRelJm: + 0010a 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR Operand$8[rbp] + 00111 e8 00 00 00 00 call xed_operand_type + 00116 89 85 c4 00 00 + 00 mov DWORD PTR OperandType$9[rbp], eax -; 445 : XED_ERROR_ENUM Err = XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize); +; 251 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) - 001b6 4c 8d 8d 54 03 - 00 00 lea r9, QWORD PTR ReturnedSize$16[rbp] - 001bd 41 b8 0f 00 00 - 00 mov r8d, 15 - 001c3 48 8d 95 28 03 - 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 001ca 48 8d 8d 50 02 - 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001d1 e8 00 00 00 00 call xed_encode - 001d6 89 85 94 03 00 - 00 mov DWORD PTR Err$18[rbp], eax + 0011c 83 bd c4 00 00 + 00 02 cmp DWORD PTR OperandType$9[rbp], 2 + 00123 74 0e je SHORT $LN10@NcCreateLa + 00125 83 bd c4 00 00 + 00 03 cmp DWORD PTR OperandType$9[rbp], 3 + 0012c 74 05 je SHORT $LN10@NcCreateLa -; 446 : if (XED_ERROR_NONE != Err) +; 252 : continue; - 001dc 83 bd 94 03 00 - 00 00 cmp DWORD PTR Err$18[rbp], 0 - 001e3 74 07 je SHORT $LN13@NcFixRelJm + 0012e e9 2b ff ff ff jmp $LN2@NcCreateLa +$LN10@NcCreateLa: + +; 253 : +; 254 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); + + 00133 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00137 48 83 c0 30 add rax, 48 ; 00000030H + 0013b 48 8b c8 mov rcx, rax + 0013e e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement + 00143 89 85 e4 00 00 + 00 mov DWORD PTR BranchDisplacement$10[rbp], eax + +; 255 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); + + 00149 8b 95 e4 00 00 + 00 mov edx, DWORD PTR BranchDisplacement$10[rbp] + 0014f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00153 e8 00 00 00 00 call ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp + 00158 48 89 85 08 01 + 00 00 mov QWORD PTR JmpPos$11[rbp], rax -; 447 : return FALSE; +; 256 : if (!JmpPos) + + 0015f 48 83 bd 08 01 + 00 00 00 cmp QWORD PTR JmpPos$11[rbp], 0 + 00167 75 25 jne SHORT $LN11@NcCreateLa + +; 257 : { +; 258 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); + + 00169 8b 4d 44 mov ecx, DWORD PTR Category$5[rbp] + 0016c e8 00 00 00 00 call xed_category_enum_t2str + 00171 44 8b 85 e4 00 + 00 00 mov r8d, DWORD PTR BranchDisplacement$10[rbp] + 00178 48 8b d0 mov rdx, rax + 0017b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ + 00182 e8 00 00 00 00 call printf + +; 259 : return FALSE; + + 00187 33 c0 xor eax, eax + 00189 e9 f2 00 00 00 jmp $LN1@NcCreateLa +$LN11@NcCreateLa: + +; 260 : } +; 261 : +; 262 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) + + 0018e 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR JmpPos$11[rbp] + 00195 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0019a 74 2f je SHORT $LN12@NcCreateLa + 0019c 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR JmpPos$11[rbp] + 001a3 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001a7 8b 40 18 mov eax, DWORD PTR [rax+24] + 001aa 83 e0 01 and eax, 1 + 001ad 85 c0 test eax, eax + 001af 74 1a je SHORT $LN12@NcCreateLa + +; 263 : { +; 264 : T->Label = JmpPos->Prev->Label; + + 001b1 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR JmpPos$11[rbp] + 001b8 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001bc 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 001c0 8b 40 1c mov eax, DWORD PTR [rax+28] + 001c3 89 41 1c mov DWORD PTR [rcx+28], eax - 001e5 33 c0 xor eax, eax - 001e7 e9 68 01 00 00 jmp $LN1@NcFixRelJm -$LN13@NcFixRelJm: +; 265 : } -; 448 : -; 449 : //fixup T->RawData -; 450 : delete[] T->RawData; + 001c6 e9 9a 00 00 00 jmp $LN13@NcCreateLa +$LN12@NcCreateLa: - 001ec 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 001f0 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 001f4 48 89 85 98 06 - 00 00 mov QWORD PTR $T21[rbp], rax - 001fb 48 8b 8d 98 06 - 00 00 mov rcx, QWORD PTR $T21[rbp] - 00202 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] +; 266 : else +; 267 : { +; 268 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); -; 451 : T->RawDataSize = ReturnedSize; + 001cb b9 10 01 00 00 mov ecx, 272 ; 00000110H + 001d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 001d5 48 89 85 08 02 + 00 00 mov QWORD PTR $T13[rbp], rax + 001dc 48 83 bd 08 02 + 00 00 00 cmp QWORD PTR $T13[rbp], 0 + 001e4 74 1f je SHORT $LN15@NcCreateLa + 001e6 4c 8b 85 50 02 + 00 00 mov r8, QWORD PTR Block$[rbp] + 001ed 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] + 001f0 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR $T13[rbp] + 001f7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 001fc 48 89 85 18 02 + 00 00 mov QWORD PTR tv157[rbp], rax + 00203 eb 0b jmp SHORT $LN16@NcCreateLa +$LN15@NcCreateLa: + 00205 48 c7 85 18 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv157[rbp], 0 +$LN16@NcCreateLa: + 00210 48 8b 85 18 02 + 00 00 mov rax, QWORD PTR tv157[rbp] + 00217 48 89 85 e8 01 + 00 00 mov QWORD PTR $T12[rbp], rax + 0021e 48 8b 95 e8 01 + 00 00 mov rdx, QWORD PTR $T12[rbp] + 00225 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR JmpPos$11[rbp] + 0022c e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore - 00207 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0020b 8b 8d 54 03 00 - 00 mov ecx, DWORD PTR ReturnedSize$16[rbp] - 00211 89 48 28 mov DWORD PTR [rax+40], ecx +; 269 : Block->LabelIds.push_back(CurrentLabelId); -; 452 : T->RawData = new UCHAR[ReturnedSize]; + 00231 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00238 48 83 c0 10 add rax, 16 + 0023c 48 89 85 18 02 + 00 00 mov QWORD PTR tv163[rbp], rax + 00243 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] + 00247 48 8b 8d 18 02 + 00 00 mov rcx, QWORD PTR tv163[rbp] + 0024e e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back - 00214 8b 85 54 03 00 - 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 0021a 8b c8 mov ecx, eax - 0021c e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 00221 48 89 85 b8 06 - 00 00 mov QWORD PTR $T22[rbp], rax - 00228 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0022c 48 8b 8d b8 06 - 00 00 mov rcx, QWORD PTR $T22[rbp] - 00233 48 89 48 20 mov QWORD PTR [rax+32], rcx +; 270 : T->Label = CurrentLabelId; -; 453 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); + 00253 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00257 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] + 0025a 89 48 1c mov DWORD PTR [rax+28], ecx - 00237 8b 85 54 03 00 - 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 0023d 44 8b c0 mov r8d, eax - 00240 48 8d 95 28 03 - 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 00247 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0024b 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 0024f e8 00 00 00 00 call memcpy - -; 454 : -; 455 : //Decode instruction so its proper and all that -; 456 : XedDecodedInstZeroSetMode(&T->XedInstruction, &MachineState); - - 00254 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00258 48 83 c0 30 add rax, 48 ; 00000030H - 0025c 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 00260 48 8b c8 mov rcx, rax - 00263 e8 00 00 00 00 call xed_decoded_inst_zero_set_mode - -; 457 : if (XED_ERROR_NONE != XedDecode(&T->XedInstruction, T->RawData, T->RawDataSize)) - - 00268 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0026c 48 83 c0 30 add rax, 48 ; 00000030H - 00270 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00274 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00278 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 0027c 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00280 48 8b c8 mov rcx, rax - 00283 e8 00 00 00 00 call xed_decode - 00288 85 c0 test eax, eax - 0028a 74 07 je SHORT $LN14@NcFixRelJm +; 271 : ++CurrentLabelId; -; 458 : return FALSE; + 0025d 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] + 00260 ff c0 inc eax + 00262 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax +$LN13@NcCreateLa: - 0028c 33 c0 xor eax, eax - 0028e e9 c1 00 00 00 jmp $LN1@NcFixRelJm -$LN14@NcFixRelJm: +; 272 : } +; 273 : T->Flags |= CODE_FLAG_IS_REL_JMP; -; 459 : -; 460 : //Go back to the start and loop through all labels again because now this instruction is larger :)))) -; 461 : T = Block->Start; + 00265 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00269 8b 40 18 mov eax, DWORD PTR [rax+24] + 0026c 83 c8 02 or eax, 2 + 0026f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00273 89 41 18 mov DWORD PTR [rcx+24], eax - 00293 48 8b 85 40 07 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0029a 48 8b 00 mov rax, QWORD PTR [rax] - 0029d 48 89 45 08 mov QWORD PTR T$9[rbp], rax +; 274 : } -; 462 : continue; + 00276 e9 e3 fd ff ff jmp $LN2@NcCreateLa +$LN3@NcCreateLa: - 002a1 e9 b2 fd ff ff jmp $LN2@NcFixRelJm +; 275 : return TRUE; -; 463 : } + 0027b b8 01 00 00 00 mov eax, 1 +$LN1@NcCreateLa: - 002a6 e9 94 00 00 00 jmp $LN10@NcFixRelJm -$LN9@NcFixRelJm: +; 276 : } -; 464 : else -; 465 : { -; 466 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); + 00280 48 8b f8 mov rdi, rax + 00283 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00287 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 0028e e8 00 00 00 00 call _RTC_CheckStackVars + 00293 48 8b c7 mov rax, rdi + 00296 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0029d 48 33 cd xor rcx, rbp + 002a0 e8 00 00 00 00 call __security_check_cookie + 002a5 48 8d a5 38 02 + 00 00 lea rsp, QWORD PTR [rbp+568] + 002ac 5f pop rdi + 002ad 5d pop rbp + 002ae c3 ret 0 +?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCreateLabels +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +CurrentLabelId$ = 4 +T$4 = 40 +Category$5 = 68 +OperandCount$6 = 100 +Inst$7 = 136 +Operand$8 = 168 +OperandType$9 = 196 +BranchDisplacement$10 = 228 +JmpPos$11 = 264 +$T12 = 488 +$T13 = 520 +tv163 = 536 +tv157 = 536 +__$ArrayPad$ = 544 +Block$ = 592 +?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcCreateLabels'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR $T13[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcCreateLabels'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +CurrentLabelId$ = 4 +T$4 = 40 +Category$5 = 68 +OperandCount$6 = 100 +Inst$7 = 136 +Operand$8 = 168 +OperandType$9 = 196 +BranchDisplacement$10 = 228 +JmpPos$11 = 264 +$T12 = 488 +$T13 = 520 +tv163 = 536 +tv157 = 536 +__$ArrayPad$ = 544 +Block$ = 592 +?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcCreateLabels'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H + 00019 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR $T13[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcCreateLabels'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z +_TEXT SEGMENT +T$1 = 8 +Link$ = 256 +Block$ = 264 +FixLabels$ = 272 +?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockBefore, COMDAT - 002ab 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 002af 48 83 c0 30 add rax, 48 ; 00000030H - 002b3 48 8b c8 mov rcx, rax - 002b6 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width - 002bb 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax +; 207 : { -; 467 : switch (DispWidth) +$LN10: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 002be 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 002c1 89 85 14 07 00 - 00 mov DWORD PTR tv174[rbp], eax - 002c7 83 bd 14 07 00 - 00 01 cmp DWORD PTR tv174[rbp], 1 - 002ce 74 14 je SHORT $LN15@NcFixRelJm - 002d0 83 bd 14 07 00 - 00 02 cmp DWORD PTR tv174[rbp], 2 - 002d7 74 2a je SHORT $LN16@NcFixRelJm - 002d9 83 bd 14 07 00 - 00 04 cmp DWORD PTR tv174[rbp], 4 - 002e0 74 41 je SHORT $LN17@NcFixRelJm - 002e2 eb 5b jmp SHORT $LN5@NcFixRelJm -$LN15@NcFixRelJm: +; 208 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) -; 468 : { -; 469 : case 1: *(PINT8)&T->RawData[T->RawDataSize - DispWidth] = (INT8)BranchDisp; break; - - 002e4 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 002e8 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 002eb 8b 40 28 mov eax, DWORD PTR [rax+40] - 002ee 2b c1 sub eax, ecx - 002f0 8b c0 mov eax, eax - 002f2 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 002f6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 002fa 0f b6 55 24 movzx edx, BYTE PTR BranchDisp$10[rbp] - 002fe 88 14 01 mov BYTE PTR [rcx+rax], dl - 00301 eb 3c jmp SHORT $LN5@NcFixRelJm -$LN16@NcFixRelJm: + 00040 48 83 bd 00 01 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 00048 74 33 je SHORT $LN6@NcInsertBl + 0004a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00051 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 00056 74 25 je SHORT $LN6@NcInsertBl + 00058 48 83 bd 08 01 + 00 00 00 cmp QWORD PTR Block$[rbp], 0 + 00060 74 1b je SHORT $LN6@NcInsertBl + 00062 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 0e je SHORT $LN6@NcInsertBl + 0006f 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0007b 75 07 jne SHORT $LN5@NcInsertBl +$LN6@NcInsertBl: -; 470 : case 2: *(PINT16)&T->RawData[T->RawDataSize - DispWidth] = (INT16)BranchDisp; break; - - 00303 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00307 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 0030a 8b 40 28 mov eax, DWORD PTR [rax+40] - 0030d 2b c1 sub eax, ecx - 0030f 8b c0 mov eax, eax - 00311 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00315 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00319 0f b7 55 24 movzx edx, WORD PTR BranchDisp$10[rbp] - 0031d 66 89 14 01 mov WORD PTR [rcx+rax], dx - 00321 eb 1c jmp SHORT $LN5@NcFixRelJm -$LN17@NcFixRelJm: +; 209 : return FALSE; -; 471 : case 4: *(PINT32)&T->RawData[T->RawDataSize - DispWidth] = (INT32)BranchDisp; break; - - 00323 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00327 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 0032a 8b 40 28 mov eax, DWORD PTR [rax+40] - 0032d 2b c1 sub eax, ecx - 0032f 8b c0 mov eax, eax - 00331 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00335 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00339 8b 55 24 mov edx, DWORD PTR BranchDisp$10[rbp] - 0033c 89 14 01 mov DWORD PTR [rcx+rax], edx -$LN5@NcFixRelJm: -$LN10@NcFixRelJm: -$LN7@NcFixRelJm: + 0007d 33 c0 xor eax, eax + 0007f e9 0e 01 00 00 jmp $LN1@NcInsertBl +$LN5@NcInsertBl: -; 472 : } -; 473 : } -; 474 : } -; 475 : -; 476 : T = T->Next; +; 210 : +; 211 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 0033f 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00343 48 8b 00 mov rax, QWORD PTR [rax] - 00346 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 00084 83 bd 10 01 00 + 00 00 cmp DWORD PTR FixLabels$[rbp], 0 + 0008b 74 4b je SHORT $LN7@NcInsertBl + 0008d 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00094 48 83 c0 10 add rax, 16 + 00098 48 8b c8 mov rcx, rax + 0009b e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000a0 48 85 c0 test rax, rax + 000a3 74 33 je SHORT $LN7@NcInsertBl + 000a5 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000ac 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000b0 48 83 c0 10 add rax, 16 + 000b4 48 8b c8 mov rcx, rax + 000b7 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000bc 48 85 c0 test rax, rax + 000bf 74 17 je SHORT $LN7@NcInsertBl -; 477 : } +; 212 : NcFixLabelsForBlocks(Link->Block, Block); - 0034a e9 09 fd ff ff jmp $LN2@NcFixRelJm -$LN3@NcFixRelJm: + 000c1 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR Block$[rbp] + 000c8 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000cf 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 000d3 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks +$LN7@NcInsertBl: -; 478 : return TRUE; +; 213 : +; 214 : if (Link->Prev) - 0034f b8 01 00 00 00 mov eax, 1 -$LN1@NcFixRelJm: + 000d8 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000df 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 000e4 74 18 je SHORT $LN8@NcInsertBl -; 479 : } +; 215 : Link->Prev->Next = Block->Start; - 00354 48 8b f8 mov rdi, rax - 00357 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0035b 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 00362 e8 00 00 00 00 call _RTC_CheckStackVars - 00367 48 8b c7 mov rax, rdi - 0036a 48 8b 8d 18 07 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00371 48 33 cd xor rcx, rbp - 00374 e8 00 00 00 00 call __security_check_cookie - 00379 48 8d a5 20 07 - 00 00 lea rsp, QWORD PTR [rbp+1824] - 00380 5f pop rdi - 00381 5e pop rsi - 00382 5d pop rbp - 00383 c3 ret 0 -?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcFixRelJmps -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z -_TEXT SEGMENT -Delta$ = 4 -T$1 = 40 -T$2 = 72 -Link$ = 320 -DeltaOut$ = 328 -?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z PROC ; NcGetDeltaToLabel, COMDAT + 000e6 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000ed 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000f1 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 000f8 48 8b 09 mov rcx, QWORD PTR [rcx] + 000fb 48 89 08 mov QWORD PTR [rax], rcx +$LN8@NcInsertBl: -; 363 : { +; 216 : Block->Start->Prev = Link->Prev; -$LN13: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000fe 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00105 48 8b 00 mov rax, QWORD PTR [rax] + 00108 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0010f 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00113 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 364 : INT32 Delta = 0; +; 217 : Block->End->Next = Link; - 00024 c7 45 04 00 00 - 00 00 mov DWORD PTR Delta$[rbp], 0 + 00117 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0011e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00122 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00129 48 89 08 mov QWORD PTR [rax], rcx -; 365 : //First checking backwards because I feel like thats the direction most jmps are in -; 366 : for (PNATIVE_CODE_LINK T = Link; T; T = T->Prev) +; 218 : Link->Prev = Block->End; - 0002b 48 8b 85 40 01 + 0012c 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00032 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 00036 eb 0c jmp SHORT $LN4@NcGetDelta -$LN2@NcGetDelta: - 00038 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0003c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00040 48 89 45 28 mov QWORD PTR T$1[rbp], rax -$LN4@NcGetDelta: - 00044 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00049 74 4c je SHORT $LN3@NcGetDelta + 00133 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0013a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0013e 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 367 : { -; 368 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 219 : +; 220 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0004b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0004f 8b 40 18 mov eax, DWORD PTR [rax+24] - 00052 83 e0 01 and eax, 1 - 00055 85 c0 test eax, eax - 00057 74 2b je SHORT $LN8@NcGetDelta + 00142 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00149 48 8b 00 mov rax, QWORD PTR [rax] + 0014c 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00150 eb 0b jmp SHORT $LN4@NcInsertBl +$LN2@NcInsertBl: + 00152 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00156 48 8b 00 mov rax, QWORD PTR [rax] + 00159 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN4@NcInsertBl: + 0015d 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00162 74 29 je SHORT $LN3@NcInsertBl + 00164 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0016b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0016f 48 8b 00 mov rax, QWORD PTR [rax] + 00172 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00176 74 15 je SHORT $LN3@NcInsertBl -; 369 : { -; 370 : if (T->Label == Link->Label) +; 221 : T->Block = Link->Block; - 00059 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0005d 48 8b 8d 40 01 + 00178 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0017c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00064 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 00067 39 48 1c cmp DWORD PTR [rax+28], ecx - 0006a 75 16 jne SHORT $LN9@NcGetDelta + 00183 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00187 48 89 48 10 mov QWORD PTR [rax+16], rcx + 0018b eb c5 jmp SHORT $LN2@NcInsertBl +$LN3@NcInsertBl: -; 371 : { -; 372 : *DeltaOut = Delta; +; 222 : +; 223 : return TRUE; - 0006c 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 00073 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00076 89 08 mov DWORD PTR [rax], ecx + 0018d b8 01 00 00 00 mov eax, 1 +$LN1@NcInsertBl: -; 373 : return TRUE; +; 224 : } - 00078 b8 01 00 00 00 mov eax, 1 - 0007d e9 89 00 00 00 jmp $LN1@NcGetDelta -$LN9@NcGetDelta: + 00192 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00199 5f pop rdi + 0019a 5d pop rbp + 0019b c3 ret 0 +?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockBefore +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z +_TEXT SEGMENT +T$1 = 8 +Link$ = 256 +Block$ = 264 +FixLabels$ = 272 +?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockAfter, COMDAT -; 374 : } -; 375 : continue; +; 187 : { - 00082 eb b4 jmp SHORT $LN2@NcGetDelta -$LN8@NcGetDelta: +$LN10: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 376 : } -; 377 : Delta -= T->RawDataSize; +; 188 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) - 00084 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00088 8b 40 28 mov eax, DWORD PTR [rax+40] - 0008b 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 0008e 2b c8 sub ecx, eax - 00090 8b c1 mov eax, ecx - 00092 89 45 04 mov DWORD PTR Delta$[rbp], eax + 00040 48 83 bd 00 01 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 00048 74 47 je SHORT $LN6@NcInsertBl + 0004a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00051 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 00056 74 39 je SHORT $LN6@NcInsertBl + 00058 48 83 bd 08 01 + 00 00 00 cmp QWORD PTR Block$[rbp], 0 + 00060 74 2f je SHORT $LN6@NcInsertBl + 00062 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 22 je SHORT $LN6@NcInsertBl + 0006f 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0007b 74 14 je SHORT $LN6@NcInsertBl + 0007d 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00084 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0008b 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 0008f 75 07 jne SHORT $LN5@NcInsertBl +$LN6@NcInsertBl: -; 378 : } +; 189 : return FALSE; - 00095 eb a1 jmp SHORT $LN2@NcGetDelta -$LN3@NcGetDelta: + 00091 33 c0 xor eax, eax + 00093 e9 0b 01 00 00 jmp $LN1@NcInsertBl +$LN5@NcInsertBl: -; 379 : -; 380 : //Now check forwards -; 381 : Delta = 0; +; 190 : +; 191 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 00097 c7 45 04 00 00 - 00 00 mov DWORD PTR Delta$[rbp], 0 + 00098 83 bd 10 01 00 + 00 00 cmp DWORD PTR FixLabels$[rbp], 0 + 0009f 74 4b je SHORT $LN7@NcInsertBl + 000a1 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000a8 48 83 c0 10 add rax, 16 + 000ac 48 8b c8 mov rcx, rax + 000af e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000b4 48 85 c0 test rax, rax + 000b7 74 33 je SHORT $LN7@NcInsertBl + 000b9 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000c0 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000c4 48 83 c0 10 add rax, 16 + 000c8 48 8b c8 mov rcx, rax + 000cb e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000d0 48 85 c0 test rax, rax + 000d3 74 17 je SHORT $LN7@NcInsertBl -; 382 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) +; 192 : NcFixLabelsForBlocks(Link->Block, Block); - 0009e 48 8b 85 40 01 + 000d5 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR Block$[rbp] + 000dc 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000a5 48 8b 00 mov rax, QWORD PTR [rax] - 000a8 48 89 45 48 mov QWORD PTR T$2[rbp], rax - 000ac eb 0b jmp SHORT $LN7@NcGetDelta -$LN5@NcGetDelta: - 000ae 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000b2 48 8b 00 mov rax, QWORD PTR [rax] - 000b5 48 89 45 48 mov QWORD PTR T$2[rbp], rax -$LN7@NcGetDelta: - 000b9 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 - 000be 74 49 je SHORT $LN6@NcGetDelta + 000e3 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 000e7 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks +$LN7@NcInsertBl: -; 383 : { -; 384 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 193 : +; 194 : if (Link->Next) - 000c0 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] - 000c7 83 e0 01 and eax, 1 - 000ca 85 c0 test eax, eax - 000cc 74 28 je SHORT $LN10@NcGetDelta + 000ec 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000f3 48 83 38 00 cmp QWORD PTR [rax], 0 + 000f7 74 19 je SHORT $LN8@NcInsertBl -; 385 : { -; 386 : if (T->Label == Link->Label) +; 195 : Link->Next->Prev = Block->End; - 000ce 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000d2 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000d9 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 000dc 39 48 1c cmp DWORD PTR [rax+28], ecx - 000df 75 13 jne SHORT $LN11@NcGetDelta + 000f9 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00100 48 8b 00 mov rax, QWORD PTR [rax] + 00103 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0010a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0010e 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN8@NcInsertBl: -; 387 : { -; 388 : *DeltaOut = Delta; +; 196 : Block->End->Next = Link->Next; - 000e1 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 000e8 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 000eb 89 08 mov DWORD PTR [rax], ecx + 00112 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00119 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0011d 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00124 48 8b 09 mov rcx, QWORD PTR [rcx] + 00127 48 89 08 mov QWORD PTR [rax], rcx -; 389 : return TRUE; +; 197 : Block->Start->Prev = Link; - 000ed b8 01 00 00 00 mov eax, 1 - 000f2 eb 17 jmp SHORT $LN1@NcGetDelta -$LN11@NcGetDelta: + 0012a 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00131 48 8b 00 mov rax, QWORD PTR [rax] + 00134 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0013b 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 390 : } -; 391 : continue; +; 198 : Link->Next = Block->Start; - 000f4 eb b8 jmp SHORT $LN5@NcGetDelta -$LN10@NcGetDelta: + 0013f 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00146 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0014d 48 8b 09 mov rcx, QWORD PTR [rcx] + 00150 48 89 08 mov QWORD PTR [rax], rcx -; 392 : } -; 393 : Delta += T->RawDataSize; +; 199 : +; 200 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 000f6 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000fa 8b 40 28 mov eax, DWORD PTR [rax+40] - 000fd 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00100 03 c8 add ecx, eax - 00102 8b c1 mov eax, ecx - 00104 89 45 04 mov DWORD PTR Delta$[rbp], eax + 00153 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0015a 48 8b 00 mov rax, QWORD PTR [rax] + 0015d 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00161 eb 0b jmp SHORT $LN4@NcInsertBl +$LN2@NcInsertBl: + 00163 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00167 48 8b 00 mov rax, QWORD PTR [rax] + 0016a 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN4@NcInsertBl: + 0016e 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00173 74 29 je SHORT $LN3@NcInsertBl + 00175 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0017c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00180 48 8b 00 mov rax, QWORD PTR [rax] + 00183 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00187 74 15 je SHORT $LN3@NcInsertBl -; 394 : } +; 201 : T->Block = Link->Block; - 00107 eb a5 jmp SHORT $LN5@NcGetDelta -$LN6@NcGetDelta: + 00189 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0018d 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00194 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00198 48 89 48 10 mov QWORD PTR [rax+16], rcx + 0019c eb c5 jmp SHORT $LN2@NcInsertBl +$LN3@NcInsertBl: -; 395 : return FALSE; +; 202 : +; 203 : return TRUE; - 00109 33 c0 xor eax, eax -$LN1@NcGetDelta: + 0019e b8 01 00 00 00 mov eax, 1 +$LN1@NcInsertBl: -; 396 : } +; 204 : } - 0010b 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00112 5f pop rdi - 00113 5d pop rbp - 00114 c3 ret 0 -?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ENDP ; NcGetDeltaToLabel + 001a3 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 001aa 5f pop rdi + 001ab 5d pop rbp + 001ac c3 ret 0 +?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT -Block$ = 224 -BlockCopy$ = 232 -?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcDeepCopyBlock, COMDAT +T$1 = 8 +$T2 = 228 +$T3 = 264 +$T4 = 312 +$T5 = 344 +$T6 = 392 +$T7 = 424 +$T8 = 472 +$T9 = 516 +tv178 = 532 +tv176 = 536 +tv89 = 536 +tv181 = 544 +tv138 = 552 +tv133 = 560 +tv183 = 568 +tv92 = 576 +tv198 = 584 +tv188 = 592 +tv161 = 600 +tv153 = 608 +tv199 = 616 +tv193 = 624 +tv159 = 632 +tv165 = 640 +Block1$ = 688 +Block2$ = 696 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcFixLabelsForBlocks, COMDAT -; 358 : { +; 176 : { -$LN3: +$LN17: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 0000c 48 81 ec b8 02 + 00 00 sub rsp, 696 ; 000002b8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 ae 00 00 00 mov ecx, 174 ; 000000aeH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 d8 + 02 00 00 mov rcx, QWORD PTR [rsp+728] + 0002f c7 85 04 02 00 + 00 00 00 00 00 mov DWORD PTR $T9[rbp], 0 + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 359 : return NcDeepCopyPartialBlock(Block->Start, Block->End, BlockCopy); +; 177 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) - 00024 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR BlockCopy$[rbp] - 0002b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00032 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 8b 08 mov rcx, QWORD PTR [rax] - 00040 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 00045 48 8b 85 b8 02 + 00 00 mov rax, QWORD PTR Block2$[rbp] + 0004c 48 8b 00 mov rax, QWORD PTR [rax] + 0004f 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00053 eb 0b jmp SHORT $LN4@NcFixLabel +$LN2@NcFixLabel: + 00055 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00059 48 8b 00 mov rax, QWORD PTR [rax] + 0005c 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN4@NcFixLabel: + 00060 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00065 0f 84 2e 02 00 + 00 je $LN3@NcFixLabel + 0006b 48 8b 85 b8 02 + 00 00 mov rax, QWORD PTR Block2$[rbp] + 00072 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00076 48 8b 00 mov rax, QWORD PTR [rax] + 00079 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0007d 0f 84 16 02 00 + 00 je $LN3@NcFixLabel -; 360 : } +; 178 : { +; 179 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) - 00045 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004c 5f pop rdi - 0004d 5d pop rbp - 0004e c3 ret 0 -?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcDeepCopyBlock + 00083 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00087 8b 40 18 mov eax, DWORD PTR [rax+24] + 0008a 83 e0 01 and eax, 1 + 0008d 85 c0 test eax, eax + 0008f 0f 84 64 01 00 + 00 je $LN7@NcFixLabel + 00095 48 8d 85 08 01 + 00 00 lea rax, QWORD PTR $T3[rbp] + 0009c 48 89 85 38 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000a3 48 8b 85 b0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 000aa 48 83 c0 10 add rax, 16 + 000ae 48 89 85 18 02 + 00 00 mov QWORD PTR tv89[rbp], rax + 000b5 48 8b 95 38 01 + 00 00 mov rdx, QWORD PTR $T4[rbp] + 000bc 48 8b 8d 18 02 + 00 00 mov rcx, QWORD PTR tv89[rbp] + 000c3 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 000c8 48 89 85 20 02 + 00 00 mov QWORD PTR tv181[rbp], rax + 000cf 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR tv181[rbp] + 000d6 48 89 85 28 02 + 00 00 mov QWORD PTR tv138[rbp], rax + 000dd 48 8d 85 58 01 + 00 00 lea rax, QWORD PTR $T5[rbp] + 000e4 48 89 85 88 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 000eb 48 8b 85 b0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 000f2 48 83 c0 10 add rax, 16 + 000f6 48 89 85 30 02 + 00 00 mov QWORD PTR tv133[rbp], rax + 000fd 48 8b 95 88 01 + 00 00 mov rdx, QWORD PTR $T6[rbp] + 00104 48 8b 8d 30 02 + 00 00 mov rcx, QWORD PTR tv133[rbp] + 0010b e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin + 00110 48 89 85 38 02 + 00 00 mov QWORD PTR tv183[rbp], rax + 00117 48 8b 85 38 02 + 00 00 mov rax, QWORD PTR tv183[rbp] + 0011e 48 89 85 40 02 + 00 00 mov QWORD PTR tv92[rbp], rax + 00125 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00129 48 83 c0 1c add rax, 28 + 0012d 4c 8b c8 mov r9, rax + 00130 4c 8b 85 28 02 + 00 00 mov r8, QWORD PTR tv138[rbp] + 00137 48 8b 95 40 02 + 00 00 mov rdx, QWORD PTR tv92[rbp] + 0013e 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T7[rbp] + 00145 e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> + 0014a 48 89 85 48 02 + 00 00 mov QWORD PTR tv198[rbp], rax + 00151 48 8b 85 48 02 + 00 00 mov rax, QWORD PTR tv198[rbp] + 00158 48 89 85 50 02 + 00 00 mov QWORD PTR tv188[rbp], rax + 0015f 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 00165 83 c8 01 or eax, 1 + 00168 89 85 04 02 00 + 00 mov DWORD PTR $T9[rbp], eax + 0016e 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR tv188[rbp] + 00175 48 89 85 58 02 + 00 00 mov QWORD PTR tv161[rbp], rax + 0017c 48 8b 85 b0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 00183 48 83 c0 10 add rax, 16 + 00187 48 89 85 60 02 + 00 00 mov QWORD PTR tv153[rbp], rax + 0018e 48 8d 95 d8 01 + 00 00 lea rdx, QWORD PTR $T8[rbp] + 00195 48 8b 8d 60 02 + 00 00 mov rcx, QWORD PTR tv153[rbp] + 0019c e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 001a1 48 89 85 68 02 + 00 00 mov QWORD PTR tv199[rbp], rax + 001a8 48 8b 85 68 02 + 00 00 mov rax, QWORD PTR tv199[rbp] + 001af 48 89 85 70 02 + 00 00 mov QWORD PTR tv193[rbp], rax + 001b6 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 001bc 83 c8 02 or eax, 2 + 001bf 89 85 04 02 00 + 00 mov DWORD PTR $T9[rbp], eax + 001c5 48 8b 85 70 02 + 00 00 mov rax, QWORD PTR tv193[rbp] + 001cc 48 89 85 78 02 + 00 00 mov QWORD PTR tv159[rbp], rax + 001d3 48 8b 95 78 02 + 00 00 mov rdx, QWORD PTR tv159[rbp] + 001da 48 8b 8d 58 02 + 00 00 mov rcx, QWORD PTR tv161[rbp] + 001e1 e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= + 001e6 0f b6 c0 movzx eax, al + 001e9 85 c0 test eax, eax + 001eb 74 0c je SHORT $LN7@NcFixLabel + 001ed c7 85 80 02 00 + 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 + 001f7 eb 0a jmp SHORT $LN8@NcFixLabel +$LN7@NcFixLabel: + 001f9 c7 85 80 02 00 + 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 +$LN8@NcFixLabel: + 00203 0f b6 85 80 02 + 00 00 movzx eax, BYTE PTR tv165[rbp] + 0020a 88 85 e4 00 00 + 00 mov BYTE PTR $T2[rbp], al + 00210 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 00216 83 e0 02 and eax, 2 + 00219 85 c0 test eax, eax + 0021b 74 14 je SHORT $LN15@NcFixLabel + 0021d 83 a5 04 02 00 + 00 fd and DWORD PTR $T9[rbp], -3 + 00224 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 0022b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00230 90 npad 1 +$LN15@NcFixLabel: + 00231 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 00237 83 e0 01 and eax, 1 + 0023a 85 c0 test eax, eax + 0023c 74 13 je SHORT $LN16@NcFixLabel + 0023e 83 a5 04 02 00 + 00 fe and DWORD PTR $T9[rbp], -2 + 00245 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T7[rbp] + 0024c e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN16@NcFixLabel: + 00251 0f b6 85 e4 00 + 00 00 movzx eax, BYTE PTR $T2[rbp] + 00258 85 c0 test eax, eax + 0025a 74 38 je SHORT $LN5@NcFixLabel + +; 180 : { +; 181 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); + + 0025c 48 8b 8d b0 02 + 00 00 mov rcx, QWORD PTR Block1$[rbp] + 00263 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00268 89 85 14 02 00 + 00 mov DWORD PTR tv178[rbp], eax + 0026e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00272 8b 40 1c mov eax, DWORD PTR [rax+28] + 00275 89 85 18 02 00 + 00 mov DWORD PTR tv176[rbp], eax + 0027b 44 8b 85 14 02 + 00 00 mov r8d, DWORD PTR tv178[rbp] + 00282 8b 95 18 02 00 + 00 mov edx, DWORD PTR tv176[rbp] + 00288 48 8b 8d b8 02 + 00 00 mov rcx, QWORD PTR Block2$[rbp] + 0028f e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId +$LN5@NcFixLabel: + +; 182 : } +; 183 : } + + 00294 e9 bc fd ff ff jmp $LN2@NcFixLabel +$LN3@NcFixLabel: + +; 184 : } + + 00299 48 8d a5 98 02 + 00 00 lea rsp, QWORD PTR [rbp+664] + 002a0 5f pop rdi + 002a1 5d pop rbp + 002a2 c3 ret 0 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcFixLabelsForBlocks _TEXT ENDS +; COMDAT text$x +text$x SEGMENT +T$1 = 8 +$T2 = 228 +$T3 = 264 +$T4 = 312 +$T5 = 344 +$T6 = 392 +$T7 = 424 +$T8 = 472 +$T9 = 516 +tv178 = 532 +tv176 = 536 +tv89 = 536 +tv181 = 544 +tv138 = 552 +tv133 = 560 +tv183 = 568 +tv92 = 576 +tv198 = 584 +tv188 = 592 +tv161 = 600 +tv153 = 608 +tv199 = 616 +tv193 = 624 +tv159 = 632 +tv165 = 640 +Block1$ = 688 +Block2$ = 696 +?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$2 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 0001a 83 e0 01 and eax, 1 + 0001d 85 c0 test eax, eax + 0001f 74 13 je SHORT $LN12@dtor$2 + 00021 83 a5 04 02 00 + 00 fe and DWORD PTR $T9[rbp], -2 + 00028 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T7[rbp] + 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN12@dtor$2: + 00034 48 83 c4 28 add rsp, 40 ; 00000028H + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$2 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +T$1 = 8 +$T2 = 228 +$T3 = 264 +$T4 = 312 +$T5 = 344 +$T6 = 392 +$T7 = 424 +$T8 = 472 +$T9 = 516 +tv178 = 532 +tv176 = 536 +tv89 = 536 +tv181 = 544 +tv138 = 552 +tv133 = 560 +tv183 = 568 +tv92 = 576 +tv198 = 584 +tv188 = 592 +tv161 = 600 +tv153 = 608 +tv199 = 616 +tv193 = 624 +tv159 = 632 +tv165 = 640 +Block1$ = 688 +Block2$ = 696 +?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$3 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 0001a 83 e0 02 and eax, 2 + 0001d 85 c0 test eax, eax + 0001f 74 13 je SHORT $LN14@dtor$3 + 00021 83 a5 04 02 00 + 00 fd and DWORD PTR $T9[rbp], -3 + 00028 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN14@dtor$3: + 00034 48 83 c4 28 add rsp, 40 ; 00000028H + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$3 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z +; COMDAT text$x +text$x SEGMENT +T$1 = 8 +$T2 = 228 +$T3 = 264 +$T4 = 312 +$T5 = 344 +$T6 = 392 +$T7 = 424 +$T8 = 472 +$T9 = 516 +tv178 = 532 +tv176 = 536 +tv89 = 536 +tv181 = 544 +tv138 = 552 +tv133 = 560 +tv183 = 568 +tv92 = 576 +tv198 = 584 +tv188 = 592 +tv161 = 600 +tv153 = 608 +tv199 = 616 +tv193 = 624 +tv159 = 632 +tv165 = 640 +Block1$ = 688 +Block2$ = 696 +?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$2 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 0001a 83 e0 01 and eax, 1 + 0001d 85 c0 test eax, eax + 0001f 74 13 je SHORT $LN12@dtor$2 + 00021 83 a5 04 02 00 + 00 fe and DWORD PTR $T9[rbp], -2 + 00028 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T7[rbp] + 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN12@dtor$2: + 00034 48 83 c4 28 add rsp, 40 ; 00000028H + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$2 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +T$1 = 8 +$T2 = 228 +$T3 = 264 +$T4 = 312 +$T5 = 344 +$T6 = 392 +$T7 = 424 +$T8 = 472 +$T9 = 516 +tv178 = 532 +tv176 = 536 +tv89 = 536 +tv181 = 544 +tv138 = 552 +tv133 = 560 +tv183 = 568 +tv92 = 576 +tv198 = 584 +tv188 = 592 +tv161 = 600 +tv153 = 608 +tv199 = 616 +tv193 = 624 +tv159 = 632 +tv165 = 640 +Block1$ = 688 +Block2$ = 696 +?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$3 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 0001a 83 e0 02 and eax, 2 + 0001d 85 c0 test eax, eax + 0001f 74 13 je SHORT $LN14@dtor$3 + 00021 83 a5 04 02 00 + 00 fd and DWORD PTR $T9[rbp], -3 + 00028 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN14@dtor$3: + 00034 48 83 c4 28 add rsp, 40 ; 00000028H + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$3 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT -$L0$4 = 8 -$L0$5 = 40 -$L0$6 = 72 -L$7 = 100 -CurLink$8 = 136 -Temp$9 = 168 -tv88 = 376 -__$ArrayPad$ = 384 -Start$ = 432 -End$ = 440 -Block$ = 448 -?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeepCopyPartialBlock, COMDAT +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv161 = 504 +tv81 = 504 +tv164 = 512 +tv130 = 520 +tv93 = 528 +tv166 = 536 +tv84 = 544 +tv171 = 552 +tv168 = 560 +tv153 = 568 +tv145 = 576 +tv172 = 584 +tv170 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcGenUnusedLabelId, COMDAT -; 333 : { +; 158 : { -$LN12: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec b8 01 - 00 00 sub rsp, 440 ; 000001b8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 36 00 00 00 mov ecx, 54 ; 00000036H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 d8 - 01 00 00 mov rcx, QWORD PTR [rsp+472] - 00036 48 8b 05 00 00 +$LN9: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 98 02 + 00 00 sub rsp, 664 ; 00000298H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 a6 00 00 00 mov ecx, 166 ; 000000a6H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 b8 + 02 00 00 mov rcx, QWORD PTR [rsp+696] + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 80 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 60 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 334 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00053 48 83 bd b0 01 - 00 00 00 cmp QWORD PTR Start$[rbp], 0 - 0005b 74 3a je SHORT $LN9@NcDeepCopy - 0005d 48 83 bd b8 01 - 00 00 00 cmp QWORD PTR End$[rbp], 0 - 00065 74 30 je SHORT $LN9@NcDeepCopy - 00067 48 8b 85 b0 01 - 00 00 mov rax, QWORD PTR Start$[rbp] - 0006e 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00073 74 22 je SHORT $LN9@NcDeepCopy - 00075 48 8b 85 b0 01 - 00 00 mov rax, QWORD PTR Start$[rbp] - 0007c 48 8b 8d b8 01 - 00 00 mov rcx, QWORD PTR End$[rbp] - 00083 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00087 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 0008b 75 0a jne SHORT $LN9@NcDeepCopy - 0008d 48 83 bd c0 01 - 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00095 75 07 jne SHORT $LN8@NcDeepCopy -$LN9@NcDeepCopy: - -; 335 : return FALSE; +; 159 : ULONG ReturnLabelId = rand(); - 00097 33 c0 xor eax, eax - 00099 e9 27 01 00 00 jmp $LN1@NcDeepCopy -$LN8@NcDeepCopy: + 00047 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 0004d 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax +$LN2@NcGenUnuse: -; 336 : -; 337 : Block->LabelIds.clear(); +; 160 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) - 0009e 48 8b 85 c0 01 + 00050 48 8d 85 08 01 + 00 00 lea rax, QWORD PTR $T5[rbp] + 00057 48 89 85 38 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 0005e 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 000a5 48 83 c0 10 add rax, 16 - 000a9 48 8b c8 mov rcx, rax - 000ac e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear - -; 338 : Block->Start = Block->End = NULL; - - 000b1 48 8b 85 c0 01 + 00065 48 83 c0 10 add rax, 16 + 00069 48 89 85 f8 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 00070 48 8b 95 38 01 + 00 00 mov rdx, QWORD PTR $T6[rbp] + 00077 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR tv81[rbp] + 0007e e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 00083 48 89 85 00 02 + 00 00 mov QWORD PTR tv164[rbp], rax + 0008a 48 8b 85 00 02 + 00 00 mov rax, QWORD PTR tv164[rbp] + 00091 48 89 85 08 02 + 00 00 mov QWORD PTR tv130[rbp], rax + 00098 48 8d 85 58 01 + 00 00 lea rax, QWORD PTR $T7[rbp] + 0009f 48 89 85 88 01 + 00 00 mov QWORD PTR $T8[rbp], rax + 000a6 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 000b8 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - 000c0 48 8b 85 c0 01 + 000ad 48 83 c0 10 add rax, 16 + 000b1 48 89 85 10 02 + 00 00 mov QWORD PTR tv93[rbp], rax + 000b8 48 8b 95 88 01 + 00 00 mov rdx, QWORD PTR $T8[rbp] + 000bf 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 000c6 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin + 000cb 48 89 85 18 02 + 00 00 mov QWORD PTR tv166[rbp], rax + 000d2 48 8b 85 18 02 + 00 00 mov rax, QWORD PTR tv166[rbp] + 000d9 48 89 85 20 02 + 00 00 mov QWORD PTR tv84[rbp], rax + 000e0 4c 8d 4d 04 lea r9, QWORD PTR ReturnLabelId$[rbp] + 000e4 4c 8b 85 08 02 + 00 00 mov r8, QWORD PTR tv130[rbp] + 000eb 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR tv84[rbp] + 000f2 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 000f9 e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> + 000fe 48 89 85 28 02 + 00 00 mov QWORD PTR tv171[rbp], rax + 00105 48 8b 85 28 02 + 00 00 mov rax, QWORD PTR tv171[rbp] + 0010c 48 89 85 30 02 + 00 00 mov QWORD PTR tv168[rbp], rax + 00113 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR tv168[rbp] + 0011a 48 89 85 38 02 + 00 00 mov QWORD PTR tv153[rbp], rax + 00121 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 000c7 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 00128 48 83 c0 10 add rax, 16 + 0012c 48 89 85 40 02 + 00 00 mov QWORD PTR tv145[rbp], rax + 00133 48 8d 95 d8 01 + 00 00 lea rdx, QWORD PTR $T10[rbp] + 0013a 48 8b 8d 40 02 + 00 00 mov rcx, QWORD PTR tv145[rbp] + 00141 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 00146 48 89 85 48 02 + 00 00 mov QWORD PTR tv172[rbp], rax + 0014d 48 8b 85 48 02 + 00 00 mov rax, QWORD PTR tv172[rbp] + 00154 48 89 85 50 02 + 00 00 mov QWORD PTR tv170[rbp], rax + 0015b 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR tv170[rbp] + 00162 48 89 85 58 02 + 00 00 mov QWORD PTR tv151[rbp], rax + 00169 48 8b 95 58 02 + 00 00 mov rdx, QWORD PTR tv151[rbp] + 00170 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv153[rbp] + 00177 e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= + 0017c 88 85 e4 00 00 + 00 mov BYTE PTR $T4[rbp], al + 00182 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 00189 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 0018e 90 npad 1 + 0018f 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 00196 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 0019b 0f b6 85 e4 00 + 00 00 movzx eax, BYTE PTR $T4[rbp] + 001a2 85 c0 test eax, eax + 001a4 74 0e je SHORT $LN3@NcGenUnuse -; 339 : -; 340 : for (ULONG L : Start->Block->LabelIds) +; 161 : ReturnLabelId = rand(); - 000ce 48 8b 85 b0 01 - 00 00 mov rax, QWORD PTR Start$[rbp] - 000d5 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000d9 48 83 c0 10 add rax, 16 - 000dd 48 89 45 08 mov QWORD PTR $L0$4[rbp], rax - 000e1 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] - 000e5 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin - 000ea 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax - 000ee 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] - 000f2 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end - 000f7 48 89 45 48 mov QWORD PTR $L0$6[rbp], rax - 000fb eb 0c jmp SHORT $LN4@NcDeepCopy -$LN2@NcDeepCopy: - 000fd 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] - 00101 48 83 c0 04 add rax, 4 - 00105 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax -$LN4@NcDeepCopy: - 00109 48 8b 45 48 mov rax, QWORD PTR $L0$6[rbp] - 0010d 48 39 45 28 cmp QWORD PTR $L0$5[rbp], rax - 00111 74 2d je SHORT $LN3@NcDeepCopy - 00113 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] - 00117 8b 00 mov eax, DWORD PTR [rax] - 00119 89 45 64 mov DWORD PTR L$7[rbp], eax + 001a6 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 001ac 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 001af e9 9c fe ff ff jmp $LN2@NcGenUnuse +$LN3@NcGenUnuse: -; 341 : Block->LabelIds.push_back(L); +; 162 : Block->LabelIds.push_back(ReturnLabelId); - 0011c 48 8b 85 c0 01 + 001b4 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00123 48 83 c0 10 add rax, 16 - 00127 48 89 85 78 01 - 00 00 mov QWORD PTR tv88[rbp], rax - 0012e 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] - 00132 48 8b 8d 78 01 - 00 00 mov rcx, QWORD PTR tv88[rbp] - 00139 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back - 0013e eb bd jmp SHORT $LN2@NcDeepCopy -$LN3@NcDeepCopy: - -; 342 : -; 343 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) - - 00140 48 8b 85 b0 01 - 00 00 mov rax, QWORD PTR Start$[rbp] - 00147 48 89 85 88 00 - 00 00 mov QWORD PTR CurLink$8[rbp], rax - 0014e eb 11 jmp SHORT $LN7@NcDeepCopy -$LN5@NcDeepCopy: - 00150 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR CurLink$8[rbp] - 00157 48 8b 00 mov rax, QWORD PTR [rax] - 0015a 48 89 85 88 00 - 00 00 mov QWORD PTR CurLink$8[rbp], rax -$LN7@NcDeepCopy: - 00161 48 83 bd 88 00 - 00 00 00 cmp QWORD PTR CurLink$8[rbp], 0 - 00169 74 55 je SHORT $LN6@NcDeepCopy - 0016b 48 8b 85 b8 01 - 00 00 mov rax, QWORD PTR End$[rbp] - 00172 48 8b 00 mov rax, QWORD PTR [rax] - 00175 48 39 85 88 00 - 00 00 cmp QWORD PTR CurLink$8[rbp], rax - 0017c 74 42 je SHORT $LN6@NcDeepCopy - -; 344 : { -; 345 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); - - 0017e 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR CurLink$8[rbp] - 00185 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink - 0018a 48 89 85 a8 00 - 00 00 mov QWORD PTR Temp$9[rbp], rax - -; 346 : if (!Temp) - - 00191 48 83 bd a8 00 - 00 00 00 cmp QWORD PTR Temp$9[rbp], 0 - 00199 75 10 jne SHORT $LN10@NcDeepCopy - -; 347 : { -; 348 : NcDeleteBlock(Block); - - 0019b 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 001a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock - -; 349 : return FALSE; - - 001a7 33 c0 xor eax, eax - 001a9 eb 1a jmp SHORT $LN1@NcDeepCopy -$LN10@NcDeepCopy: - -; 350 : } -; 351 : NcAppendToBlock(Block, Temp); - - 001ab 48 8b 95 a8 00 - 00 00 mov rdx, QWORD PTR Temp$9[rbp] - 001b2 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 001b9 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock - -; 352 : } - - 001be eb 90 jmp SHORT $LN5@NcDeepCopy -$LN6@NcDeepCopy: + 001bb 48 83 c0 10 add rax, 16 + 001bf 48 89 85 f8 01 + 00 00 mov QWORD PTR tv161[rbp], rax + 001c6 48 8d 55 04 lea rdx, QWORD PTR ReturnLabelId$[rbp] + 001ca 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR tv161[rbp] + 001d1 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back -; 353 : -; 354 : return TRUE; +; 163 : return ReturnLabelId; - 001c0 b8 01 00 00 00 mov eax, 1 -$LN1@NcDeepCopy: + 001d6 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] -; 355 : } +; 164 : } - 001c5 48 8b f8 mov rdi, rax - 001c8 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001cc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001d3 e8 00 00 00 00 call _RTC_CheckStackVars - 001d8 48 8b c7 mov rax, rdi - 001db 48 8b 8d 80 01 + 001d9 8b f8 mov edi, eax + 001db 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001df 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 001e6 e8 00 00 00 00 call _RTC_CheckStackVars + 001eb 8b c7 mov eax, edi + 001ed 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001e2 48 33 cd xor rcx, rbp - 001e5 e8 00 00 00 00 call __security_check_cookie - 001ea 48 8d a5 98 01 - 00 00 lea rsp, QWORD PTR [rbp+408] - 001f1 5f pop rdi - 001f2 5d pop rbp - 001f3 c3 ret 0 -?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeepCopyPartialBlock -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z -_TEXT SEGMENT -NewLink$1 = 8 -DecodeError$2 = 36 -$T3 = 264 -$T4 = 296 -$T5 = 328 -$T6 = 360 -$T7 = 392 -tv151 = 404 -tv155 = 408 -tv149 = 408 -tv131 = 408 -tv81 = 408 -Link$ = 448 -?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z PROC ; NcDeepCopyLink, COMDAT - -; 312 : { - -$LN14: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec d8 01 - 00 00 sub rsp, 472 ; 000001d8H - 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 313 : if (Link->Flags & CODE_FLAG_IS_LABEL) - - 0001f 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00026 8b 40 18 mov eax, DWORD PTR [rax+24] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 67 je SHORT $LN2@NcDeepCopy - -; 314 : { -; 315 : return new NATIVE_CODE_LINK(Link->Label, NULL); - - 00030 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00035 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0003a 48 89 85 28 01 - 00 00 mov QWORD PTR $T4[rbp], rax - 00041 48 83 bd 28 01 - 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 00049 74 22 je SHORT $LN6@NcDeepCopy - 0004b 45 33 c0 xor r8d, r8d - 0004e 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00055 8b 50 1c mov edx, DWORD PTR [rax+28] - 00058 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR $T4[rbp] - 0005f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00064 48 89 85 98 01 - 00 00 mov QWORD PTR tv81[rbp], rax - 0006b eb 0b jmp SHORT $LN7@NcDeepCopy -$LN6@NcDeepCopy: - 0006d 48 c7 85 98 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv81[rbp], 0 -$LN7@NcDeepCopy: - 00078 48 8b 85 98 01 - 00 00 mov rax, QWORD PTR tv81[rbp] - 0007f 48 89 85 08 01 - 00 00 mov QWORD PTR $T3[rbp], rax - 00086 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR $T3[rbp] - 0008d e9 3c 01 00 00 jmp $LN1@NcDeepCopy - -; 316 : } - - 00092 e9 37 01 00 00 jmp $LN1@NcDeepCopy -$LN2@NcDeepCopy: - -; 317 : else -; 318 : { -; 319 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); - - 00097 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0009c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a1 48 89 85 68 01 - 00 00 mov QWORD PTR $T6[rbp], rax - 000a8 48 83 bd 68 01 - 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 000b0 74 3d je SHORT $LN8@NcDeepCopy - 000b2 c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 000ba 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000c1 44 8b 48 28 mov r9d, DWORD PTR [rax+40] - 000c5 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000cc 4c 8b 40 20 mov r8, QWORD PTR [rax+32] - 000d0 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000d7 8b 50 18 mov edx, DWORD PTR [rax+24] - 000da 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR $T6[rbp] - 000e1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000e6 48 89 85 98 01 - 00 00 mov QWORD PTR tv131[rbp], rax - 000ed eb 0b jmp SHORT $LN9@NcDeepCopy -$LN8@NcDeepCopy: - 000ef 48 c7 85 98 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv131[rbp], 0 -$LN9@NcDeepCopy: - 000fa 48 8b 85 98 01 - 00 00 mov rax, QWORD PTR tv131[rbp] - 00101 48 89 85 48 01 - 00 00 mov QWORD PTR $T5[rbp], rax - 00108 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR $T5[rbp] - 0010f 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax - -; 320 : NewLink->Label = Link->Label; - - 00113 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 00117 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 0011e 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 00121 89 48 1c mov DWORD PTR [rax+28], ecx - -; 321 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); - - 00124 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 00128 48 83 c0 30 add rax, 48 ; 00000030H - 0012c 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 00133 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00137 48 8b 8d c0 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 0013e 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00142 48 8b c8 mov rcx, rax - 00145 e8 00 00 00 00 call xed_decode - 0014a 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax - -; 322 : if (DecodeError != XED_ERROR_NONE) - - 0014d 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 - 00151 74 77 je SHORT $LN4@NcDeepCopy - -; 323 : { -; 324 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); - - 00153 48 8b 85 c0 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0015a 8b 40 28 mov eax, DWORD PTR [rax+40] - 0015d 89 85 94 01 00 - 00 mov DWORD PTR tv151[rbp], eax - 00163 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] - 00166 e8 00 00 00 00 call xed_error_enum_t2str - 0016b 48 89 85 98 01 - 00 00 mov QWORD PTR tv149[rbp], rax - 00172 44 8b 85 94 01 - 00 00 mov r8d, DWORD PTR tv151[rbp] - 00179 48 8b 95 98 01 - 00 00 mov rdx, QWORD PTR tv149[rbp] - 00180 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ - 00187 e8 00 00 00 00 call printf - -; 325 : delete NewLink; - - 0018c 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 00190 48 89 85 88 01 - 00 00 mov QWORD PTR $T7[rbp], rax - 00197 48 83 bd 88 01 - 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 0019f 74 1a je SHORT $LN10@NcDeepCopy - 001a1 ba 01 00 00 00 mov edx, 1 - 001a6 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR $T7[rbp] - 001ad e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001b2 48 89 85 98 01 - 00 00 mov QWORD PTR tv155[rbp], rax - 001b9 eb 0b jmp SHORT $LN11@NcDeepCopy -$LN10@NcDeepCopy: - 001bb 48 c7 85 98 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv155[rbp], 0 -$LN11@NcDeepCopy: - -; 326 : return NULL; - - 001c6 33 c0 xor eax, eax - 001c8 eb 04 jmp SHORT $LN1@NcDeepCopy -$LN4@NcDeepCopy: - -; 327 : } -; 328 : return NewLink; - - 001ca 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] -$LN1@NcDeepCopy: - -; 329 : } -; 330 : } - - 001ce 48 8d a5 a8 01 - 00 00 lea rsp, QWORD PTR [rbp+424] - 001d5 5f pop rdi - 001d6 5d pop rbp - 001d7 c3 ret 0 -?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ENDP ; NcDeepCopyLink + 001f4 48 33 cd xor rcx, rbp + 001f7 e8 00 00 00 00 call __security_check_cookie + 001fc 48 8d a5 78 02 + 00 00 lea rsp, QWORD PTR [rbp+632] + 00203 5f pop rdi + 00204 5d pop rbp + 00205 c3 ret 0 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId _TEXT ENDS ; COMDAT text$x text$x SEGMENT -NewLink$1 = 8 -DecodeError$2 = 36 -$T3 = 264 -$T4 = 296 -$T5 = 328 -$T6 = 360 -$T7 = 392 -tv151 = 404 -tv155 = 408 -tv149 = 408 -tv131 = 408 -tv81 = 408 -Link$ = 448 -?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$0 +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv161 = 504 +tv81 = 504 +tv164 = 512 +tv130 = 520 +tv93 = 528 +tv166 = 536 +tv84 = 544 +tv171 = 552 +tv168 = 560 +tv153 = 568 +tv145 = 576 +tv172 = 584 +tv170 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR $T4[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$0 + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 text$x ENDS ; COMDAT text$x text$x SEGMENT -NewLink$1 = 8 -DecodeError$2 = 36 -$T3 = 264 -$T4 = 296 -$T5 = 328 -$T6 = 360 -$T7 = 392 -tv151 = 404 -tv155 = 408 -tv149 = 408 -tv131 = 408 -tv81 = 408 -Link$ = 448 -?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$1 +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv161 = 504 +tv81 = 504 +tv164 = 512 +tv130 = 520 +tv93 = 528 +tv166 = 536 +tv84 = 544 +tv171 = 552 +tv168 = 560 +tv153 = 568 +tv145 = 576 +tv172 = 584 +tv170 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR $T6[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$1 + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -NewLink$1 = 8 -DecodeError$2 = 36 -$T3 = 264 -$T4 = 296 -$T5 = 328 -$T6 = 360 -$T7 = 392 -tv151 = 404 -tv155 = 408 -tv149 = 408 -tv131 = 408 -tv81 = 408 -Link$ = 448 -?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$0 +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv161 = 504 +tv81 = 504 +tv164 = 512 +tv130 = 520 +tv93 = 528 +tv166 = 536 +tv84 = 544 +tv171 = 552 +tv168 = 560 +tv153 = 568 +tv145 = 576 +tv172 = 584 +tv170 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR $T4[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$0 + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -NewLink$1 = 8 -DecodeError$2 = 36 -$T3 = 264 -$T4 = 296 -$T5 = 328 -$T6 = 360 -$T7 = 392 -tv151 = 404 -tv155 = 408 -tv149 = 408 -tv131 = 408 -tv81 = 408 -Link$ = 448 -?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA PROC ; `NcDeepCopyLink'::`1'::dtor$1 +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv161 = 504 +tv81 = 504 +tv164 = 512 +tv130 = 520 +tv93 = 528 +tv166 = 536 +tv84 = 544 +tv171 = 552 +tv168 = 560 +tv153 = 568 +tv145 = 576 +tv172 = 584 +tv170 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR $T6[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$1 + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z _TEXT SEGMENT -T$ = 8 -Jmp$ = 256 -Delta$ = 264 -?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z PROC ; NcValidateJmp, COMDAT +T$1 = 8 +Block$ = 256 +Original$ = 264 +New$ = 272 +?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z PROC ; NcChangeLabelId, COMDAT -; 272 : { +; 167 : { -$LN23: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 08 01 +$LN8: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000e 55 push rbp + 0000f 57 push rdi + 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001c 48 8b fc mov rdi, rsp + 0001f b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00033 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 273 : PNATIVE_CODE_LINK T; -; 274 : if (Delta > 0) +; 168 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00023 83 bd 08 01 00 - 00 00 cmp DWORD PTR Delta$[rbp], 0 - 0002a 0f 8e a2 00 00 - 00 jle $LN10@NcValidate + 0003f 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00046 48 8b 00 mov rax, QWORD PTR [rax] + 00049 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0004d eb 0b jmp SHORT $LN4@NcChangeLa +$LN2@NcChangeLa: + 0004f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN4@NcChangeLa: + 0005a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0005f 74 4e je SHORT $LN3@NcChangeLa + 00061 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00068 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006c 48 8b 00 mov rax, QWORD PTR [rax] + 0006f 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00073 74 3a je SHORT $LN3@NcChangeLa + +; 169 : { +; 170 : if (((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_IS_REL_JMP)) && T->Label == Original) + + 00075 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00079 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007c 83 e0 01 and eax, 1 + 0007f 85 c0 test eax, eax + 00081 75 0e jne SHORT $LN6@NcChangeLa + 00083 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00087 8b 40 18 mov eax, DWORD PTR [rax+24] + 0008a 83 e0 02 and eax, 2 + 0008d 85 c0 test eax, eax + 0008f 74 1c je SHORT $LN5@NcChangeLa +$LN6@NcChangeLa: + 00091 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00095 8b 8d 08 01 00 + 00 mov ecx, DWORD PTR Original$[rbp] + 0009b 39 48 1c cmp DWORD PTR [rax+28], ecx + 0009e 75 0d jne SHORT $LN5@NcChangeLa -; 275 : { -; 276 : T = Jmp->Next; +; 171 : T->Label = New; - 00030 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Jmp$[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 89 45 08 mov QWORD PTR T$[rbp], rax -$LN21@NcValidate: -$LN2@NcValidate: + 000a0 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 000a4 8b 8d 10 01 00 + 00 mov ecx, DWORD PTR New$[rbp] + 000aa 89 48 1c mov DWORD PTR [rax+28], ecx +$LN5@NcChangeLa: -; 277 : while (Delta > 0 && T) +; 172 : } - 0003e 83 bd 08 01 00 - 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00045 7e 44 jle SHORT $LN3@NcValidate - 00047 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 0004c 74 3d je SHORT $LN3@NcValidate + 000ad eb a0 jmp SHORT $LN2@NcChangeLa +$LN3@NcChangeLa: -; 278 : { -; 279 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 173 : } - 0004e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00052 8b 40 18 mov eax, DWORD PTR [rax+24] - 00055 83 e0 01 and eax, 1 - 00058 85 c0 test eax, eax - 0005a 74 02 je SHORT $LN12@NcValidate + 000af 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000b6 5f pop rdi + 000b7 5d pop rbp + 000b8 c3 ret 0 +?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ENDP ; NcChangeLabelId +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +TotalSize$ = 4 +T$1 = 40 +Block$ = 288 +?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCalcBlockSizeInBytes, COMDAT -; 280 : continue; +; 146 : { - 0005c eb e0 jmp SHORT $LN2@NcValidate -$LN12@NcValidate: +$LN7: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 147 : ULONG TotalSize = 0; + + 00036 c7 45 04 00 00 + 00 00 mov DWORD PTR TotalSize$[rbp], 0 -; 281 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); +; 148 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0005e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00062 48 83 c0 30 add rax, 48 ; 00000030H - 00066 48 8b c8 mov rcx, rax - 00069 e8 00 00 00 00 call xed_decoded_inst_get_length - 0006e 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR Delta$[rbp] - 00074 2b c8 sub ecx, eax - 00076 8b c1 mov eax, ecx - 00078 89 85 08 01 00 - 00 mov DWORD PTR Delta$[rbp], eax + 0003d 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00044 48 8b 00 mov rax, QWORD PTR [rax] + 00047 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004b eb 0b jmp SHORT $LN4@NcCalcBloc +$LN2@NcCalcBloc: + 0004d 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00051 48 8b 00 mov rax, QWORD PTR [rax] + 00054 48 89 45 28 mov QWORD PTR T$1[rbp], rax +$LN4@NcCalcBloc: + 00058 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0005d 74 37 je SHORT $LN3@NcCalcBloc + 0005f 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00066 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 00071 74 23 je SHORT $LN3@NcCalcBloc -; 282 : T = T->Next; +; 149 : { +; 150 : if (T->Flags & CODE_FLAG_IS_LABEL) - 0007e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00082 48 8b 00 mov rax, QWORD PTR [rax] - 00085 48 89 45 08 mov QWORD PTR T$[rbp], rax + 00073 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00077 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007a 83 e0 01 and eax, 1 + 0007d 85 c0 test eax, eax + 0007f 74 02 je SHORT $LN5@NcCalcBloc -; 283 : } +; 151 : continue; - 00089 eb b3 jmp SHORT $LN21@NcValidate -$LN3@NcValidate: + 00081 eb ca jmp SHORT $LN2@NcCalcBloc +$LN5@NcCalcBloc: -; 284 : if (Delta != 0 || !T) +; 152 : TotalSize += T->RawDataSize; - 0008b 83 bd 08 01 00 - 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00092 75 07 jne SHORT $LN14@NcValidate - 00094 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00099 75 07 jne SHORT $LN13@NcValidate -$LN14@NcValidate: + 00083 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00087 8b 40 28 mov eax, DWORD PTR [rax+40] + 0008a 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] + 0008d 03 c8 add ecx, eax + 0008f 8b c1 mov eax, ecx + 00091 89 45 04 mov DWORD PTR TotalSize$[rbp], eax -; 285 : return NULL; +; 153 : } - 0009b 33 c0 xor eax, eax - 0009d e9 db 00 00 00 jmp $LN1@NcValidate -$LN13@NcValidate: -$LN4@NcValidate: + 00094 eb b7 jmp SHORT $LN2@NcCalcBloc +$LN3@NcCalcBloc: + +; 154 : return TotalSize; + + 00096 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + +; 155 : } + + 00099 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a0 5f pop rdi + 000a1 5d pop rbp + 000a2 c3 ret 0 +?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCalcBlockSizeInBytes +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z +_TEXT SEGMENT +InstructionCount$ = 4 +T$1 = 40 +Block$ = 288 +CountCombinedAsOne$ = 296 +?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcCountInstructions, COMDAT + +; 132 : { + +$LN8: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 133 : ULONG InstructionCount = 0; + + 0003a c7 45 04 00 00 + 00 00 mov DWORD PTR InstructionCount$[rbp], 0 -; 286 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) +; 134 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 000a2 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000a7 74 1b je SHORT $LN5@NcValidate - 000a9 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000ad 8b 40 18 mov eax, DWORD PTR [rax+24] - 000b0 83 e0 01 and eax, 1 - 000b3 85 c0 test eax, eax - 000b5 74 0d je SHORT $LN5@NcValidate + 00041 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00048 48 8b 00 mov rax, QWORD PTR [rax] + 0004b 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004f eb 0b jmp SHORT $LN4@NcCountIns +$LN2@NcCountIns: + 00051 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00055 48 8b 00 mov rax, QWORD PTR [rax] + 00058 48 89 45 28 mov QWORD PTR T$1[rbp], rax +$LN4@NcCountIns: + 0005c 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00061 74 55 je SHORT $LN3@NcCountIns + 00063 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0006a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006e 48 8b 00 mov rax, QWORD PTR [rax] + 00071 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 00075 74 41 je SHORT $LN3@NcCountIns + +; 135 : { +; 136 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 00077 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0007b 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007e 83 e0 01 and eax, 1 + 00081 85 c0 test eax, eax + 00083 74 02 je SHORT $LN5@NcCountIns + +; 137 : continue; + + 00085 eb ca jmp SHORT $LN2@NcCountIns +$LN5@NcCountIns: + +; 138 : if (CountCombinedAsOne && (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) && !(T->Flags & CODE_FLAG_GROUP_END)) + + 00087 83 bd 28 01 00 + 00 00 cmp DWORD PTR CountCombinedAsOne$[rbp], 0 + 0008e 74 1e je SHORT $LN6@NcCountIns + 00090 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00094 8b 40 18 mov eax, DWORD PTR [rax+24] + 00097 83 e0 08 and eax, 8 + 0009a 85 c0 test eax, eax + 0009c 74 10 je SHORT $LN6@NcCountIns + 0009e 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000a2 8b 40 18 mov eax, DWORD PTR [rax+24] + 000a5 83 e0 20 and eax, 32 ; 00000020H + 000a8 85 c0 test eax, eax + 000aa 75 02 jne SHORT $LN6@NcCountIns + +; 139 : continue; + + 000ac eb a3 jmp SHORT $LN2@NcCountIns +$LN6@NcCountIns: + +; 140 : ++InstructionCount; + + 000ae 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 000b1 ff c0 inc eax + 000b3 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax + +; 141 : } + + 000b6 eb 99 jmp SHORT $LN2@NcCountIns +$LN3@NcCountIns: + +; 142 : return InstructionCount; + + 000b8 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + +; 143 : } + + 000bb 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 +?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcCountInstructions +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +Link$ = 224 +?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z PROC ; NcUnlink, COMDAT -; 287 : T = T->Next; +; 121 : { - 000b7 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000bb 48 8b 00 mov rax, QWORD PTR [rax] - 000be 48 89 45 08 mov QWORD PTR T$[rbp], rax - 000c2 eb de jmp SHORT $LN4@NcValidate -$LN5@NcValidate: +$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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 122 : if (Link) + + 00036 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 0003e 74 4c je SHORT $LN2@NcUnlink -; 288 : return T; +; 123 : { +; 124 : if (Link->Next) - 000c4 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000c8 e9 b0 00 00 00 jmp $LN1@NcValidate + 00040 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00047 48 83 38 00 cmp QWORD PTR [rax], 0 + 0004b 74 19 je SHORT $LN3@NcUnlink -; 289 : } +; 125 : Link->Next->Prev = Link->Prev; - 000cd e9 a4 00 00 00 jmp $LN11@NcValidate -$LN10@NcValidate: + 0004d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00054 48 8b 00 mov rax, QWORD PTR [rax] + 00057 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0005e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00062 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN3@NcUnlink: -; 290 : else if (Delta < 0) +; 126 : if (Link->Prev) - 000d2 83 bd 08 01 00 - 00 00 cmp DWORD PTR Delta$[rbp], 0 - 000d9 0f 8d 97 00 00 - 00 jge $LN15@NcValidate + 00066 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0006d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00072 74 18 je SHORT $LN4@NcUnlink -; 291 : { -; 292 : T = Jmp; +; 127 : Link->Prev->Next = Link->Next; - 000df 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Jmp$[rbp] - 000e6 48 89 45 08 mov QWORD PTR T$[rbp], rax -$LN22@NcValidate: -$LN6@NcValidate: + 00074 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0007b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0007f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00086 48 8b 09 mov rcx, QWORD PTR [rcx] + 00089 48 89 08 mov QWORD PTR [rax], rcx +$LN4@NcUnlink: +$LN2@NcUnlink: -; 293 : while (T) +; 128 : } +; 129 : } - 000ea 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000ef 74 49 je SHORT $LN7@NcValidate + 0008c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00093 5f pop rdi + 00094 5d pop rbp + 00095 c3 ret 0 +?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcUnlink +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z +_TEXT SEGMENT +Link1$ = 224 +Link2$ = 232 +?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z PROC ; NcInsertLinkBefore, COMDAT -; 294 : { -; 295 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 109 : { - 000f1 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000f5 8b 40 18 mov eax, DWORD PTR [rax+24] - 000f8 83 e0 01 and eax, 1 - 000fb 85 c0 test eax, eax - 000fd 74 02 je SHORT $LN16@NcValidate +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 110 : if (Link1) + + 0003b 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR Link1$[rbp], 0 + 00043 74 5c je SHORT $LN2@NcInsertLi -; 296 : continue; +; 111 : { +; 112 : Link2->Next = Link1; - 000ff eb e9 jmp SHORT $LN6@NcValidate -$LN16@NcValidate: + 00045 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Link1$[rbp] + 00053 48 89 08 mov QWORD PTR [rax], rcx -; 297 : Delta += XedDecodedInstGetLength(&T->XedInstruction); +; 113 : Link2->Prev = Link1->Prev; - 00101 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00105 48 83 c0 30 add rax, 48 ; 00000030H - 00109 48 8b c8 mov rcx, rax - 0010c e8 00 00 00 00 call xed_decoded_inst_get_length - 00111 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR Delta$[rbp] - 00117 03 c8 add ecx, eax - 00119 8b c1 mov eax, ecx - 0011b 89 85 08 01 00 - 00 mov DWORD PTR Delta$[rbp], eax + 00056 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 0005d 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Link1$[rbp] + 00064 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00068 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 298 : if (Delta >= 0) +; 114 : Link1->Prev = Link2; - 00121 83 bd 08 01 00 - 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00128 7c 02 jl SHORT $LN17@NcValidate + 0006c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Link1$[rbp] + 00073 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link2$[rbp] + 0007a 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 299 : break; +; 115 : if (Link2->Prev) - 0012a eb 0e jmp SHORT $LN7@NcValidate -$LN17@NcValidate: + 0007e 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 00085 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0008a 74 15 je SHORT $LN3@NcInsertLi -; 300 : T = T->Prev; +; 116 : Link2->Prev->Next = Link2; - 0012c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00130 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00134 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0008c 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 00093 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00097 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link2$[rbp] + 0009e 48 89 08 mov QWORD PTR [rax], rcx +$LN3@NcInsertLi: +$LN2@NcInsertLi: -; 301 : } +; 117 : } +; 118 : } - 00138 eb b0 jmp SHORT $LN22@NcValidate -$LN7@NcValidate: + 000a1 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000a8 5f pop rdi + 000a9 5d pop rbp + 000aa c3 ret 0 +?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkBefore +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z +_TEXT SEGMENT +Link1$ = 224 +Link2$ = 232 +?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z PROC ; NcInsertLinkAfter, COMDAT -; 302 : if (Delta != 0 || !T) +; 97 : { - 0013a 83 bd 08 01 00 - 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00141 75 07 jne SHORT $LN19@NcValidate - 00143 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00148 75 04 jne SHORT $LN18@NcValidate -$LN19@NcValidate: +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 98 : if (Link1) + + 0003b 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR Link1$[rbp], 0 + 00043 74 59 je SHORT $LN2@NcInsertLi -; 303 : return NULL; +; 99 : { +; 100 : Link2->Prev = Link1; - 0014a 33 c0 xor eax, eax - 0014c eb 2f jmp SHORT $LN1@NcValidate -$LN18@NcValidate: -$LN8@NcValidate: + 00045 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Link1$[rbp] + 00053 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 304 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) +; 101 : Link2->Next = Link1->Next; - 0014e 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00153 74 1b je SHORT $LN9@NcValidate - 00155 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00159 8b 40 18 mov eax, DWORD PTR [rax+24] - 0015c 83 e0 01 and eax, 1 - 0015f 85 c0 test eax, eax - 00161 74 0d je SHORT $LN9@NcValidate + 00057 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 0005e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Link1$[rbp] + 00065 48 8b 09 mov rcx, QWORD PTR [rcx] + 00068 48 89 08 mov QWORD PTR [rax], rcx -; 305 : T = T->Next; +; 102 : Link1->Next = Link2; - 00163 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00167 48 8b 00 mov rax, QWORD PTR [rax] - 0016a 48 89 45 08 mov QWORD PTR T$[rbp], rax - 0016e eb de jmp SHORT $LN8@NcValidate -$LN9@NcValidate: + 0006b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Link1$[rbp] + 00072 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link2$[rbp] + 00079 48 89 08 mov QWORD PTR [rax], rcx -; 306 : return T; +; 103 : if (Link2->Next) - 00170 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00174 eb 07 jmp SHORT $LN1@NcValidate -$LN15@NcValidate: -$LN11@NcValidate: + 0007c 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 00083 48 83 38 00 cmp QWORD PTR [rax], 0 + 00087 74 15 je SHORT $LN3@NcInsertLi -; 307 : } -; 308 : return Jmp; +; 104 : Link2->Next->Prev = Link2; - 00176 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Jmp$[rbp] -$LN1@NcValidate: + 00089 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link2$[rbp] + 00090 48 8b 00 mov rax, QWORD PTR [rax] + 00093 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link2$[rbp] + 0009a 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN3@NcInsertLi: +$LN2@NcInsertLi: -; 309 : } +; 105 : } +; 106 : } - 0017d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00184 5f pop rdi - 00185 5d pop rbp - 00186 c3 ret 0 -?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ENDP ; NcValidateJmp + 0009e 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000a5 5f pop rdi + 000a6 5d pop rbp + 000a7 c3 ret 0 +?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT -CurrentLabelId$ = 4 -T$4 = 40 -Category$5 = 68 -OperandCount$6 = 100 -Inst$7 = 136 -Operand$8 = 168 -OperandType$9 = 196 -BranchDisplacement$10 = 228 -JmpPos$11 = 264 -$T12 = 488 -$T13 = 520 -tv163 = 536 -tv157 = 536 -__$ArrayPad$ = 544 -Block$ = 592 -?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCreateLabels, COMDAT +Block$ = 224 +Link$ = 232 +?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z PROC ; NcPrependToBlock, COMDAT -; 220 : { +; 77 : { -$LN18: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 58 02 - 00 00 sub rsp, 600 ; 00000258H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 78 - 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 20 02 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN7: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 78 : if (!Link) + + 0003b 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 00043 75 05 jne SHORT $LN2@NcPrependT -; 221 : ULONG CurrentLabelId = 0; +; 79 : return; - 00049 c7 45 04 00 00 - 00 00 mov DWORD PTR CurrentLabelId$[rbp], 0 + 00045 e9 9b 00 00 00 jmp $LN1@NcPrependT +$LN2@NcPrependT: -; 222 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) +; 80 : +; 81 : Link->Block = Block; - 00050 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00057 48 8b 00 mov rax, QWORD PTR [rax] - 0005a 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0005e eb 0b jmp SHORT $LN4@NcCreateLa -$LN2@NcCreateLa: - 00060 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00064 48 8b 00 mov rax, QWORD PTR [rax] - 00067 48 89 45 28 mov QWORD PTR T$4[rbp], rax -$LN4@NcCreateLa: - 0006b 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 00070 0f 84 07 02 00 - 00 je $LN3@NcCreateLa + 0004a 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00051 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx -; 223 : { -; 224 : if (!(T->Flags & CODE_FLAG_IS_INST)) +; 82 : Link->Next = Block->Start; - 00076 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 0007a 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007d 83 e0 04 and eax, 4 - 00080 85 c0 test eax, eax - 00082 75 02 jne SHORT $LN5@NcCreateLa + 0005c 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00063 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0006a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0006d 48 89 08 mov QWORD PTR [rax], rcx -; 225 : continue; +; 83 : Link->Prev = NULL; - 00084 eb da jmp SHORT $LN2@NcCreateLa -$LN5@NcCreateLa: + 00070 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00077 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 -; 226 : -; 227 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); +; 84 : +; 85 : if (!Block->End || !Block->Start) - 00086 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 0008a 48 83 c0 30 add rax, 48 ; 00000030H - 0008e 48 8b c8 mov rcx, rax - 00091 e8 00 00 00 00 call xed_decoded_inst_get_category - 00096 89 45 44 mov DWORD PTR Category$5[rbp], eax + 0007f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00086 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0008b 74 0d je SHORT $LN5@NcPrependT + 0008d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00094 48 83 38 00 cmp QWORD PTR [rax], 0 + 00098 75 25 jne SHORT $LN3@NcPrependT +$LN5@NcPrependT: -; 228 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) +; 86 : { +; 87 : Block->Start = Block->End = Link; - 00099 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 - 0009d 74 08 je SHORT $LN6@NcCreateLa - 0009f 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH - 000a3 74 02 je SHORT $LN6@NcCreateLa + 0009a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000a1 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000a8 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000ac 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000b3 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000ba 48 89 08 mov QWORD PTR [rax], rcx -; 229 : continue; +; 88 : } - 000a5 eb b9 jmp SHORT $LN2@NcCreateLa -$LN6@NcCreateLa: + 000bd eb 26 jmp SHORT $LN4@NcPrependT +$LN3@NcPrependT: -; 230 : -; 231 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); +; 89 : else +; 90 : { +; 91 : Block->Start->Prev = Link; - 000a7 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000ab 48 83 c0 30 add rax, 48 ; 00000030H - 000af 48 8b c8 mov rcx, rax - 000b2 e8 00 00 00 00 call xed_decoded_inst_noperands - 000b7 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax + 000bf 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000c6 48 8b 00 mov rax, QWORD PTR [rax] + 000c9 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000d0 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 232 : if (OperandCount < 1) +; 92 : Block->Start = Link; - 000ba 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 - 000be 73 02 jae SHORT $LN7@NcCreateLa + 000d4 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000db 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000e2 48 89 08 mov QWORD PTR [rax], rcx +$LN4@NcPrependT: +$LN1@NcPrependT: -; 233 : continue; +; 93 : } +; 94 : } - 000c0 eb 9e jmp SHORT $LN2@NcCreateLa -$LN7@NcCreateLa: + 000e5 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000ec 5f pop rdi + 000ed 5d pop rbp + 000ee c3 ret 0 +?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcPrependToBlock +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +Block$ = 224 +Link$ = 232 +?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z PROC ; NcAppendToBlock, COMDAT -; 234 : -; 235 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); +; 57 : { - 000c2 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000c6 48 83 c0 30 add rax, 48 ; 00000030H - 000ca 48 8b c8 mov rcx, rax - 000cd e8 00 00 00 00 call xed_decoded_inst_inst - 000d2 48 89 85 88 00 - 00 00 mov QWORD PTR Inst$7[rbp], rax +$LN7: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 58 : if (!Link) + + 0003b 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 00043 75 05 jne SHORT $LN2@NcAppendTo -; 236 : if (!Inst) +; 59 : return; - 000d9 48 83 bd 88 00 - 00 00 00 cmp QWORD PTR Inst$7[rbp], 0 - 000e1 75 05 jne SHORT $LN8@NcCreateLa + 00045 e9 9d 00 00 00 jmp $LN1@NcAppendTo +$LN2@NcAppendTo: -; 237 : continue; +; 60 : +; 61 : Link->Block = Block; - 000e3 e9 78 ff ff ff jmp $LN2@NcCreateLa -$LN8@NcCreateLa: + 0004a 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00051 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx -; 238 : -; 239 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); +; 62 : Link->Prev = Block->End; - 000e8 33 d2 xor edx, edx - 000ea 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR Inst$7[rbp] - 000f1 e8 00 00 00 00 call xed_inst_operand - 000f6 48 89 85 a8 00 - 00 00 mov QWORD PTR Operand$8[rbp], rax + 0005c 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00063 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0006a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0006e 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 240 : if (!Operand) +; 63 : Link->Next = NULL; - 000fd 48 83 bd a8 00 - 00 00 00 cmp QWORD PTR Operand$8[rbp], 0 - 00105 75 05 jne SHORT $LN9@NcCreateLa + 00072 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00079 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 241 : continue; +; 64 : +; 65 : if (!Block->End || !Block->Start) - 00107 e9 54 ff ff ff jmp $LN2@NcCreateLa -$LN9@NcCreateLa: + 00080 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00087 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0008c 74 0d je SHORT $LN5@NcAppendTo + 0008e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00095 48 83 38 00 cmp QWORD PTR [rax], 0 + 00099 75 25 jne SHORT $LN3@NcAppendTo +$LN5@NcAppendTo: -; 242 : -; 243 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); +; 66 : { +; 67 : Block->Start = Block->End = Link; - 0010c 48 8b 8d a8 00 - 00 00 mov rcx, QWORD PTR Operand$8[rbp] - 00113 e8 00 00 00 00 call xed_operand_type - 00118 89 85 c4 00 00 - 00 mov DWORD PTR OperandType$9[rbp], eax + 0009b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000a2 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000a9 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000ad 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000b4 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000bb 48 89 08 mov QWORD PTR [rax], rcx -; 244 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) +; 68 : } - 0011e 83 bd c4 00 00 - 00 02 cmp DWORD PTR OperandType$9[rbp], 2 - 00125 74 0e je SHORT $LN10@NcCreateLa - 00127 83 bd c4 00 00 - 00 03 cmp DWORD PTR OperandType$9[rbp], 3 - 0012e 74 05 je SHORT $LN10@NcCreateLa + 000be eb 27 jmp SHORT $LN4@NcAppendTo +$LN3@NcAppendTo: -; 245 : continue; +; 69 : else +; 70 : { +; 71 : Block->End->Next = Link; - 00130 e9 2b ff ff ff jmp $LN2@NcCreateLa -$LN10@NcCreateLa: + 000c0 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000c7 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000cb 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000d2 48 89 08 mov QWORD PTR [rax], rcx -; 246 : -; 247 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); +; 72 : Block->End = Link; - 00135 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00139 48 83 c0 30 add rax, 48 ; 00000030H - 0013d 48 8b c8 mov rcx, rax - 00140 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement - 00145 89 85 e4 00 00 - 00 mov DWORD PTR BranchDisplacement$10[rbp], eax + 000d5 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000dc 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 000e3 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN4@NcAppendTo: +$LN1@NcAppendTo: -; 248 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); +; 73 : } +; 74 : } - 0014b 8b 95 e4 00 00 - 00 mov edx, DWORD PTR BranchDisplacement$10[rbp] - 00151 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 00155 e8 00 00 00 00 call ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp - 0015a 48 89 85 08 01 - 00 00 mov QWORD PTR JmpPos$11[rbp], rax + 000e7 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000ee 5f pop rdi + 000ef 5d pop rbp + 000f0 c3 ret 0 +?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcAppendToBlock +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??0_NATIVE_CODE_BLOCK@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK, COMDAT + +; 51 : { -; 249 : if (!JmpPos) +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 c0 10 add rax, 16 + 00041 48 8b c8 mov rcx, rax + 00044 e8 00 00 00 00 call ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > - 00161 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR JmpPos$11[rbp], 0 - 00169 75 25 jne SHORT $LN11@NcCreateLa +; 52 : Start = End = NULL; -; 250 : { -; 251 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); + 00049 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00050 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 - 0016b 8b 4d 44 mov ecx, DWORD PTR Category$5[rbp] - 0016e e8 00 00 00 00 call xed_category_enum_t2str - 00173 44 8b 85 e4 00 - 00 00 mov r8d, DWORD PTR BranchDisplacement$10[rbp] - 0017a 48 8b d0 mov rdx, rax - 0017d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ - 00184 e8 00 00 00 00 call printf +; 53 : LabelIds.clear(); -; 252 : return FALSE; + 00066 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006d 48 83 c0 10 add rax, 16 + 00071 48 8b c8 mov rcx, rax + 00074 e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear - 00189 33 c0 xor eax, eax - 0018b e9 f2 00 00 00 jmp $LN1@NcCreateLa -$LN11@NcCreateLa: +; 54 : } -; 253 : } -; 254 : -; 255 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) + 00079 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00080 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00087 5f pop rdi + 00088 5d pop rbp + 00089 c3 ret 0 +??0_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT - 00190 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 00197 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0019c 74 2f je SHORT $LN12@NcCreateLa - 0019e 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 001a5 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 001a9 8b 40 18 mov eax, DWORD PTR [rax+24] - 001ac 83 e0 01 and eax, 1 - 001af 85 c0 test eax, eax - 001b1 74 1a je SHORT $LN12@NcCreateLa +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { -; 256 : { -; 257 : T->Label = JmpPos->Prev->Label; +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; - 001b3 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 001ba 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 001be 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 001c2 8b 40 1c mov eax, DWORD PTR [rax+28] - 001c5 89 41 1c mov DWORD PTR [rcx+28], eax + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] -; 258 : } +; 1349 : } - 001c8 e9 9a 00 00 00 jmp $LN13@NcCreateLa -$LN12@NcCreateLa: + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 -; 259 : else -; 260 : { -; 261 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); +; 1343 : constexpr _Ty1& _Get_first() noexcept { - 001cd b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 001d2 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 001d7 48 89 85 08 02 - 00 00 mov QWORD PTR $T13[rbp], rax - 001de 48 83 bd 08 02 - 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e6 74 1f je SHORT $LN15@NcCreateLa - 001e8 4c 8b 85 50 02 - 00 00 mov r8, QWORD PTR Block$[rbp] - 001ef 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] - 001f2 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 001fe 48 89 85 18 02 - 00 00 mov QWORD PTR tv157[rbp], rax - 00205 eb 0b jmp SHORT $LN16@NcCreateLa -$LN15@NcCreateLa: - 00207 48 c7 85 18 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv157[rbp], 0 -$LN16@NcCreateLa: - 00212 48 8b 85 18 02 - 00 00 mov rax, QWORD PTR tv157[rbp] - 00219 48 89 85 e8 01 - 00 00 mov QWORD PTR $T12[rbp], rax - 00220 48 8b 95 e8 01 - 00 00 mov rdx, QWORD PTR $T12[rbp] - 00227 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR JmpPos$11[rbp] - 0022e e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; -; 262 : Block->LabelIds.push_back(CurrentLabelId); + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] - 00233 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0023a 48 83 c0 10 add rax, 16 - 0023e 48 89 85 18 02 - 00 00 mov QWORD PTR tv163[rbp], rax - 00245 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] - 00249 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR tv163[rbp] - 00250 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back +; 1345 : } -; 263 : T->Label = CurrentLabelId; + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ PROC ; std::_Vector_val >::_Vector_val >, COMDAT - 00255 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00259 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] - 0025c 89 48 1c mov DWORD PTR [rax+28], ecx +; 375 : _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} -; 264 : ++CurrentLabelId; +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00051 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 48 c7 40 10 00 + 00 00 00 mov QWORD PTR [rax+16], 0 + 00060 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 + 0006f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00076 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f c3 ret 0 +??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ENDP ; std::_Vector_val >::_Vector_val > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT - 0025f 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] - 00262 ff c0 inc eax - 00264 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax -$LN13@NcCreateLa: +; 1735 : const _Alty& _Getal() const noexcept { -; 265 : } -; 266 : T->Flags |= CODE_FLAG_IS_REL_JMP; +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1736 : return _Mypair._Get_first(); - 00267 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 0026b 8b 40 18 mov eax, DWORD PTR [rax+24] - 0026e 83 c8 02 or eax, 2 - 00271 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 00275 89 41 18 mov DWORD PTR [rcx+24], eax + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 -; 267 : } +; 1737 : } - 00278 e9 e3 fd ff ff jmp $LN2@NcCreateLa -$LN3@NcCreateLa: + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 -; 268 : return TRUE; +; 1731 : _Alty& _Getal() noexcept { - 0027d b8 01 00 00 00 mov eax, 1 -$LN1@NcCreateLa: +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); -; 269 : } + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 - 00282 48 8b f8 mov rdi, rax - 00285 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00289 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 00290 e8 00 00 00 00 call _RTC_CheckStackVars - 00295 48 8b c7 mov rax, rdi - 00298 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0029f 48 33 cd xor rcx, rbp - 002a2 e8 00 00 00 00 call __security_check_cookie - 002a7 48 8d a5 38 02 - 00 00 lea rsp, QWORD PTR [rbp+568] - 002ae 5f pop rdi - 002af 5d pop rbp - 002b0 c3 ret 0 -?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCreateLabels +; 1733 : } + + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS -; COMDAT text$x -text$x SEGMENT -CurrentLabelId$ = 4 -T$4 = 40 -Category$5 = 68 -OperandCount$6 = 100 -Inst$7 = 136 -Operand$8 = 168 -OperandType$9 = 196 -BranchDisplacement$10 = 228 -JmpPos$11 = 264 -$T12 = 488 -$T13 = 520 -tv163 = 536 -tv157 = 536 -__$ArrayPad$ = 544 -Block$ = 592 -?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcCreateLabels'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR $T13[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcCreateLabels'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -CurrentLabelId$ = 4 -T$4 = 40 -Category$5 = 68 -OperandCount$6 = 100 -Inst$7 = 136 -Operand$8 = 168 -OperandType$9 = 196 -BranchDisplacement$10 = 228 -JmpPos$11 = 264 -$T12 = 488 -$T13 = 520 -tv163 = 536 -tv157 = 536 -__$ArrayPad$ = 544 -Block$ = 592 -?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcCreateLabels'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00019 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR $T13[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcCreateLabels'::`1'::dtor$0 -text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z _TEXT SEGMENT -T$1 = 8 -Link$ = 256 -Block$ = 264 -FixLabels$ = 272 -?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockBefore, COMDAT +_Lock$ = 4 +_Pnext$ = 40 +_Pnextptr$4 = 72 +__$ArrayPad$ = 280 +this$ = 320 +_First$ = 328 +_Last$ = 336 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT -; 200 : { +; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range -$LN10: - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d +$LN9: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00011 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 201 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) +; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1713 : _Lockit _Lock(_LOCK_DEBUG); - 00029 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00031 74 33 je SHORT $LN6@NcInsertBl - 00033 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0003a 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 0003f 74 25 je SHORT $LN6@NcInsertBl - 00041 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00049 74 1b je SHORT $LN6@NcInsertBl - 0004b 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00052 48 83 38 00 cmp QWORD PTR [rax], 0 - 00056 74 0e je SHORT $LN6@NcInsertBl - 00058 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00064 75 07 jne SHORT $LN5@NcInsertBl -$LN6@NcInsertBl: + 00051 ba 03 00 00 00 mov edx, 3 + 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005a ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1714 : +; 1715 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; + + 00060 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax +$LN2@Orphan_ran: -; 202 : return FALSE; +; 1716 : while (*_Pnext) { - 00066 33 c0 xor eax, eax - 00068 e9 0e 01 00 00 jmp $LN1@NcInsertBl -$LN5@NcInsertBl: + 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00076 48 83 38 00 cmp QWORD PTR [rax], 0 + 0007a 74 5c je SHORT $LN3@Orphan_ran -; 203 : -; 204 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) +; 1717 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; - 0006d 83 bd 10 01 00 - 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 00074 74 4b je SHORT $LN7@NcInsertBl - 00076 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0007d 48 83 c0 10 add rax, 16 - 00081 48 8b c8 mov rcx, rax - 00084 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 00089 48 85 c0 test rax, rax - 0008c 74 33 je SHORT $LN7@NcInsertBl - 0008e 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00095 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00099 48 83 c0 10 add rax, 16 - 0009d 48 8b c8 mov rcx, rax - 000a0 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000a5 48 85 c0 test rax, rax - 000a8 74 17 je SHORT $LN7@NcInsertBl + 0007c 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00087 48 89 45 48 mov QWORD PTR _Pnextptr$4[rbp], rax -; 205 : NcFixLabelsForBlocks(Link->Block, Block); +; 1718 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator - 000aa 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR Block$[rbp] - 000b1 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000b8 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 000bc e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks -$LN7@NcInsertBl: + 0008b 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00092 48 39 45 48 cmp QWORD PTR _Pnextptr$4[rbp], rax + 00096 72 0d jb SHORT $LN6@Orphan_ran + 00098 48 8b 45 48 mov rax, QWORD PTR _Pnextptr$4[rbp] + 0009c 48 39 85 50 01 + 00 00 cmp QWORD PTR _Last$[rbp], rax + 000a3 73 11 jae SHORT $LN4@Orphan_ran +$LN6@Orphan_ran: -; 206 : -; 207 : if (Link->Prev) +; 1719 : _Pnext = &(*_Pnext)->_Mynextiter; - 000c1 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000c8 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 000cd 74 18 je SHORT $LN8@NcInsertBl + 000a5 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000a9 48 8b 00 mov rax, QWORD PTR [rax] + 000ac 48 83 c0 08 add rax, 8 + 000b0 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax -; 208 : Link->Prev->Next = Block->Start; +; 1720 : } else { // orphan the iterator - 000cf 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000d6 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000da 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 000e1 48 8b 09 mov rcx, QWORD PTR [rcx] - 000e4 48 89 08 mov QWORD PTR [rax], rcx -$LN8@NcInsertBl: + 000b4 eb 20 jmp SHORT $LN5@Orphan_ran +$LN4@Orphan_ran: -; 209 : Block->Start->Prev = Link->Prev; +; 1721 : (*_Pnext)->_Myproxy = nullptr; - 000e7 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000ee 48 8b 00 mov rax, QWORD PTR [rax] - 000f1 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000f8 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000fc 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000b6 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000ba 48 8b 00 mov rax, QWORD PTR [rax] + 000bd 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 210 : Block->End->Next = Link; +; 1722 : *_Pnext = (*_Pnext)->_Mynextiter; - 00100 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00107 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0010b 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 00112 48 89 08 mov QWORD PTR [rax], rcx + 000c4 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000c8 48 8b 00 mov rax, QWORD PTR [rax] + 000cb 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$[rbp] + 000cf 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000d3 48 89 01 mov QWORD PTR [rcx], rax +$LN5@Orphan_ran: -; 211 : Link->Prev = Block->End; +; 1723 : } +; 1724 : } - 00115 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0011c 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00123 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00127 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000d6 eb 9a jmp SHORT $LN2@Orphan_ran +$LN3@Orphan_ran: -; 212 : -; 213 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 1725 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1726 : (void) _First; +; 1727 : (void) _Last; +; 1728 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1729 : } - 0012b 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00132 48 8b 00 mov rax, QWORD PTR [rax] - 00135 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00139 eb 0b jmp SHORT $LN4@NcInsertBl -$LN2@NcInsertBl: - 0013b 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0013f 48 8b 00 mov rax, QWORD PTR [rax] - 00142 48 89 45 08 mov QWORD PTR T$1[rbp], rax -$LN4@NcInsertBl: - 00146 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0014b 74 29 je SHORT $LN3@NcInsertBl - 0014d 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00154 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00158 48 8b 00 mov rax, QWORD PTR [rax] - 0015b 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0015f 74 15 je SHORT $LN3@NcInsertBl + 000d8 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 000dc ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 000e2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e6 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData + 000ed e8 00 00 00 00 call _RTC_CheckStackVars + 000f2 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000f9 48 33 cd xor rcx, rbp + 000fc e8 00 00 00 00 call __security_check_cookie + 00101 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00108 5f pop rdi + 00109 5d pop rbp + 0010a c3 ret 0 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ +_TEXT SEGMENT +?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ PROC ; std::vector >::_Xlength, COMDAT -; 214 : T->Block = Link->Block; +; 1703 : [[noreturn]] static void _Xlength() { - 00161 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00165 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 0016c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00170 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00174 eb c5 jmp SHORT $LN2@NcInsertBl -$LN3@NcInsertBl: +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 215 : -; 216 : return TRUE; +; 1704 : _Xlength_error("vector too long"); - 00176 b8 01 00 00 00 mov eax, 1 -$LN1@NcInsertBl: + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ + 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error +$LN2@Xlength: -; 217 : } +; 1705 : } - 0017b 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00182 5f pop rdi - 00183 5d pop rbp - 00184 c3 ret 0 -?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockBefore + 00036 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ENDP ; std::vector >::_Xlength _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z _TEXT SEGMENT -T$1 = 8 -Link$ = 256 -Block$ = 264 -FixLabels$ = 272 -?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockAfter, COMDAT - -; 180 : { - -$LN10: - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +_Newvec$ = 376 +_Newsize$ = 384 +_Newcapacity$ = 392 +?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z PROC ; std::vector >::_Change_array, COMDAT -; 181 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) +; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { - 00029 48 83 bd 00 01 - 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00031 74 47 je SHORT $LN6@NcInsertBl - 00033 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0003a 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 0003f 74 39 je SHORT $LN6@NcInsertBl - 00041 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00049 74 2f je SHORT $LN6@NcInsertBl - 0004b 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00052 48 83 38 00 cmp QWORD PTR [rax], 0 - 00056 74 22 je SHORT $LN6@NcInsertBl - 00058 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00064 74 14 je SHORT $LN6@NcInsertBl - 00066 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0006d 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00074 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 00078 75 07 jne SHORT $LN5@NcInsertBl -$LN6@NcInsertBl: +$LN4: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 182 : return FALSE; +; 1667 : // orphan all iterators, discard old array, acquire new array +; 1668 : auto& _My_data = _Mypair._Myval2; - 0007a 33 c0 xor eax, eax - 0007c e9 0b 01 00 00 jmp $LN1@NcInsertBl -$LN5@NcInsertBl: + 00045 48 8b 85 70 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 183 : -; 184 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) +; 1669 : pointer& _Myfirst = _My_data._Myfirst; - 00081 83 bd 10 01 00 - 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 00088 74 4b je SHORT $LN7@NcInsertBl - 0008a 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00091 48 83 c0 10 add rax, 16 - 00095 48 8b c8 mov rcx, rax - 00098 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 0009d 48 85 c0 test rax, rax - 000a0 74 33 je SHORT $LN7@NcInsertBl - 000a2 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000a9 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000ad 48 83 c0 10 add rax, 16 - 000b1 48 8b c8 mov rcx, rax - 000b4 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000b9 48 85 c0 test rax, rax - 000bc 74 17 je SHORT $LN7@NcInsertBl + 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 08 add rax, 8 + 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 185 : NcFixLabelsForBlocks(Link->Block, Block); +; 1670 : pointer& _Mylast = _My_data._Mylast; - 000be 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR Block$[rbp] - 000c5 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000cc 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 000d0 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks -$LN7@NcInsertBl: + 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00060 48 83 c0 10 add rax, 16 + 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 186 : -; 187 : if (Link->Next) +; 1671 : pointer& _Myend = _My_data._Myend; - 000d5 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000dc 48 83 38 00 cmp QWORD PTR [rax], 0 - 000e0 74 19 je SHORT $LN8@NcInsertBl + 00068 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0006c 48 83 c0 18 add rax, 24 + 00070 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 188 : Link->Next->Prev = Block->End; +; 1672 : +; 1673 : _My_data._Orphan_all(); - 000e2 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 000e9 48 8b 00 mov rax, QWORD PTR [rax] - 000ec 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 000f3 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000f7 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN8@NcInsertBl: + 00074 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00078 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 189 : Block->End->Next = Link->Next; +; 1674 : +; 1675 : if (_Myfirst) { // destroy and deallocate old array - 000fb 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00102 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00106 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 0010d 48 8b 09 mov rcx, QWORD PTR [rcx] - 00110 48 89 08 mov QWORD PTR [rax], rcx + 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00081 48 83 38 00 cmp QWORD PTR [rax], 0 + 00085 74 71 je SHORT $LN2@Change_arr -; 190 : Block->Start->Prev = Link; +; 1676 : _Destroy(_Myfirst, _Mylast); - 00113 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0011a 48 8b 00 mov rax, QWORD PTR [rax] - 0011d 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 00124 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0008b 4c 8b 00 mov r8, QWORD PTR [rax] + 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00092 48 8b 10 mov rdx, QWORD PTR [rax] + 00095 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009c e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 191 : Link->Next = Block->Start; +; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 00128 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0012f 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00136 48 8b 09 mov rcx, QWORD PTR [rcx] - 00139 48 89 08 mov QWORD PTR [rax], rcx + 000a1 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a8 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000ad 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000b4 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000b8 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000bc 48 8b 09 mov rcx, QWORD PTR [rcx] + 000bf 48 8b 00 mov rax, QWORD PTR [rax] + 000c2 48 2b c1 sub rax, rcx + 000c5 48 c1 f8 02 sar rax, 2 + 000c9 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000d0 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000d4 48 8b 00 mov rax, QWORD PTR [rax] + 000d7 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000de 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000e5 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000ec 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000f3 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate +$LN2@Change_arr: -; 192 : -; 193 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 1678 : } +; 1679 : +; 1680 : _Myfirst = _Newvec; - 0013c 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00143 48 8b 00 mov rax, QWORD PTR [rax] - 00146 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 0014a eb 0b jmp SHORT $LN4@NcInsertBl -$LN2@NcInsertBl: - 0014c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00150 48 8b 00 mov rax, QWORD PTR [rax] - 00153 48 89 45 08 mov QWORD PTR T$1[rbp], rax -$LN4@NcInsertBl: - 00157 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0015c 74 29 je SHORT $LN3@NcInsertBl - 0015e 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00165 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00169 48 8b 00 mov rax, QWORD PTR [rax] - 0016c 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00170 74 15 je SHORT $LN3@NcInsertBl + 000f8 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000fc 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00103 48 89 08 mov QWORD PTR [rax], rcx -; 194 : T->Block = Link->Block; +; 1681 : _Mylast = _Newvec + _Newsize; - 00172 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00176 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 0017d 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00181 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00185 eb c5 jmp SHORT $LN2@NcInsertBl -$LN3@NcInsertBl: + 00106 48 8b 85 78 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 0010d 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR _Newsize$[rbp] + 00114 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00118 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] + 0011c 48 89 01 mov QWORD PTR [rcx], rax -; 195 : -; 196 : return TRUE; +; 1682 : _Myend = _Newvec + _Newcapacity; - 00187 b8 01 00 00 00 mov eax, 1 -$LN1@NcInsertBl: + 0011f 48 8b 85 78 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 00126 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR _Newcapacity$[rbp] + 0012d 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00131 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] + 00135 48 89 01 mov QWORD PTR [rcx], rax -; 197 : } +; 1683 : } - 0018c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00193 5f pop rdi - 00194 5d pop rbp - 00195 c3 ret 0 -?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockAfter + 00138 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 0013f 5f pop rdi + 00140 5d pop rbp + 00141 c3 ret 0 +?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ENDP ; std::vector >::_Change_array _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z _TEXT SEGMENT -T$1 = 8 -$T2 = 228 -$T3 = 264 -$T4 = 312 -$T5 = 344 -$T6 = 392 -$T7 = 424 -$T8 = 472 -$T9 = 516 -tv178 = 532 -tv176 = 536 -tv89 = 536 -tv181 = 544 -tv138 = 552 -tv133 = 560 -tv183 = 568 -tv92 = 576 -tv188 = 584 -tv161 = 592 -tv153 = 600 -tv193 = 608 -tv159 = 616 -tv165 = 624 -Block1$ = 672 -Block2$ = 680 -?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcFixLabelsForBlocks, COMDAT +_Oldcapacity$ = 8 +_Geometric$ = 40 +tv67 = 248 +this$ = 288 +_Newsize$ = 296 +?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z PROC ; std::vector >::_Calculate_growth, COMDAT -; 169 : { +; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { -$LN17: +$LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec a8 02 - 00 00 sub rsp, 680 ; 000002a8H + 0000c 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 c7 85 04 02 00 - 00 00 00 00 00 mov DWORD PTR $T9[rbp], 0 - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 170 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) - - 0002e 48 8b 85 a8 02 - 00 00 mov rax, QWORD PTR Block2$[rbp] - 00035 48 8b 00 mov rax, QWORD PTR [rax] - 00038 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 0003c eb 0b jmp SHORT $LN4@NcFixLabel -$LN2@NcFixLabel: - 0003e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 45 08 mov QWORD PTR T$1[rbp], rax -$LN4@NcFixLabel: - 00049 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0004e 0f 84 11 02 00 - 00 je $LN3@NcFixLabel - 00054 48 8b 85 a8 02 - 00 00 mov rax, QWORD PTR Block2$[rbp] - 0005b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0005f 48 8b 00 mov rax, QWORD PTR [rax] - 00062 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00066 0f 84 f9 01 00 - 00 je $LN3@NcFixLabel - -; 171 : { -; 172 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) - - 0006c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00070 8b 40 18 mov eax, DWORD PTR [rax+24] - 00073 83 e0 01 and eax, 1 - 00076 85 c0 test eax, eax - 00078 0f 84 48 01 00 - 00 je $LN7@NcFixLabel - 0007e 48 8d 85 08 01 - 00 00 lea rax, QWORD PTR $T3[rbp] - 00085 48 89 85 38 01 - 00 00 mov QWORD PTR $T4[rbp], rax - 0008c 48 8b 85 a0 02 - 00 00 mov rax, QWORD PTR Block1$[rbp] - 00093 48 83 c0 10 add rax, 16 - 00097 48 89 85 18 02 - 00 00 mov QWORD PTR tv89[rbp], rax - 0009e 48 8b 95 38 01 - 00 00 mov rdx, QWORD PTR $T4[rbp] - 000a5 48 8b 8d 18 02 - 00 00 mov rcx, QWORD PTR tv89[rbp] - 000ac e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 000b1 48 89 85 20 02 - 00 00 mov QWORD PTR tv181[rbp], rax - 000b8 48 8b 85 20 02 - 00 00 mov rax, QWORD PTR tv181[rbp] - 000bf 48 89 85 28 02 - 00 00 mov QWORD PTR tv138[rbp], rax - 000c6 48 8d 85 58 01 - 00 00 lea rax, QWORD PTR $T5[rbp] - 000cd 48 89 85 88 01 - 00 00 mov QWORD PTR $T6[rbp], rax - 000d4 48 8b 85 a0 02 - 00 00 mov rax, QWORD PTR Block1$[rbp] - 000db 48 83 c0 10 add rax, 16 - 000df 48 89 85 30 02 - 00 00 mov QWORD PTR tv133[rbp], rax - 000e6 48 8b 95 88 01 - 00 00 mov rdx, QWORD PTR $T6[rbp] - 000ed 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR tv133[rbp] - 000f4 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin - 000f9 48 89 85 38 02 - 00 00 mov QWORD PTR tv183[rbp], rax - 00100 48 8b 85 38 02 - 00 00 mov rax, QWORD PTR tv183[rbp] - 00107 48 89 85 40 02 - 00 00 mov QWORD PTR tv92[rbp], rax - 0010e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00112 48 83 c0 1c add rax, 28 - 00116 4c 8b c8 mov r9, rax - 00119 4c 8b 85 28 02 - 00 00 mov r8, QWORD PTR tv138[rbp] - 00120 48 8b 95 40 02 - 00 00 mov rdx, QWORD PTR tv92[rbp] - 00127 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T7[rbp] - 0012e e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> - 00133 48 89 85 48 02 - 00 00 mov QWORD PTR tv188[rbp], rax - 0013a 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 00140 83 c8 01 or eax, 1 - 00143 89 85 04 02 00 - 00 mov DWORD PTR $T9[rbp], eax - 00149 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR tv188[rbp] - 00150 48 89 85 50 02 - 00 00 mov QWORD PTR tv161[rbp], rax - 00157 48 8b 85 a0 02 - 00 00 mov rax, QWORD PTR Block1$[rbp] - 0015e 48 83 c0 10 add rax, 16 - 00162 48 89 85 58 02 - 00 00 mov QWORD PTR tv153[rbp], rax - 00169 48 8d 95 d8 01 - 00 00 lea rdx, QWORD PTR $T8[rbp] - 00170 48 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR tv153[rbp] - 00177 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 0017c 48 89 85 60 02 - 00 00 mov QWORD PTR tv193[rbp], rax - 00183 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 00189 83 c8 02 or eax, 2 - 0018c 89 85 04 02 00 - 00 mov DWORD PTR $T9[rbp], eax - 00192 48 8b 85 60 02 - 00 00 mov rax, QWORD PTR tv193[rbp] - 00199 48 89 85 68 02 - 00 00 mov QWORD PTR tv159[rbp], rax - 001a0 48 8b 95 68 02 - 00 00 mov rdx, QWORD PTR tv159[rbp] - 001a7 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR tv161[rbp] - 001ae e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= - 001b3 0f b6 c0 movzx eax, al - 001b6 85 c0 test eax, eax - 001b8 74 0c je SHORT $LN7@NcFixLabel - 001ba c7 85 70 02 00 - 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 - 001c4 eb 0a jmp SHORT $LN8@NcFixLabel -$LN7@NcFixLabel: - 001c6 c7 85 70 02 00 - 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 -$LN8@NcFixLabel: - 001d0 0f b6 85 70 02 - 00 00 movzx eax, BYTE PTR tv165[rbp] - 001d7 88 85 e4 00 00 - 00 mov BYTE PTR $T2[rbp], al - 001dd 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 001e3 83 e0 02 and eax, 2 - 001e6 85 c0 test eax, eax - 001e8 74 13 je SHORT $LN15@NcFixLabel - 001ea 83 a5 04 02 00 - 00 fd and DWORD PTR $T9[rbp], -3 - 001f1 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T8[rbp] - 001f8 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN15@NcFixLabel: - 001fd 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 00203 83 e0 01 and eax, 1 - 00206 85 c0 test eax, eax - 00208 74 13 je SHORT $LN16@NcFixLabel - 0020a 83 a5 04 02 00 - 00 fe and DWORD PTR $T9[rbp], -2 - 00211 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T7[rbp] - 00218 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN16@NcFixLabel: - 0021d 0f b6 85 e4 00 - 00 00 movzx eax, BYTE PTR $T2[rbp] - 00224 85 c0 test eax, eax - 00226 74 38 je SHORT $LN5@NcFixLabel + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1616 : // given _Oldcapacity and _Newsize, calculate geometric growth +; 1617 : const size_type _Oldcapacity = capacity(); + + 0003b 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00042 e8 00 00 00 00 call ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity + 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax -; 173 : { -; 174 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); +; 1618 : +; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { - 00228 48 8b 8d a0 02 - 00 00 mov rcx, QWORD PTR Block1$[rbp] - 0022f e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 00234 89 85 14 02 00 - 00 mov DWORD PTR tv178[rbp], eax - 0023a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0023e 8b 40 1c mov eax, DWORD PTR [rax+28] - 00241 89 85 18 02 00 - 00 mov DWORD PTR tv176[rbp], eax - 00247 44 8b 85 14 02 - 00 00 mov r8d, DWORD PTR tv178[rbp] - 0024e 8b 95 18 02 00 - 00 mov edx, DWORD PTR tv176[rbp] - 00254 48 8b 8d a8 02 - 00 00 mov rcx, QWORD PTR Block2$[rbp] - 0025b e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId -$LN5@NcFixLabel: + 0004b 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00052 e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size + 00057 48 89 85 f8 00 + 00 00 mov QWORD PTR tv67[rbp], rax + 0005e 33 d2 xor edx, edx + 00060 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 00064 b9 02 00 00 00 mov ecx, 2 + 00069 48 f7 f1 div rcx + 0006c 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv67[rbp] + 00073 48 2b c8 sub rcx, rax + 00076 48 8b c1 mov rax, rcx + 00079 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax + 0007d 76 09 jbe SHORT $LN2@Calculate_ -; 175 : } -; 176 : } +; 1620 : return _Newsize; // geometric growth would overflow - 00260 e9 d9 fd ff ff jmp $LN2@NcFixLabel -$LN3@NcFixLabel: + 0007f 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 00086 eb 36 jmp SHORT $LN1@Calculate_ +$LN2@Calculate_: -; 177 : } +; 1621 : } +; 1622 : +; 1623 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; - 00265 48 8d a5 88 02 - 00 00 lea rsp, QWORD PTR [rbp+648] - 0026c 5f pop rdi - 0026d 5d pop rbp - 0026e c3 ret 0 -?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcFixLabelsForBlocks + 00088 33 d2 xor edx, edx + 0008a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0008e b9 02 00 00 00 mov ecx, 2 + 00093 48 f7 f1 div rcx + 00096 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] + 0009a 48 03 c8 add rcx, rax + 0009d 48 8b c1 mov rax, rcx + 000a0 48 89 45 28 mov QWORD PTR _Geometric$[rbp], rax + +; 1624 : +; 1625 : if (_Geometric < _Newsize) { + + 000a4 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 000ab 48 39 45 28 cmp QWORD PTR _Geometric$[rbp], rax + 000af 73 09 jae SHORT $LN3@Calculate_ + +; 1626 : return _Newsize; // geometric growth would be insufficient + + 000b1 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 000b8 eb 04 jmp SHORT $LN1@Calculate_ +$LN3@Calculate_: + +; 1627 : } +; 1628 : +; 1629 : return _Geometric; // geometric growth is sufficient + + 000ba 48 8b 45 28 mov rax, QWORD PTR _Geometric$[rbp] +$LN1@Calculate_: + +; 1630 : } + + 000be 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 +?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ENDP ; std::vector >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv168 = 552 -tv153 = 560 -tv145 = 568 -tv170 = 576 -tv151 = 584 -__$ArrayPad$ = 592 -Block$ = 640 -?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcGenUnusedLabelId, COMDAT +this$ = 224 +_First$ = 232 +_Last$ = 240 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 151 : { +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator -$LN9: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 88 02 - 00 00 sub rsp, 648 ; 00000288H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 a8 - 02 00 00 mov rcx, QWORD PTR [rsp+680] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 50 02 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); -; 152 : ULONG ReturnLabelId = rand(); + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > - 00049 ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 0004f 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax -$LN2@NcGenUnuse: +; 1613 : } -; 153 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z +_TEXT SEGMENT +$T1 = 196 +this$ = 256 +_First$ = 264 +_Last$ = 272 +_Dest$ = 280 +?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z PROC ; std::vector >::_Umove_if_noexcept, COMDAT - 00052 48 8d 85 08 01 - 00 00 lea rax, QWORD PTR $T5[rbp] - 00059 48 89 85 38 01 - 00 00 mov QWORD PTR $T6[rbp], rax - 00060 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00067 48 83 c0 10 add rax, 16 - 0006b 48 89 85 f8 01 - 00 00 mov QWORD PTR tv81[rbp], rax - 00072 48 8b 95 38 01 - 00 00 mov rdx, QWORD PTR $T6[rbp] - 00079 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR tv81[rbp] - 00080 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 00085 48 89 85 00 02 - 00 00 mov QWORD PTR tv164[rbp], rax - 0008c 48 8b 85 00 02 - 00 00 mov rax, QWORD PTR tv164[rbp] - 00093 48 89 85 08 02 - 00 00 mov QWORD PTR tv130[rbp], rax - 0009a 48 8d 85 58 01 - 00 00 lea rax, QWORD PTR $T7[rbp] - 000a1 48 89 85 88 01 - 00 00 mov QWORD PTR $T8[rbp], rax - 000a8 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000af 48 83 c0 10 add rax, 16 - 000b3 48 89 85 10 02 - 00 00 mov QWORD PTR tv93[rbp], rax - 000ba 48 8b 95 88 01 - 00 00 mov rdx, QWORD PTR $T8[rbp] - 000c1 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv93[rbp] - 000c8 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin - 000cd 48 89 85 18 02 - 00 00 mov QWORD PTR tv166[rbp], rax - 000d4 48 8b 85 18 02 - 00 00 mov rax, QWORD PTR tv166[rbp] - 000db 48 89 85 20 02 - 00 00 mov QWORD PTR tv84[rbp], rax - 000e2 4c 8d 4d 04 lea r9, QWORD PTR ReturnLabelId$[rbp] - 000e6 4c 8b 85 08 02 - 00 00 mov r8, QWORD PTR tv130[rbp] - 000ed 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR tv84[rbp] - 000f4 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 000fb e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> - 00100 48 89 85 28 02 - 00 00 mov QWORD PTR tv168[rbp], rax - 00107 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR tv168[rbp] - 0010e 48 89 85 30 02 - 00 00 mov QWORD PTR tv153[rbp], rax - 00115 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0011c 48 83 c0 10 add rax, 16 - 00120 48 89 85 38 02 - 00 00 mov QWORD PTR tv145[rbp], rax - 00127 48 8d 95 d8 01 - 00 00 lea rdx, QWORD PTR $T10[rbp] - 0012e 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR tv145[rbp] - 00135 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 0013a 48 89 85 40 02 - 00 00 mov QWORD PTR tv170[rbp], rax - 00141 48 8b 85 40 02 - 00 00 mov rax, QWORD PTR tv170[rbp] - 00148 48 89 85 48 02 - 00 00 mov QWORD PTR tv151[rbp], rax - 0014f 48 8b 95 48 02 - 00 00 mov rdx, QWORD PTR tv151[rbp] - 00156 48 8b 8d 30 02 - 00 00 mov rcx, QWORD PTR tv153[rbp] - 0015d e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= - 00162 88 85 e4 00 00 - 00 mov BYTE PTR $T4[rbp], al - 00168 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 0016f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00174 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 0017b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00180 0f b6 85 e4 00 - 00 00 movzx eax, BYTE PTR $T4[rbp] - 00187 85 c0 test eax, eax - 00189 74 0e je SHORT $LN3@NcGenUnuse +; 1605 : void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { + +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00022 48 8b fc mov rdi, rsp + 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 154 : ReturnLabelId = rand(); +; 1606 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator +; 1607 : _Umove_if_noexcept1(_First, _Last, _Dest, - 0018b ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 00191 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax - 00194 e9 b9 fe ff ff jmp $LN2@NcGenUnuse -$LN3@NcGenUnuse: + 00045 48 8d 85 c4 00 + 00 00 lea rax, QWORD PTR $T1[rbp] + 0004c 48 8b f8 mov rdi, rax + 0004f 33 c0 xor eax, eax + 00051 b9 01 00 00 00 mov ecx, 1 + 00056 f3 aa rep stosb + 00058 0f b6 85 c4 00 + 00 00 movzx eax, BYTE PTR $T1[rbp] + 0005f 88 44 24 20 mov BYTE PTR [rsp+32], al + 00063 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR _Dest$[rbp] + 0006a 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 00071 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00078 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007f e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 -; 155 : Block->LabelIds.push_back(ReturnLabelId); +; 1608 : bool_constant, negation>>>{}); +; 1609 : } - 00199 48 8b 85 80 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001a0 48 83 c0 10 add rax, 16 - 001a4 48 89 85 f8 01 - 00 00 mov QWORD PTR tv161[rbp], rax - 001ab 48 8d 55 04 lea rdx, QWORD PTR ReturnLabelId$[rbp] - 001af 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR tv161[rbp] - 001b6 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 00084 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ENDP ; std::vector >::_Umove_if_noexcept +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +__formal$ = 256 +?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z PROC ; std::vector >::_Umove_if_noexcept1, COMDAT + +; 1595 : void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { + +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 156 : return ReturnLabelId; +; 1596 : // move [_First, _Last) to raw _Dest, using allocator +; 1597 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 001bb 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] + 00045 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00051 4c 8b c8 mov r9, rax + 00054 4c 8b 85 f8 00 + 00 00 mov r8, QWORD PTR _Dest$[rbp] + 0005b 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00062 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 157 : } +; 1598 : } - 001be 8b f8 mov edi, eax - 001c0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001c4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001cb e8 00 00 00 00 call _RTC_CheckStackVars - 001d0 8b c7 mov eax, edi - 001d2 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001d9 48 33 cd xor rcx, rbp - 001dc e8 00 00 00 00 call __security_check_cookie - 001e1 48 8d a5 68 02 - 00 00 lea rsp, QWORD PTR [rbp+616] - 001e8 5f pop rdi - 001e9 5d pop rbp - 001ea c3 ret 0 -?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId + 0006e 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 +?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ENDP ; std::vector >::_Umove_if_noexcept1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z _TEXT SEGMENT -T$1 = 8 -Block$ = 256 -Original$ = 264 -New$ = 272 -?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z PROC ; NcChangeLabelId, COMDAT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT -; 160 : { +; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator -$LN8: - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 161 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 1592 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00028 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0002f 48 8b 00 mov rax, QWORD PTR [rax] - 00032 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00036 eb 0b jmp SHORT $LN4@NcChangeLa -$LN2@NcChangeLa: - 00038 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0003c 48 8b 00 mov rax, QWORD PTR [rax] - 0003f 48 89 45 08 mov QWORD PTR T$1[rbp], rax -$LN4@NcChangeLa: - 00043 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00048 74 4e je SHORT $LN3@NcChangeLa - 0004a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00051 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00055 48 8b 00 mov rax, QWORD PTR [rax] - 00058 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0005c 74 3a je SHORT $LN3@NcChangeLa - -; 162 : { -; 163 : if (((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_IS_REL_JMP)) && T->Label == Original) - - 0005e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00062 8b 40 18 mov eax, DWORD PTR [rax+24] - 00065 83 e0 01 and eax, 1 - 00068 85 c0 test eax, eax - 0006a 75 0e jne SHORT $LN6@NcChangeLa - 0006c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00070 8b 40 18 mov eax, DWORD PTR [rax+24] - 00073 83 e0 02 and eax, 2 - 00076 85 c0 test eax, eax - 00078 74 1c je SHORT $LN5@NcChangeLa -$LN6@NcChangeLa: - 0007a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0007e 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR Original$[rbp] - 00084 39 48 1c cmp DWORD PTR [rax+28], ecx - 00087 75 0d jne SHORT $LN5@NcChangeLa + 00045 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00051 4c 8b c8 mov r9, rax + 00054 4c 8b 85 f8 00 + 00 00 mov r8, QWORD PTR _Dest$[rbp] + 0005b 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00062 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + +; 1593 : } + + 0006e 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 +?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ENDP ; std::vector >::_Umove +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +_TEXT SEGMENT +_My_data$ = 8 +this$ = 256 +?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::capacity, COMDAT + +; 1492 : _NODISCARD size_type capacity() const noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 164 : T->Label = New; +; 1493 : auto& _My_data = _Mypair._Myval2; - 00089 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0008d 8b 8d 10 01 00 - 00 mov ecx, DWORD PTR New$[rbp] - 00093 89 48 1c mov DWORD PTR [rax+28], ecx -$LN5@NcChangeLa: + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 165 : } +; 1494 : return static_cast(_My_data._Myend - _My_data._Myfirst); - 00096 eb a0 jmp SHORT $LN2@NcChangeLa -$LN3@NcChangeLa: + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004d 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00051 48 2b c1 sub rax, rcx + 00054 48 c1 f8 02 sar rax, 2 -; 166 : } +; 1495 : } - 00098 48 8d a5 e8 00 + 00058 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0009f 5f pop rdi - 000a0 5d pop rbp - 000a1 c3 ret 0 -?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ENDP ; NcChangeLabelId + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 +?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT -TotalSize$ = 4 -T$1 = 40 -Block$ = 288 -?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCalcBlockSizeInBytes, COMDAT +$T1 = 200 +$T2 = 232 +this$ = 288 +?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::max_size, COMDAT -; 139 : { +; 1487 : _NODISCARD size_type max_size() const 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 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 140 : ULONG TotalSize = 0; - - 0001f c7 45 04 00 00 - 00 00 mov DWORD PTR TotalSize$[rbp], 0 - -; 141 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - - 00026 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0002d 48 8b 00 mov rax, QWORD PTR [rax] - 00030 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 00034 eb 0b jmp SHORT $LN4@NcCalcBloc -$LN2@NcCalcBloc: - 00036 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0003a 48 8b 00 mov rax, QWORD PTR [rax] - 0003d 48 89 45 28 mov QWORD PTR T$1[rbp], rax -$LN4@NcCalcBloc: - 00041 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00046 74 37 je SHORT $LN3@NcCalcBloc - 00048 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0004f 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 0005a 74 23 je SHORT $LN3@NcCalcBloc - -; 142 : { -; 143 : if (T->Flags & CODE_FLAG_IS_LABEL) - - 0005c 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00060 8b 40 18 mov eax, DWORD PTR [rax+24] - 00063 83 e0 01 and eax, 1 - 00066 85 c0 test eax, eax - 00068 74 02 je SHORT $LN5@NcCalcBloc - -; 144 : continue; - - 0006a eb ca jmp SHORT $LN2@NcCalcBloc -$LN5@NcCalcBloc: - -; 145 : TotalSize += T->RawDataSize; - - 0006c 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00070 8b 40 28 mov eax, DWORD PTR [rax+40] - 00073 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] - 00076 03 c8 add ecx, eax - 00078 8b c1 mov eax, ecx - 0007a 89 45 04 mov DWORD PTR TotalSize$[rbp], eax - -; 146 : } - - 0007d eb b7 jmp SHORT $LN2@NcCalcBloc -$LN3@NcCalcBloc: - -; 147 : return TotalSize; - - 0007f 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1488 : return (_STD min)( + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal + 00042 48 8b c8 mov rcx, rax + 00045 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size + 0004a 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00051 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 00056 48 89 85 e8 00 + 00 00 mov QWORD PTR $T2[rbp], rax + 0005d 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00064 48 8d 8d e8 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 0006b e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 00070 48 8b 00 mov rax, QWORD PTR [rax] -; 148 : } +; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1490 : } - 00082 48 8d a5 08 01 + 00073 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCalcBlockSizeInBytes + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c c3 ret 0 +?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT -InstructionCount$ = 4 -T$1 = 40 -Block$ = 288 -CountCombinedAsOne$ = 296 -?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcCountInstructions, COMDAT - -; 125 : { - -$LN8: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 126 : ULONG InstructionCount = 0; - - 00023 c7 45 04 00 00 - 00 00 mov DWORD PTR InstructionCount$[rbp], 0 - -; 127 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - - 0002a 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00031 48 8b 00 mov rax, QWORD PTR [rax] - 00034 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 00038 eb 0b jmp SHORT $LN4@NcCountIns -$LN2@NcCountIns: - 0003a 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0003e 48 8b 00 mov rax, QWORD PTR [rax] - 00041 48 89 45 28 mov QWORD PTR T$1[rbp], rax -$LN4@NcCountIns: - 00045 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0004a 74 62 je SHORT $LN3@NcCountIns - 0004c 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00053 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00057 48 8b 00 mov rax, QWORD PTR [rax] - 0005a 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 0005e 74 4e je SHORT $LN3@NcCountIns - -; 128 : { -; 129 : if (T->Flags & CODE_FLAG_IS_LABEL) - - 00060 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00064 8b 40 18 mov eax, DWORD PTR [rax+24] - 00067 83 e0 01 and eax, 1 - 0006a 85 c0 test eax, eax - 0006c 74 02 je SHORT $LN5@NcCountIns - -; 130 : continue; - - 0006e eb ca jmp SHORT $LN2@NcCountIns -$LN5@NcCountIns: - -; 131 : if (CountCombinedAsOne && T->Next && (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) && !(T->Next->Flags & CODE_FLAG_DO_NOT_DIVIDE)) - - 00070 83 bd 28 01 00 - 00 00 cmp DWORD PTR CountCombinedAsOne$[rbp], 0 - 00077 74 2b je SHORT $LN6@NcCountIns - 00079 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0007d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00081 74 21 je SHORT $LN6@NcCountIns - 00083 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00087 8b 40 18 mov eax, DWORD PTR [rax+24] - 0008a 83 e0 08 and eax, 8 - 0008d 85 c0 test eax, eax - 0008f 74 13 je SHORT $LN6@NcCountIns - 00091 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00095 48 8b 00 mov rax, QWORD PTR [rax] - 00098 8b 40 18 mov eax, DWORD PTR [rax+24] - 0009b 83 e0 08 and eax, 8 - 0009e 85 c0 test eax, eax - 000a0 75 02 jne SHORT $LN6@NcCountIns - -; 132 : continue; - - 000a2 eb 96 jmp SHORT $LN2@NcCountIns -$LN6@NcCountIns: +_My_data$ = 8 +this$ = 256 +?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::size, COMDAT -; 133 : ++InstructionCount; +; 1482 : _NODISCARD size_type size() const noexcept { - 000a4 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] - 000a7 ff c0 inc eax - 000a9 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 134 : } +; 1483 : auto& _My_data = _Mypair._Myval2; - 000ac eb 8c jmp SHORT $LN2@NcCountIns -$LN3@NcCountIns: + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 135 : return InstructionCount; +; 1484 : return static_cast(_My_data._Mylast - _My_data._Myfirst); - 000ae 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004d 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00051 48 2b c1 sub rax, rcx + 00054 48 c1 f8 02 sar rax, 2 -; 136 : } +; 1485 : } - 000b1 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000b8 5f pop rdi - 000b9 5d pop rbp - 000ba c3 ret 0 -?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcCountInstructions + 00058 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 +?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT -Link$ = 224 -?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z PROC ; NcUnlink, COMDAT +this$ = 224 +?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_end, COMDAT -; 114 : { +; 1469 : pointer _Unchecked_end() noexcept { -$LN6: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 115 : if (Link) - - 0001f 48 83 bd e0 00 - 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00027 74 4c je SHORT $LN2@NcUnlink - -; 116 : { -; 117 : if (Link->Next) - - 00029 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00030 48 83 38 00 cmp QWORD PTR [rax], 0 - 00034 74 19 je SHORT $LN3@NcUnlink - -; 118 : Link->Next->Prev = Link->Prev; + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1470 : return _Mypair._Myval2._Mylast; 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 00047 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004b 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN3@NcUnlink: - -; 119 : if (Link->Prev) - - 0004f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00056 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0005b 74 18 je SHORT $LN4@NcUnlink - -; 120 : Link->Prev->Next = Link->Next; - - 0005d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00064 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00068 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 0006f 48 8b 09 mov rcx, QWORD PTR [rcx] - 00072 48 89 08 mov QWORD PTR [rax], rcx -$LN4@NcUnlink: -$LN2@NcUnlink: + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 40 10 mov rax, QWORD PTR [rax+16] -; 121 : } -; 122 : } +; 1471 : } - 00075 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007c 5f pop rdi - 0007d 5d pop rbp - 0007e c3 ret 0 -?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcUnlink + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT -Link1$ = 224 -Link2$ = 232 -?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z PROC ; NcInsertLinkBefore, COMDAT +this$ = 224 +?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_begin, COMDAT -; 102 : { +; 1461 : pointer _Unchecked_begin() noexcept { -$LN5: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 103 : if (Link1) - - 00024 48 83 bd e0 00 - 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 0002c 74 5c je SHORT $LN2@NcInsertLi - -; 104 : { -; 105 : Link2->Next = Link1; - - 0002e 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 00035 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0003c 48 89 08 mov QWORD PTR [rax], rcx - -; 106 : Link2->Prev = Link1->Prev; - - 0003f 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 00046 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0004d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00051 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 107 : Link1->Prev = Link2; - - 00055 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Link1$[rbp] - 0005c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00063 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 108 : if (Link2->Prev) - - 00067 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 0006e 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00073 74 15 je SHORT $LN3@NcInsertLi - -; 109 : Link2->Prev->Next = Link2; + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1462 : return _Mypair._Myval2._Myfirst; - 00075 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 0007c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00080 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00087 48 89 08 mov QWORD PTR [rax], rcx -$LN3@NcInsertLi: -$LN2@NcInsertLi: + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 40 08 mov rax, QWORD PTR [rax+8] -; 110 : } -; 111 : } +; 1463 : } - 0008a 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 -?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkBefore + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_begin _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ _TEXT SEGMENT -Link1$ = 224 -Link2$ = 232 -?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z PROC ; NcInsertLinkAfter, COMDAT +_My_data$ = 8 +tv80 = 216 +tv78 = 224 +this$ = 272 +__$ReturnUdt$ = 280 +?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::end, COMDAT -; 90 : { +; 1419 : _NODISCARD iterator end() noexcept { -$LN5: +$LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 91 : if (Link1) - - 00024 48 83 bd e0 00 - 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 0002c 74 59 je SHORT $LN2@NcInsertLi - -; 92 : { -; 93 : Link2->Prev = Link1; - - 0002e 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 00035 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0003c 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 94 : Link2->Next = Link1->Next; - - 00040 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 00047 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0004e 48 8b 09 mov rcx, QWORD PTR [rcx] - 00051 48 89 08 mov QWORD PTR [rax], rcx - -; 95 : Link1->Next = Link2; - - 00054 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Link1$[rbp] - 0005b 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00062 48 89 08 mov QWORD PTR [rax], rcx - -; 96 : if (Link2->Next) - - 00065 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 0006c 48 83 38 00 cmp QWORD PTR [rax], 0 - 00070 74 15 je SHORT $LN3@NcInsertLi + 0000c 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1420 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 10 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 97 : Link2->Next->Prev = Link2; +; 1421 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); - 00072 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link2$[rbp] - 00079 48 8b 00 mov rax, QWORD PTR [rax] - 0007c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00083 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN3@NcInsertLi: -$LN2@NcInsertLi: + 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 0004f 48 89 85 d8 00 + 00 00 mov QWORD PTR tv80[rbp], rax + 00056 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005a 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0005e 48 89 85 e0 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 00065 4c 8b 85 d8 00 + 00 00 mov r8, QWORD PTR tv80[rbp] + 0006c 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 00073 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 0007a e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z + 0007f 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 98 : } -; 99 : } +; 1422 : } - 00087 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0008e 5f pop rdi - 0008f 5d pop rbp - 00090 c3 ret 0 -?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkAfter + 00086 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 0008d 5f pop rdi + 0008e 5d pop rbp + 0008f c3 ret 0 +?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ _TEXT SEGMENT -Block$ = 224 -Link$ = 232 -?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z PROC ; NcPrependToBlock, COMDAT +_My_data$ = 8 +tv80 = 216 +tv78 = 224 +this$ = 272 +__$ReturnUdt$ = 280 +?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::begin, COMDAT -; 70 : { +; 1409 : _NODISCARD iterator begin() noexcept { -$LN7: +$LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 0000c 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 71 : if (!Link) - - 00024 48 83 bd e8 00 - 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 0002c 75 05 jne SHORT $LN2@NcPrependT - -; 72 : return; - - 0002e e9 9b 00 00 00 jmp $LN1@NcPrependT -$LN2@NcPrependT: + 00018 48 8b fc mov rdi, rsp + 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1410 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 10 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 73 : -; 74 : Link->Block = Block; +; 1411 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); - 00033 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0003a 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 0004f 48 89 85 d8 00 + 00 00 mov QWORD PTR tv80[rbp], rax + 00056 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0005e 48 89 85 e0 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 00065 4c 8b 85 d8 00 + 00 00 mov r8, QWORD PTR tv80[rbp] + 0006c 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 00073 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 0007a e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z + 0007f 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 75 : Link->Next = Block->Start; +; 1412 : } - 00045 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0004c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00053 48 8b 09 mov rcx, QWORD PTR [rcx] - 00056 48 89 08 mov QWORD PTR [rax], rcx + 00086 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 0008d 5f pop rdi + 0008e 5d pop rbp + 0008f c3 ret 0 +?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::begin +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ +_TEXT SEGMENT +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +this$ = 320 +?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ PROC ; std::vector >::clear, COMDAT -; 76 : Link->Prev = NULL; +; 1383 : void clear() noexcept { // erase all - 00059 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00060 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1384 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 77 : -; 78 : if (!Block->End || !Block->Start) +; 1385 : pointer& _Myfirst = _My_data._Myfirst; - 00068 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0006f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00074 74 0d je SHORT $LN5@NcPrependT - 00076 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0007d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00081 75 25 jne SHORT $LN3@NcPrependT -$LN5@NcPrependT: + 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 -; 79 : { -; 80 : Block->Start = Block->End = Link; +; 1386 : pointer& _Mylast = _My_data._Mylast; - 00083 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0008a 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 00091 48 89 48 08 mov QWORD PTR [rax+8], rcx - 00095 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0009c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a3 48 89 08 mov QWORD PTR [rax], rcx + 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 -; 81 : } +; 1387 : +; 1388 : _My_data._Orphan_all(); - 000a6 eb 26 jmp SHORT $LN4@NcPrependT -$LN3@NcPrependT: + 00059 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005d e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 82 : else -; 83 : { -; 84 : Block->Start->Prev = Link; +; 1389 : _Destroy(_Myfirst, _Mylast); - 000a8 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000af 48 8b 00 mov rax, QWORD PTR [rax] - 000b2 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00062 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00066 4c 8b 00 mov r8, QWORD PTR [rax] + 00069 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0006d 48 8b 10 mov rdx, QWORD PTR [rax] + 00070 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00077 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 85 : Block->Start = Link; +; 1390 : _Mylast = _Myfirst; - 000bd 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000c4 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000cb 48 89 08 mov QWORD PTR [rax], rcx -$LN4@NcPrependT: -$LN1@NcPrependT: + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 00084 48 8b 09 mov rcx, QWORD PTR [rcx] + 00087 48 89 08 mov QWORD PTR [rax], rcx -; 86 : } -; 87 : } +; 1391 : } - 000ce 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 -?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcPrependToBlock + 0008a 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 +?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ENDP ; std::vector >::clear _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z _TEXT SEGMENT -Block$ = 224 -Link$ = 232 -?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z PROC ; NcAppendToBlock, COMDAT +this$ = 224 +_Val$ = 232 +?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z PROC ; std::vector >::push_back, COMDAT -; 50 : { +; 716 : void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee -$LN7: +$LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp @@ -13677,172 +19014,109 @@ $LN7: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 51 : if (!Link) - - 00024 48 83 bd e8 00 - 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 0002c 75 05 jne SHORT $LN2@NcAppendTo - -; 52 : return; - - 0002e e9 9d 00 00 00 jmp $LN1@NcAppendTo -$LN2@NcAppendTo: - -; 53 : -; 54 : Link->Block = Block; - - 00033 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0003a 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx - -; 55 : Link->Prev = Block->End; - - 00045 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 0004c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00053 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00057 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 56 : Link->Next = NULL; - - 0005b 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR Link$[rbp] - 00062 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 - -; 57 : -; 58 : if (!Block->End || !Block->Start) - - 00069 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00070 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00075 74 0d je SHORT $LN5@NcAppendTo - 00077 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0007e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00082 75 25 jne SHORT $LN3@NcAppendTo -$LN5@NcAppendTo: - -; 59 : { -; 60 : Block->Start = Block->End = Link; - - 00084 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0008b 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 00092 48 89 48 08 mov QWORD PTR [rax+8], rcx - 00096 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0009d 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a4 48 89 08 mov QWORD PTR [rax], rcx - -; 61 : } - - 000a7 eb 27 jmp SHORT $LN4@NcAppendTo -$LN3@NcAppendTo: - -; 62 : else -; 63 : { -; 64 : Block->End->Next = Link; - - 000a9 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000b0 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000b4 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000bb 48 89 08 mov QWORD PTR [rax], rcx - -; 65 : Block->End = Link; - - 000be 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000c5 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR Link$[rbp] - 000cc 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN4@NcAppendTo: -$LN1@NcAppendTo: + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 717 : emplace_back(_Val); + + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Val$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00049 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back -; 66 : } -; 67 : } +; 718 : } - 000d0 48 8d a5 c8 00 + 0004e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000d7 5f pop rdi - 000d8 5d pop rbp - 000d9 c3 ret 0 -?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcAppendToBlock + 00055 5f pop rdi + 00056 5d pop rbp + 00057 c3 ret 0 +?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ENDP ; std::vector >::push_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ??0_NATIVE_CODE_BLOCK@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT -this$ = 224 -??0_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK, COMDAT +$T1 = 196 +$T2 = 228 +tv83 = 248 +tv69 = 248 +this$ = 288 +??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::vector >, COMDAT -; 44 : { +; 445 : vector() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { -$LN4: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 c0 10 add rax, 16 - 0002a 48 8b c8 mov rcx, rax - 0002d e8 00 00 00 00 call ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > - -; 45 : Start = End = NULL; - - 00032 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - 00041 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 0003d 48 89 85 f8 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 00044 0f b6 95 c4 00 + 00 00 movzx edx, BYTE PTR $T1[rbp] + 0004b 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 00052 e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> -; 46 : LabelIds.clear(); +; 446 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 0004f 48 8b 85 e0 00 + 00057 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00056 48 83 c0 10 add rax, 16 - 0005a 48 8b c8 mov rcx, rax - 0005d e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear + 0005e 48 89 85 f8 00 + 00 00 mov QWORD PTR tv83[rbp], rax + 00065 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00071 48 8b d0 mov rdx, rax + 00074 48 8d 8d e4 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 0007b e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 00080 48 8b d0 mov rdx, rax + 00083 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv83[rbp] + 0008a e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > -; 47 : } +; 447 : } - 00062 48 8b 85 e0 00 + 0008f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00069 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00070 5f pop rdi - 00071 5d pop rbp - 00072 c3 ret 0 -??0_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00096 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0009d 5f pop rdi + 0009e 5d pop rbp + 0009f c3 ret 0 +??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z _TEXT SEGMENT -this$ = 224 -?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT +__formal$ = 224 +?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT -; 1381 : constexpr const _Ty1& _Get_first() const noexcept { +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13851,66 +19125,133 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1382 : return *this; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 703 : return static_cast(-1) / sizeof(value_type); + + 00036 48 b8 ff ff ff + ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH -; 1383 : } +; 704 : } - 00026 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ENDP ; std::_Default_allocator_traits >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z _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 +_Count$ = 232 +?allocate@?$allocator@K@std@@QEAAPEAK_K@Z PROC ; std::allocator::allocate, COMDAT -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 1378 : return *this; +; 808 : } - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ENDP ; std::allocator::allocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +_TEXT SEGMENT +this$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 1379 : } +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { - 00026 48 8d a5 c8 00 +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 804 : } + + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 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 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0?$allocator@K@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 -??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ PROC ; std::_Vector_val >::_Vector_val >, COMDAT +??0?$allocator@K@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 401 : _CONSTEXPR20_CONTAINER _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} +; 795 : constexpr allocator() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13919,24 +19260,57 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 - 0002b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - 0003a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00041 48 c7 40 10 00 - 00 00 00 mov QWORD PTR [rax+16], 0 - 00049 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 c7 40 18 00 - 00 00 00 mov QWORD PTR [rax+24], 0 + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??0?$allocator@K@std@@QEAA@XZ ENDP ; std::allocator::allocator +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_LINK::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 0003a 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 10 01 00 00 mov edx, 272 ; 00000110H + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] 0005f 48 8d a5 c8 00 @@ -13944,1488 +19318,1664 @@ $LN3: 00066 5f pop rdi 00067 5d pop rbp 00068 c3 ret 0 -??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ENDP ; std::_Vector_val >::_Vector_val > +??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??1_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT -this$ = 224 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT +$L0$1 = 8 +$L0$2 = 40 +$L0$3 = 72 +Op$4 = 104 +$T5 = 328 +$T6 = 360 +this$ = 416 +??1_NATIVE_CODE_LINK@@QEAA@XZ PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK, COMDAT -; 1821 : _NODISCARD _CONSTEXPR20_CONTAINER const _Alty& _Getal() const noexcept { +; 39 : { -$LN3: +$LN8: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 00007 48 81 ec a8 01 + 00 00 sub rsp, 424 ; 000001a8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 c8 + 01 00 00 mov rcx, QWORD PTR [rsp+456] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 40 : if (RawData) + + 00036 48 8b 85 a0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 + 00042 74 1e je SHORT $LN5@NATIVE_COD -; 1822 : return _Mypair._Get_first(); +; 41 : delete[] RawData; - 0001f 48 8b 85 e0 00 + 00044 48 8b 85 a0 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 0004b 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0004f 48 89 85 48 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00056 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 0005d e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] +$LN5@NATIVE_COD: -; 1823 : } +; 42 : +; 43 : for (STDPAIR CONST& Op : AsmOperations) - 0002e 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal + 00062 48 8b 85 a0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00069 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 0006f 48 89 45 08 mov QWORD PTR $L0$1[rbp], rax + 00073 48 8b 4d 08 mov rcx, QWORD PTR $L0$1[rbp] + 00077 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_begin + 0007c 48 89 45 28 mov QWORD PTR $L0$2[rbp], rax + 00080 48 8b 4d 08 mov rcx, QWORD PTR $L0$1[rbp] + 00084 e8 00 00 00 00 call ?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::vector,std::allocator > >::_Unchecked_end + 00089 48 89 45 48 mov QWORD PTR $L0$3[rbp], rax + 0008d eb 0c jmp SHORT $LN4@NATIVE_COD +$LN2@NATIVE_COD: + 0008f 48 8b 45 28 mov rax, QWORD PTR $L0$2[rbp] + 00093 48 83 c0 10 add rax, 16 + 00097 48 89 45 28 mov QWORD PTR $L0$2[rbp], rax +$LN4@NATIVE_COD: + 0009b 48 8b 45 48 mov rax, QWORD PTR $L0$3[rbp] + 0009f 48 39 45 28 cmp QWORD PTR $L0$2[rbp], rax + 000a3 74 30 je SHORT $LN3@NATIVE_COD + 000a5 48 8b 45 28 mov rax, QWORD PTR $L0$2[rbp] + 000a9 48 89 45 68 mov QWORD PTR Op$4[rbp], rax + +; 44 : { +; 45 : if (Op.second) + + 000ad 48 8b 45 68 mov rax, QWORD PTR Op$4[rbp] + 000b1 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 000b6 74 1b je SHORT $LN6@NATIVE_COD + +; 46 : delete[] Op.second; + + 000b8 48 8b 45 68 mov rax, QWORD PTR Op$4[rbp] + 000bc 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000c0 48 89 85 68 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 000c7 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 000ce e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] +$LN6@NATIVE_COD: + +; 47 : } + + 000d3 eb ba jmp SHORT $LN2@NATIVE_COD +$LN3@NATIVE_COD: + +; 48 : } + + 000d5 48 8b 85 a0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000dc 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 000e2 48 8b c8 mov rcx, rax + 000e5 e8 00 00 00 00 call ??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ ; std::vector,std::allocator > >::~vector,std::allocator > > + 000ea 90 npad 1 + 000eb 48 8d a5 88 01 + 00 00 lea rsp, QWORD PTR [rbp+392] + 000f2 5f pop rdi + 000f3 5d pop rbp + 000f4 c3 ret 0 +??1_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z _TEXT SEGMENT -this$ = 224 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT +$T1 = 200 +this$ = 256 +F$ = 264 +Rd$ = 272 +Rds$ = 280 +Decode$ = 288 +??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT -; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { +; 26 : { -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN6: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx + 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00013 55 push rbp + 00014 57 push rdi + 00015 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00021 48 8b fc mov rdi, rsp + 00024 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002e f3 ab rep stosd + 00030 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00038 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 25 : : _NATIVE_CODE_LINK() + + 00044 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00050 90 npad 1 -; 1818 : return _Mypair._Get_first(); +; 27 : Flags = F; - 0001f 48 8b 85 e0 00 + 00051 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00058 8b 8d 08 01 00 + 00 mov ecx, DWORD PTR F$[rbp] + 0005e 89 48 18 mov DWORD PTR [rax+24], ecx -; 1819 : } +; 28 : RawDataSize = Rds; - 0002e 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z -_TEXT SEGMENT -this$ = 224 -_First$ = 232 -_Last$ = 240 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT + 00061 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00068 8b 8d 18 01 00 + 00 mov ecx, DWORD PTR Rds$[rbp] + 0006e 89 48 28 mov DWORD PTR [rax+40], ecx -; 1802 : _CONSTEXPR20_CONTAINER void _Orphan_range(pointer _First, pointer _Last) const { +; 29 : RawData = new UCHAR[Rds]; -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1803 : // orphan iterators within specified (inclusive) range -; 1804 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1805 : if (_STD is_constant_evaluated()) { -; 1806 : _Orphan_range_unlocked(_First, _Last); -; 1807 : } else -; 1808 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1809 : { -; 1810 : _Orphan_range_locked(_First, _Last); - - 00029 4c 8b 85 f0 00 - 00 00 mov r8, QWORD PTR _Last$[rbp] - 00030 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _First$[rbp] - 00037 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0003e e8 00 00 00 00 call ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_locked + 00071 8b 85 18 01 00 + 00 mov eax, DWORD PTR Rds$[rbp] + 00077 8b c8 mov ecx, eax + 00079 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 0007e 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00085 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0008c 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 00093 48 89 48 20 mov QWORD PTR [rax+32], rcx -; 1811 : } -; 1812 : } +; 30 : if (Rd) - 00043 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z -_TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -_First$ = 264 -_Last$ = 272 -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range_locked, COMDAT + 00097 48 83 bd 10 01 + 00 00 00 cmp QWORD PTR Rd$[rbp], 0 + 0009f 74 53 je SHORT $LN2@NATIVE_COD -; 1797 : void _Orphan_range_locked(pointer _First, pointer _Last) const { +; 31 : { +; 32 : RtlCopyMemory(RawData, Rd, Rds); -$LN4: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 0a 00 00 00 mov ecx, 10 - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00036 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000a1 8b 85 18 01 00 + 00 mov eax, DWORD PTR Rds$[rbp] + 000a7 44 8b c0 mov r8d, eax + 000aa 48 8b 95 10 01 + 00 00 mov rdx, QWORD PTR Rd$[rbp] + 000b1 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b8 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 000bc e8 00 00 00 00 call memcpy -; 1798 : _Lockit _Lock(_LOCK_DEBUG); +; 33 : if (Decode) - 00053 ba 03 00 00 00 mov edx, 3 - 00058 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 0005c ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - 00062 90 npad 1 + 000c1 83 bd 20 01 00 + 00 00 cmp DWORD PTR Decode$[rbp], 0 + 000c8 74 2a je SHORT $LN2@NATIVE_COD -; 1799 : _Orphan_range_unlocked(_First, _Last); +; 34 : XedDecode(&XedInstruction, RawData, RawDataSize); - 00063 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR _Last$[rbp] - 0006a 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _First$[rbp] - 00071 48 8b 8d 00 01 + 000ca 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d1 48 83 c0 30 add rax, 48 ; 00000030H + 000d5 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00078 e8 00 00 00 00 call ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_unlocked - 0007d 90 npad 1 + 000dc 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 000e0 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000e7 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000eb 48 8b c8 mov rcx, rax + 000ee e8 00 00 00 00 call xed_decode + 000f3 90 npad 1 +$LN2@NATIVE_COD: -; 1800 : } +; 35 : } +; 36 : } - 0007e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00082 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 00088 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008c 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData - 00093 e8 00 00 00 00 call _RTC_CheckStackVars - 00098 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0009f 48 33 cd xor rcx, rbp - 000a2 e8 00 00 00 00 call __security_check_cookie - 000a7 48 8d a5 e8 00 + 000f4 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000fb 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000ae 5f pop rdi - 000af 5d pop rbp - 000b0 c3 ret 0 -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range_locked + 00102 5f pop rdi + 00103 5d pop rbp + 00104 c3 ret 0 +??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; COMDAT text$x text$x SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 +$T1 = 200 this$ = 256 -_First$ = 264 -_Last$ = 272 -?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA PROC ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 +F$ = 264 +Rd$ = 272 +Rds$ = 280 +Decode$ = 288 +?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA PROC ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00018 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0001e 48 83 c4 28 add rsp, 40 ; 00000028H - 00022 5f pop rdi - 00023 5d pop rbp - 00024 c3 ret 0 -?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA ENDP ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 + 00014 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 +$T1 = 200 this$ = 256 -_First$ = 264 -_Last$ = 272 -?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA PROC ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 +F$ = 264 +Rd$ = 272 +Rds$ = 280 +Decode$ = 288 +?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA PROC ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00018 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0001e 48 83 c4 28 add rsp, 40 ; 00000028H - 00022 5f pop rdi - 00023 5d pop rbp - 00024 c3 ret 0 -?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA ENDP ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 + 00014 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z -_TEXT SEGMENT -_Pnext$ = 8 -_Pnextptr$1 = 40 -_Temp$2 = 72 -_Temp$3 = 104 -this$ = 352 -_First$ = 360 -_Last$ = 368 -?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range_unlocked, COMDAT - -; 1782 : _CONSTEXPR20_CONTAINER void _Orphan_range_unlocked(pointer _First, pointer _Last) const { - -$LN8: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1783 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; - - 00029 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8b 00 mov rax, QWORD PTR [rax] - 00033 48 83 c0 08 add rax, 8 - 00037 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax -$LN2@Orphan_ran: - -; 1784 : while (*_Pnext) { - - 0003b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 0003f 48 83 38 00 cmp QWORD PTR [rax], 0 - 00043 74 69 je SHORT $LN3@Orphan_ran - -; 1785 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; - - 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 00049 48 8b 00 mov rax, QWORD PTR [rax] - 0004c 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00050 48 89 45 28 mov QWORD PTR _Pnextptr$1[rbp], rax - -; 1786 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator - - 00054 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR _First$[rbp] - 0005b 48 39 45 28 cmp QWORD PTR _Pnextptr$1[rbp], rax - 0005f 72 0d jb SHORT $LN6@Orphan_ran - 00061 48 8b 45 28 mov rax, QWORD PTR _Pnextptr$1[rbp] - 00065 48 39 85 70 01 - 00 00 cmp QWORD PTR _Last$[rbp], rax - 0006c 73 19 jae SHORT $LN4@Orphan_ran -$LN6@Orphan_ran: - -; 1787 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 - - 0006e 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 00072 48 8b 00 mov rax, QWORD PTR [rax] - 00075 48 89 45 48 mov QWORD PTR _Temp$2[rbp], rax - -; 1788 : _Pnext = &_Temp->_Mynextiter; - - 00079 48 8b 45 48 mov rax, QWORD PTR _Temp$2[rbp] - 0007d 48 83 c0 08 add rax, 8 - 00081 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax - -; 1789 : } else { // orphan the iterator - - 00085 eb 25 jmp SHORT $LN5@Orphan_ran -$LN4@Orphan_ran: +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +this$ = 224 +LabelId$ = 232 +B$ = 240 +??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT -; 1790 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 +; 18 : { - 00087 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 0008b 48 8b 00 mov rax, QWORD PTR [rax] - 0008e 48 89 45 68 mov QWORD PTR _Temp$3[rbp], rax +$LN4: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000e 55 push rbp + 0000f 57 push rdi + 00010 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001c 48 8b fc mov rdi, rsp + 0001f b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00033 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 17 : : _NATIVE_CODE_LINK() + + 0003f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00046 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK -; 1791 : _Temp->_Myproxy = nullptr; +; 19 : Block = B; - 00092 48 8b 45 68 mov rax, QWORD PTR _Temp$3[rbp] - 00096 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 0004b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00052 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR B$[rbp] + 00059 48 89 48 10 mov QWORD PTR [rax+16], rcx -; 1792 : *_Pnext = _Temp->_Mynextiter; +; 20 : Label = LabelId; - 0009d 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 000a1 48 8b 4d 68 mov rcx, QWORD PTR _Temp$3[rbp] - 000a5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000a9 48 89 08 mov QWORD PTR [rax], rcx -$LN5@Orphan_ran: + 0005d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00064 8b 8d e8 00 00 + 00 mov ecx, DWORD PTR LabelId$[rbp] + 0006a 89 48 1c mov DWORD PTR [rax+28], ecx -; 1793 : } -; 1794 : } +; 21 : Flags = CODE_FLAG_IS_LABEL; - 000ac eb 8d jmp SHORT $LN2@Orphan_ran -$LN3@Orphan_ran: + 0006d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00074 c7 40 18 01 00 + 00 00 mov DWORD PTR [rax+24], 1 -; 1795 : } +; 22 : } - 000ae 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 000b5 5f pop rdi - 000b6 5d pop rbp - 000b7 c3 ret 0 -?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range_unlocked + 0007b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00082 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b c3 ret 0 +??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT -?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ PROC ; std::vector >::_Xlength, COMDAT +this$ = 224 +??0_NATIVE_CODE_LINK@@QEAA@XZ PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT -; 1773 : [[noreturn]] static void _Xlength() { +; 4 : { -$LN3: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec e8 00 +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 00043 48 8b c8 mov rcx, rax + 00046 e8 00 00 00 00 call ??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ ; std::vector,std::allocator > >::vector,std::allocator > > -; 1774 : _Xlength_error("vector too long"); +; 5 : XedDecodedInstZero(&XedInstruction); - 0001b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ - 00022 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error -$LN2@Xlength: + 0004b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00052 48 83 c0 30 add rax, 48 ; 00000030H + 00056 48 8b c8 mov rcx, rax + 00059 e8 00 00 00 00 call xed_decoded_inst_zero -; 1775 : } +; 6 : XedDecodedInstSetMode(&XedInstruction, XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b); - 00027 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002e 5f pop rdi - 0002f 5d pop rbp - 00030 c3 ret 0 -?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ENDP ; std::vector >::_Xlength -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z -_TEXT SEGMENT -_My_data$ = 8 -_Myfirst$ = 40 -_Mylast$ = 72 -_Myend$ = 104 -tv90 = 312 -tv88 = 320 -tv86 = 328 -this$ = 368 -_Newvec$ = 376 -_Newsize$ = 384 -_Newcapacity$ = 392 -?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z PROC ; std::vector >::_Change_array, COMDAT + 0005e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00065 48 83 c0 30 add rax, 48 ; 00000030H + 00069 41 b8 08 00 00 + 00 mov r8d, 8 + 0006f ba 01 00 00 00 mov edx, 1 + 00074 48 8b c8 mov rcx, rax + 00077 e8 00 00 00 00 call xed_decoded_inst_set_mode -; 1736 : const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { +; 7 : Flags = 0UL; -$LN4: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0007c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00083 c7 40 18 00 00 + 00 00 mov DWORD PTR [rax+24], 0 -; 1737 : // orphan all iterators, discard old array, acquire new array -; 1738 : auto& _My_data = _Mypair._Myval2; +; 8 : Next = Prev = NULL; - 0002e 48 8b 85 70 01 + 0008a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00091 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00099 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00035 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 000a0 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 1739 : pointer& _Myfirst = _My_data._Myfirst; +; 9 : Block = NULL; - 00039 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0003d 48 83 c0 08 add rax, 8 - 00041 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 000a7 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000ae 48 c7 40 10 00 + 00 00 00 mov QWORD PTR [rax+16], 0 -; 1740 : pointer& _Mylast = _My_data._Mylast; +; 10 : Label = 0UL; - 00045 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00049 48 83 c0 10 add rax, 16 - 0004d 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 000b6 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000bd c7 40 1c 00 00 + 00 00 mov DWORD PTR [rax+28], 0 -; 1741 : pointer& _Myend = _My_data._Myend; +; 11 : RawData = NULL; - 00051 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00055 48 83 c0 18 add rax, 24 - 00059 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 000c4 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000cb 48 c7 40 20 00 + 00 00 00 mov QWORD PTR [rax+32], 0 -; 1742 : -; 1743 : _My_data._Orphan_all(); +; 12 : RawDataSize = 0UL; - 0005d 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00061 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 000d3 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000da c7 40 28 00 00 + 00 00 mov DWORD PTR [rax+40], 0 -; 1744 : -; 1745 : if (_Myfirst) { // destroy and deallocate old array +; 13 : AsmOperations.clear(); - 00066 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0006a 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006e 74 71 je SHORT $LN2@Change_arr + 000e1 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000e8 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 000ee 48 8b c8 mov rcx, rax + 000f1 e8 00 00 00 00 call ?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ ; std::vector,std::allocator > >::clear -; 1746 : _Destroy(_Myfirst, _Mylast); +; 14 : } - 00070 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00074 4c 8b 00 mov r8, QWORD PTR [rax] - 00077 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0007b 48 8b 10 mov rdx, QWORD PTR [rax] - 0007e 48 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00085 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 000f6 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000fd 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00104 5f pop rdi + 00105 5d pop rbp + 00106 c3 ret 0 +??0_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first, COMDAT -; 1747 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { - 0008a 48 8b 8d 70 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00091 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00096 48 89 85 38 01 - 00 00 mov QWORD PTR tv90[rbp], rax - 0009d 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000a1 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000a5 48 8b 09 mov rcx, QWORD PTR [rcx] - 000a8 48 8b 00 mov rax, QWORD PTR [rax] - 000ab 48 2b c1 sub rax, rcx - 000ae 48 c1 f8 02 sar rax, 2 - 000b2 48 89 85 40 01 - 00 00 mov QWORD PTR tv88[rbp], rax - 000b9 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000bd 48 8b 00 mov rax, QWORD PTR [rax] - 000c0 48 89 85 48 01 - 00 00 mov QWORD PTR tv86[rbp], rax - 000c7 4c 8b 85 40 01 - 00 00 mov r8, QWORD PTR tv88[rbp] - 000ce 48 8b 95 48 01 - 00 00 mov rdx, QWORD PTR tv86[rbp] - 000d5 48 8b 8d 38 01 - 00 00 mov rcx, QWORD PTR tv90[rbp] - 000dc e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -$LN2@Change_arr: +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; -; 1748 : } -; 1749 : -; 1750 : _Myfirst = _Newvec; + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] - 000e1 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000e5 48 8b 8d 78 01 - 00 00 mov rcx, QWORD PTR _Newvec$[rbp] - 000ec 48 89 08 mov QWORD PTR [rax], rcx +; 1349 : } -; 1751 : _Mylast = _Newvec + _Newsize; + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first, COMDAT - 000ef 48 8b 85 78 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 000f6 48 8b 8d 80 01 - 00 00 mov rcx, QWORD PTR _Newsize$[rbp] - 000fd 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00101 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] - 00105 48 89 01 mov QWORD PTR [rcx], rax +; 1343 : constexpr _Ty1& _Get_first() noexcept { -; 1752 : _Myend = _Newvec + _Newcapacity; +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; - 00108 48 8b 85 78 01 - 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0010f 48 8b 8d 88 01 - 00 00 mov rcx, QWORD PTR _Newcapacity$[rbp] - 00116 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 0011a 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] - 0011e 48 89 01 mov QWORD PTR [rcx], rax + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] -; 1753 : } +; 1345 : } - 00121 48 8d a5 58 01 - 00 00 lea rsp, QWORD PTR [rbp+344] - 00128 5f pop rdi - 00129 5d pop rbp - 0012a c3 ret 0 -?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ENDP ; std::vector >::_Change_array + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ _TEXT SEGMENT -_Oldcapacity$ = 8 -_Max$ = 40 -_Geometric$ = 72 -this$ = 320 -_Newsize$ = 328 -?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z PROC ; std::vector >::_Calculate_growth, COMDAT - -; 1683 : _CONSTEXPR20_CONTAINER size_type _Calculate_growth(const size_type _Newsize) const { - -$LN5: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1684 : // given _Oldcapacity and _Newsize, calculate geometric growth -; 1685 : const size_type _Oldcapacity = capacity(); - - 00024 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0002b e8 00 00 00 00 call ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity - 00030 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax +this$ = 224 +??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ PROC ; std::_Vector_val > >::_Vector_val > >, COMDAT -; 1686 : const auto _Max = max_size(); +; 375 : _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} - 00034 48 8b 8d 40 01 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003b e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size - 00040 48 89 45 28 mov QWORD PTR _Max$[rbp], rax - -; 1687 : -; 1688 : if (_Oldcapacity > _Max - _Oldcapacity / 2) { - - 00044 33 d2 xor edx, edx - 00046 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] - 0004a b9 02 00 00 00 mov ecx, 2 - 0004f 48 f7 f1 div rcx - 00052 48 8b 4d 28 mov rcx, QWORD PTR _Max$[rbp] - 00056 48 2b c8 sub rcx, rax - 00059 48 8b c1 mov rax, rcx - 0005c 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax - 00060 76 06 jbe SHORT $LN2@Calculate_ - -; 1689 : return _Max; // geometric growth would overflow - - 00062 48 8b 45 28 mov rax, QWORD PTR _Max$[rbp] - 00066 eb 36 jmp SHORT $LN1@Calculate_ -$LN2@Calculate_: + 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00051 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 48 c7 40 10 00 + 00 00 00 mov QWORD PTR [rax+16], 0 + 00060 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 + 0006f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00076 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f c3 ret 0 +??0?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_val > >::_Vector_val > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::vector,std::allocator > >::_Getal, COMDAT -; 1690 : } -; 1691 : -; 1692 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; +; 1735 : const _Alty& _Getal() const noexcept { - 00068 33 d2 xor edx, edx - 0006a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] - 0006e b9 02 00 00 00 mov ecx, 2 - 00073 48 f7 f1 div rcx - 00076 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] - 0007a 48 03 c8 add rcx, rax - 0007d 48 8b c1 mov rax, rcx - 00080 48 89 45 48 mov QWORD PTR _Geometric$[rbp], rax +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1736 : return _Mypair._Get_first(); -; 1693 : -; 1694 : if (_Geometric < _Newsize) { + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first + 00045 90 npad 1 - 00084 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 0008b 48 39 45 48 cmp QWORD PTR _Geometric$[rbp], rax - 0008f 73 09 jae SHORT $LN3@Calculate_ +; 1737 : } -; 1695 : return _Newsize; // geometric growth would be insufficient + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::vector,std::allocator > >::_Getal +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::vector,std::allocator > >::_Getal, COMDAT - 00091 48 8b 85 48 01 - 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 00098 eb 04 jmp SHORT $LN1@Calculate_ -$LN3@Calculate_: +; 1731 : _Alty& _Getal() noexcept { -; 1696 : } -; 1697 : -; 1698 : return _Geometric; // geometric growth is sufficient +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); - 0009a 48 8b 45 48 mov rax, QWORD PTR _Geometric$[rbp] -$LN1@Calculate_: + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first + 00045 90 npad 1 -; 1699 : } +; 1733 : } - 0009e 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000a5 5f pop rdi - 000a6 5d pop rbp - 000a7 c3 ret 0 -?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ENDP ; std::vector >::_Calculate_growth + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::vector,std::allocator > >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z _TEXT SEGMENT -this$ = 224 -_First$ = 232 -_Last$ = 240 -?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT +_Lock$ = 4 +_Pnext$ = 40 +_Pnextptr$4 = 72 +__$ArrayPad$ = 280 +this$ = 320 +_First$ = 328 +_Last$ = 336 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z PROC ; std::vector,std::allocator > >::_Orphan_range, COMDAT -; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { +; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range -$LN3: +$LN9: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 00011 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1679 : // destroy [_First, _Last) using allocator -; 1680 : _Destroy_range(_First, _Last, _Getal()); +; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1713 : _Lockit _Lock(_LOCK_DEBUG); - 00029 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00035 4c 8b c0 mov r8, rax - 00038 48 8b 95 f0 00 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00051 ba 03 00 00 00 mov edx, 3 + 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005a ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1681 : } +; 1714 : +; 1715 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; - 0004b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 -?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z -_TEXT SEGMENT -$T1 = 196 -this$ = 256 -_First$ = 264 -_Last$ = 272 -_Dest$ = 280 -?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z PROC ; std::vector >::_Umove_if_noexcept, COMDAT + 00060 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax +$LN2@Orphan_ran: -; 1672 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { +; 1716 : while (*_Pnext) { -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00076 48 83 38 00 cmp QWORD PTR [rax], 0 + 0007a 74 5c je SHORT $LN3@Orphan_ran -; 1673 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator -; 1674 : _Umove_if_noexcept1(_First, _Last, _Dest, +; 1717 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; - 0002e 48 8d 85 c4 00 - 00 00 lea rax, QWORD PTR $T1[rbp] - 00035 48 8b f8 mov rdi, rax - 00038 33 c0 xor eax, eax - 0003a b9 01 00 00 00 mov ecx, 1 - 0003f f3 aa rep stosb - 00041 0f b6 85 c4 00 - 00 00 movzx eax, BYTE PTR $T1[rbp] - 00048 88 44 24 20 mov BYTE PTR [rsp+32], al - 0004c 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR _Dest$[rbp] - 00053 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR _Last$[rbp] - 0005a 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _First$[rbp] - 00061 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00068 e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 + 0007c 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00087 48 89 45 48 mov QWORD PTR _Pnextptr$4[rbp], rax -; 1675 : bool_constant, negation>>>{}); -; 1676 : } +; 1718 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator - 0006d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 -?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ENDP ; std::vector >::_Umove_if_noexcept -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z -_TEXT SEGMENT -this$ = 224 -_First$ = 232 -_Last$ = 240 -_Dest$ = 248 -__formal$ = 256 -?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z PROC ; std::vector >::_Umove_if_noexcept1, COMDAT + 0008b 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00092 48 39 45 48 cmp QWORD PTR _Pnextptr$4[rbp], rax + 00096 72 0d jb SHORT $LN6@Orphan_ran + 00098 48 8b 45 48 mov rax, QWORD PTR _Pnextptr$4[rbp] + 0009c 48 39 85 50 01 + 00 00 cmp QWORD PTR _Last$[rbp], rax + 000a3 73 11 jae SHORT $LN4@Orphan_ran +$LN6@Orphan_ran: -; 1662 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { +; 1719 : _Pnext = &(*_Pnext)->_Mynextiter; -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000a5 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000a9 48 8b 00 mov rax, QWORD PTR [rax] + 000ac 48 83 c0 08 add rax, 8 + 000b0 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax -; 1663 : // move [_First, _Last) to raw _Dest, using allocator -; 1664 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1720 : } else { // orphan the iterator - 0002e 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0003a 4c 8b c8 mov r9, rax - 0003d 4c 8b 85 f8 00 - 00 00 mov r8, QWORD PTR _Dest$[rbp] - 00044 48 8b 95 f0 00 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0004b 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 000b4 eb 20 jmp SHORT $LN5@Orphan_ran +$LN4@Orphan_ran: -; 1665 : } +; 1721 : (*_Pnext)->_Myproxy = nullptr; - 00057 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 -?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ENDP ; std::vector >::_Umove_if_noexcept1 + 000b6 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000ba 48 8b 00 mov rax, QWORD PTR [rax] + 000bd 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1722 : *_Pnext = (*_Pnext)->_Mynextiter; + + 000c4 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000c8 48 8b 00 mov rax, QWORD PTR [rax] + 000cb 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$[rbp] + 000cf 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000d3 48 89 01 mov QWORD PTR [rcx], rax +$LN5@Orphan_ran: + +; 1723 : } +; 1724 : } + + 000d6 eb 9a jmp SHORT $LN2@Orphan_ran +$LN3@Orphan_ran: + +; 1725 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1726 : (void) _First; +; 1727 : (void) _Last; +; 1728 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1729 : } + + 000d8 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 000dc ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 000e2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e6 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcFrameData + 000ed e8 00 00 00 00 call _RTC_CheckStackVars + 000f2 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000f9 48 33 cd xor rcx, rbp + 000fc e8 00 00 00 00 call __security_check_cookie + 00101 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00108 5f pop rdi + 00109 5d pop rbp + 0010a c3 ret 0 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ENDP ; std::vector,std::allocator > >::_Orphan_range _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ _TEXT SEGMENT -this$ = 224 -_First$ = 232 -_Last$ = 240 -_Dest$ = 248 -?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT +?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ PROC ; std::vector,std::allocator > >::_Xlength, COMDAT -; 1657 : _CONSTEXPR20_CONTAINER pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { +; 1703 : [[noreturn]] static void _Xlength() { $LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec e8 00 + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1658 : // move [_First, _Last) to raw _Dest, using allocator -; 1659 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1704 : _Xlength_error("vector too long"); - 0002e 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0003a 4c 8b c8 mov r9, rax - 0003d 4c 8b 85 f8 00 - 00 00 mov r8, QWORD PTR _Dest$[rbp] - 00044 48 8b 95 f0 00 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0004b 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ + 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error +$LN2@Xlength: -; 1660 : } +; 1705 : } - 00057 48 8d a5 c8 00 + 00036 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 -?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ENDP ; std::vector >::_Umove + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ ENDP ; std::vector,std::allocator > >::_Xlength _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 -this$ = 256 -?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::capacity, COMDAT +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ PROC ; std::vector,std::allocator > >::_Tidy, COMDAT -; 1557 : _NODISCARD _CONSTEXPR20_CONTAINER size_type capacity() const noexcept { +; 1685 : void _Tidy() noexcept { // free all storage -$LN3: +$LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1558 : auto& _My_data = _Mypair._Myval2; +; 1686 : auto& _My_data = _Mypair._Myval2; - 0001f 48 8b 85 00 01 + 00036 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1559 : return static_cast(_My_data._Myend - _My_data._Myfirst); +; 1687 : pointer& _Myfirst = _My_data._Myfirst; - 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0002e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00032 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00036 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 0003a 48 2b c1 sub rax, rcx - 0003d 48 c1 f8 02 sar rax, 2 + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1560 : } +; 1688 : pointer& _Mylast = _My_data._Mylast; - 00041 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 -?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::capacity -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -_TEXT SEGMENT -$T1 = 200 -$T2 = 232 -this$ = 288 -?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::max_size, COMDAT + 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 -; 1552 : _NODISCARD _CONSTEXPR20_CONTAINER size_type max_size() const noexcept { +; 1689 : pointer& _Myend = _My_data._Myend; -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005d 48 83 c0 18 add rax, 24 + 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + +; 1690 : +; 1691 : _My_data._Orphan_all(); -; 1553 : return (_STD min)( + 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 - 0001f 48 8b 8d 20 01 +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array + + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 + 00 je $LN2@Tidy + +; 1694 : _Destroy(_Myfirst, _Mylast); + + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal - 0002b 48 8b c8 mov rcx, rax - 0002e e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size - 00033 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 0003a e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max - 0003f 48 89 85 e8 00 - 00 00 mov QWORD PTR $T2[rbp], rax - 00046 48 8d 95 c8 00 - 00 00 lea rdx, QWORD PTR $T1[rbp] - 0004d 48 8d 8d e8 00 - 00 00 lea rcx, QWORD PTR $T2[rbp] - 00054 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min - 00059 48 8b 00 mov rax, QWORD PTR [rax] + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy -; 1554 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); -; 1555 : } +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0005c 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 -?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::max_size + 00096 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009d e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 04 sar rax, 4 + 000be 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate + +; 1696 : +; 1697 : _Myfirst = pointer(); + + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1698 : _Mylast = pointer(); + + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1699 : _Myend = pointer(); + + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: + +; 1700 : } +; 1701 : } + + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ ENDP ; std::vector,std::allocator > >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z _TEXT SEGMENT _My_data$ = 8 -this$ = 256 -?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::size, COMDAT +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +_Newvec$ = 376 +_Newsize$ = 384 +_Newcapacity$ = 392 +?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z PROC ; std::vector,std::allocator > >::_Change_array, COMDAT -; 1547 : _NODISCARD _CONSTEXPR20_CONTAINER size_type size() const noexcept { +; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN4: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1548 : auto& _My_data = _Mypair._Myval2; +; 1667 : // orphan all iterators, discard old array, acquire new array +; 1668 : auto& _My_data = _Mypair._Myval2; - 0001f 48 8b 85 00 01 + 00045 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1549 : return static_cast(_My_data._Mylast - _My_data._Myfirst); +; 1669 : pointer& _Myfirst = _My_data._Myfirst; - 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0002e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00032 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00036 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 0003a 48 2b c1 sub rax, rcx - 0003d 48 c1 f8 02 sar rax, 2 + 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 08 add rax, 8 + 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1550 : } +; 1670 : pointer& _Mylast = _My_data._Mylast; - 00041 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 -?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::size -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -_TEXT SEGMENT -this$ = 224 -?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_end, COMDAT + 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00060 48 83 c0 10 add rax, 16 + 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 1671 : pointer& _Myend = _My_data._Myend; + + 00068 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0006c 48 83 c0 18 add rax, 24 + 00070 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + +; 1672 : +; 1673 : _My_data._Orphan_all(); + + 00074 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00078 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1534 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_end() noexcept { +; 1674 : +; 1675 : if (_Myfirst) { // destroy and deallocate old array -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00081 48 83 38 00 cmp QWORD PTR [rax], 0 + 00085 74 71 je SHORT $LN2@Change_arr -; 1535 : return _Mypair._Myval2._Mylast; +; 1676 : _Destroy(_Myfirst, _Mylast); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0008b 4c 8b 00 mov r8, QWORD PTR [rax] + 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00092 48 8b 10 mov rdx, QWORD PTR [rax] + 00095 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009c e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy -; 1536 : } +; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0002a 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 -?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_end -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -_TEXT SEGMENT -this$ = 224 -?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_begin, COMDAT + 000a1 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a8 e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 000ad 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000b4 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000b8 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000bc 48 8b 09 mov rcx, QWORD PTR [rcx] + 000bf 48 8b 00 mov rax, QWORD PTR [rax] + 000c2 48 2b c1 sub rax, rcx + 000c5 48 c1 f8 04 sar rax, 4 + 000c9 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000d0 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000d4 48 8b 00 mov rax, QWORD PTR [rax] + 000d7 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000de 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000e5 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000ec 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000f3 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate +$LN2@Change_arr: -; 1526 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_begin() noexcept { +; 1678 : } +; 1679 : +; 1680 : _Myfirst = _Newvec; -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000f8 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000fc 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00103 48 89 08 mov QWORD PTR [rax], rcx -; 1527 : return _Mypair._Myval2._Myfirst; +; 1681 : _Mylast = _Newvec + _Newsize; - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00106 48 6b 85 80 01 + 00 00 10 imul rax, QWORD PTR _Newsize$[rbp], 16 + 0010e 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00115 48 03 c8 add rcx, rax + 00118 48 8b c1 mov rax, rcx + 0011b 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] + 0011f 48 89 01 mov QWORD PTR [rcx], rax -; 1528 : } +; 1682 : _Myend = _Newvec + _Newcapacity; - 0002a 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 -?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_begin + 00122 48 6b 85 88 01 + 00 00 10 imul rax, QWORD PTR _Newcapacity$[rbp], 16 + 0012a 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00131 48 03 c8 add rcx, rax + 00134 48 8b c1 mov rax, rcx + 00137 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] + 0013b 48 89 01 mov QWORD PTR [rcx], rax + +; 1683 : } + + 0013e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00145 5f pop rdi + 00146 5d pop rbp + 00147 c3 ret 0 +?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z ENDP ; std::vector,std::allocator > >::_Change_array _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z _TEXT SEGMENT -_My_data$ = 8 -tv80 = 216 -tv78 = 224 -this$ = 272 -__$ReturnUdt$ = 280 -?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::end, COMDAT +_Oldcapacity$ = 8 +_Geometric$ = 40 +tv67 = 248 +this$ = 288 +_Newsize$ = 296 +?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z PROC ; std::vector,std::allocator > >::_Calculate_growth, COMDAT -; 1484 : _NODISCARD _CONSTEXPR20_CONTAINER iterator end() noexcept { +; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { -$LN3: +$LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H + 0000c 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1616 : // given _Oldcapacity and _Newsize, calculate geometric growth +; 1617 : const size_type _Oldcapacity = capacity(); + + 0003b 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00042 e8 00 00 00 00 call ?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::capacity + 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax -; 1485 : auto& _My_data = _Mypair._Myval2; +; 1618 : +; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { - 00024 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0004b 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00052 e8 00 00 00 00 call ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::max_size + 00057 48 89 85 f8 00 + 00 00 mov QWORD PTR tv67[rbp], rax + 0005e 33 d2 xor edx, edx + 00060 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 00064 b9 02 00 00 00 mov ecx, 2 + 00069 48 f7 f1 div rcx + 0006c 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv67[rbp] + 00073 48 2b c8 sub rcx, rax + 00076 48 8b c1 mov rax, rcx + 00079 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax + 0007d 76 09 jbe SHORT $LN2@Calculate_ -; 1486 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); +; 1620 : return _Newsize; // geometric growth would overflow - 0002f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00033 e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > - 00038 48 89 85 d8 00 - 00 00 mov QWORD PTR tv80[rbp], rax - 0003f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00043 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00047 48 89 85 e0 00 - 00 00 mov QWORD PTR tv78[rbp], rax - 0004e 4c 8b 85 d8 00 - 00 00 mov r8, QWORD PTR tv80[rbp] - 00055 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR tv78[rbp] - 0005c 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00063 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z - 00068 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 0007f 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 00086 eb 36 jmp SHORT $LN1@Calculate_ +$LN2@Calculate_: -; 1487 : } +; 1621 : } +; 1622 : +; 1623 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; - 0006f 48 8d a5 f8 00 - 00 00 lea rsp, QWORD PTR [rbp+248] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 -?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::end -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ -_TEXT SEGMENT -_My_data$ = 8 -tv80 = 216 -tv78 = 224 -this$ = 272 -__$ReturnUdt$ = 280 -?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::begin, COMDAT + 00088 33 d2 xor edx, edx + 0008a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0008e b9 02 00 00 00 mov ecx, 2 + 00093 48 f7 f1 div rcx + 00096 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] + 0009a 48 03 c8 add rcx, rax + 0009d 48 8b c1 mov rax, rcx + 000a0 48 89 45 28 mov QWORD PTR _Geometric$[rbp], rax -; 1474 : _NODISCARD _CONSTEXPR20_CONTAINER iterator begin() noexcept { +; 1624 : +; 1625 : if (_Geometric < _Newsize) { -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 18 01 - 00 00 sub rsp, 280 ; 00000118H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 000a4 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 000ab 48 39 45 28 cmp QWORD PTR _Geometric$[rbp], rax + 000af 73 09 jae SHORT $LN3@Calculate_ -; 1475 : auto& _My_data = _Mypair._Myval2; +; 1626 : return _Newsize; // geometric growth would be insufficient - 00024 48 8b 85 10 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 000b1 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 000b8 eb 04 jmp SHORT $LN1@Calculate_ +$LN3@Calculate_: -; 1476 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); +; 1627 : } +; 1628 : +; 1629 : return _Geometric; // geometric growth is sufficient - 0002f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00033 e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > - 00038 48 89 85 d8 00 - 00 00 mov QWORD PTR tv80[rbp], rax - 0003f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00043 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00047 48 89 85 e0 00 - 00 00 mov QWORD PTR tv78[rbp], rax - 0004e 4c 8b 85 d8 00 - 00 00 mov r8, QWORD PTR tv80[rbp] - 00055 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR tv78[rbp] - 0005c 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00063 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z - 00068 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Geometric$[rbp] +$LN1@Calculate_: -; 1477 : } +; 1630 : } - 0006f 48 8d a5 f8 00 - 00 00 lea rsp, QWORD PTR [rbp+248] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 -?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::begin + 000be 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 +?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z ENDP ; std::vector,std::allocator > >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z _TEXT SEGMENT -_My_data$ = 8 -_Myfirst$ = 40 -_Mylast$ = 72 -this$ = 320 -?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ PROC ; std::vector >::clear, COMDAT +this$ = 224 +_First$ = 232 +_Last$ = 240 +?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z PROC ; std::vector,std::allocator > >::_Destroy, COMDAT -; 1449 : _CONSTEXPR20_CONTAINER void clear() noexcept { // erase all +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1450 : auto& _My_data = _Mypair._Myval2; - - 0001f 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax - -; 1451 : pointer& _Myfirst = _My_data._Myfirst; + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); - 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 + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Destroy_range > > -; 1452 : pointer& _Mylast = _My_data._Mylast; +; 1613 : } - 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 + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ENDP ; std::vector,std::allocator > >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z +_TEXT SEGMENT +$T1 = 196 +this$ = 256 +_First$ = 264 +_Last$ = 272 +_Dest$ = 280 +?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z PROC ; std::vector,std::allocator > >::_Umove_if_noexcept, COMDAT -; 1453 : -; 1454 : _My_data._Orphan_all(); +; 1605 : void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { - 00042 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00046 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00022 48 8b fc mov rdi, rsp + 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1455 : _Destroy(_Myfirst, _Mylast); +; 1606 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator +; 1607 : _Umove_if_noexcept1(_First, _Last, _Dest, - 0004b 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 0004f 4c 8b 00 mov r8, QWORD PTR [rax] - 00052 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00056 48 8b 10 mov rdx, QWORD PTR [rax] - 00059 48 8b 8d 40 01 + 00045 48 8d 85 c4 00 + 00 00 lea rax, QWORD PTR $T1[rbp] + 0004c 48 8b f8 mov rdi, rax + 0004f 33 c0 xor eax, eax + 00051 b9 01 00 00 00 mov ecx, 1 + 00056 f3 aa rep stosb + 00058 0f b6 85 c4 00 + 00 00 movzx eax, BYTE PTR $T1[rbp] + 0005f 88 44 24 20 mov BYTE PTR [rsp+32], al + 00063 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR _Dest$[rbp] + 0006a 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 00071 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00078 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00060 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy - -; 1456 : _Mylast = _Myfirst; + 0007f e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z ; std::vector,std::allocator > >::_Umove_if_noexcept1 - 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00069 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 0006d 48 8b 09 mov rcx, QWORD PTR [rcx] - 00070 48 89 08 mov QWORD PTR [rax], rcx +; 1608 : bool_constant, negation>>>{}); +; 1609 : } -; 1457 : } - - 00073 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 0007a 5f pop rdi - 0007b 5d pop rbp - 0007c c3 ret 0 -?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ENDP ; std::vector >::clear + 00084 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z ENDP ; std::vector,std::allocator > >::_Umove_if_noexcept _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z _TEXT SEGMENT this$ = 224 -_Val$ = 232 -?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z PROC ; std::vector >::push_back, COMDAT +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +__formal$ = 256 +?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z PROC ; std::vector,std::allocator > >::_Umove_if_noexcept1, COMDAT -; 755 : _CONSTEXPR20_CONTAINER void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee +; 1595 : void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { $LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 756 : emplace_back(_Val); +; 1596 : // move [_First, _Last) to raw _Dest, using allocator +; 1597 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00024 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Val$[rbp] - 0002b 48 8b 8d e0 00 + 00045 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back + 0004c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00051 4c 8b c8 mov r9, rax + 00054 4c 8b 85 f8 00 + 00 00 mov r8, QWORD PTR _Dest$[rbp] + 0005b 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00062 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Uninitialized_move *,std::allocator > > -; 757 : } +; 1598 : } - 00037 48 8d a5 c8 00 + 0006e 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 -?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ENDP ; std::vector >::push_back + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 +?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z ENDP ; std::vector,std::allocator > >::_Umove_if_noexcept1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z _TEXT SEGMENT -$T1 = 196 -$T2 = 228 -tv83 = 248 -tv69 = 248 -this$ = 288 -??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::vector >, COMDAT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z PROC ; std::vector,std::allocator > >::_Umove, COMDAT -; 476 : : _Mypair(_Zero_then_variadic_args_t{}) { +; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 85 f8 00 - 00 00 mov QWORD PTR tv69[rbp], rax - 0002d 0f b6 95 c4 00 - 00 00 movzx edx, BYTE PTR $T1[rbp] - 00034 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR tv69[rbp] - 0003b e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 477 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); +; 1592 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00040 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 89 85 f8 00 - 00 00 mov QWORD PTR tv83[rbp], rax - 0004e 48 8b 8d 20 01 + 00045 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00055 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0005a 48 8b d0 mov rdx, rax - 0005d 48 8d 8d e4 00 - 00 00 lea rcx, QWORD PTR $T2[rbp] - 00064 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 00069 48 8b d0 mov rdx, rax - 0006c 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR tv83[rbp] - 00073 e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > + 0004c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00051 4c 8b c8 mov r9, rax + 00054 4c 8b 85 f8 00 + 00 00 mov r8, QWORD PTR _Dest$[rbp] + 0005b 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00062 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Uninitialized_move *,std::allocator > > -; 478 : } +; 1593 : } - 00078 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0007f 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00086 5f pop rdi - 00087 5d pop rbp - 00088 c3 ret 0 -??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::vector > + 0006e 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 +?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ENDP ; std::vector,std::allocator > >::_Umove _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ _TEXT SEGMENT -__formal$ = 224 -?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT +_My_data$ = 8 +this$ = 256 +?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ PROC ; std::vector,std::allocator > >::capacity, COMDAT -; 727 : _NODISCARD static _CONSTEXPR20_DYNALLOC size_type max_size(const _Alloc&) noexcept { +; 1492 : _NODISCARD size_type capacity() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 728 : return static_cast(-1) / sizeof(value_type); +; 1493 : auto& _My_data = _Mypair._Myval2; - 0001f 48 b8 ff ff ff - ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 729 : } +; 1494 : return static_cast(_My_data._Myend - _My_data._Myfirst); - 00029 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 -?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ENDP ; std::_Default_allocator_traits >::max_size + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004d 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00051 48 2b c1 sub rax, rcx + 00054 48 c1 f8 04 sar rax, 4 + +; 1495 : } + + 00058 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 +?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ENDP ; std::vector,std::allocator > >::capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ _TEXT SEGMENT -this$ = 224 -_Count$ = 232 -?allocate@?$allocator@K@std@@QEAAPEAK_K@Z PROC ; std::allocator::allocate, COMDAT +$T1 = 200 +$T2 = 232 +this$ = 288 +?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ PROC ; std::vector,std::allocator > >::max_size, COMDAT -; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 1487 : _NODISCARD size_type max_size() const noexcept { $LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 00024 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Count$[rbp] - 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1488 : return (_STD min)( + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00042 48 8b c8 mov rcx, rax + 00045 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z ; std::_Default_allocator_traits > >::max_size + 0004a 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00051 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 00056 48 89 85 e8 00 + 00 00 mov QWORD PTR $T2[rbp], rax + 0005d 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00064 48 8d 8d e8 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 0006b e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 00070 48 8b 00 mov rax, QWORD PTR [rax] -; 840 : } +; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1490 : } - 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 -?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ENDP ; std::allocator::allocate + 00073 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c c3 ret 0 +?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ENDP ; std::vector,std::allocator > >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ _TEXT SEGMENT this$ = 224 -_Ptr$ = 232 -_Count$ = 240 -?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT +?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ PROC ; std::vector,std::allocator > >::_Unchecked_end, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 1469 : pointer _Unchecked_end() noexcept { $LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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); + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1470 : return _Mypair._Myval2._Mylast; - 00029 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Count$[rbp] - 00030 48 c1 e0 02 shl rax, 2 - 00034 48 8b d0 mov rdx, rax - 00037 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 40 10 mov rax, QWORD PTR [rax+16] -; 836 : } +; 1471 : } - 00043 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 -?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?_Unchecked_end@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ENDP ; std::vector,std::allocator > >::_Unchecked_end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??0?$allocator@K@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ _TEXT SEGMENT this$ = 224 -??0?$allocator@K@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT +?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ PROC ; std::vector,std::allocator > >::_Unchecked_begin, COMDAT -; 825 : constexpr allocator() noexcept {} +; 1461 : pointer _Unchecked_begin() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15434,343 +20984,273 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -??0?$allocator@K@std@@QEAA@XZ ENDP ; std::allocator::allocator -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z -_TEXT SEGMENT -this$ = 224 -__flags$ = 232 -??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_LINK::`scalar deleting destructor', COMDAT -$LN4: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00023 8b 85 e8 00 00 - 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00035 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete -$LN2@scalar: - 00041 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1462 : return _Mypair._Myval2._Myfirst; + + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0003d 48 8b 40 08 mov rax, QWORD PTR [rax+8] + +; 1463 : } + + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 -??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?_Unchecked_begin@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ENDP ; std::vector,std::allocator > >::_Unchecked_begin _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ??1_NATIVE_CODE_LINK@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ _TEXT SEGMENT -$T1 = 200 -this$ = 256 -??1_NATIVE_CODE_LINK@@QEAA@XZ PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK, COMDAT +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +this$ = 320 +?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ PROC ; std::vector,std::allocator > >::clear, COMDAT -; 38 : { +; 1383 : void clear() noexcept { // erase all -$LN4: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 39 : if (RawData) - - 0001f 48 8b 85 00 01 + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1384 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 - 0002b 74 23 je SHORT $LN2@NATIVE_COD + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 40 : delete RawData; +; 1385 : pointer& _Myfirst = _My_data._Myfirst; - 0002d 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00038 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 0003f ba 01 00 00 00 mov edx, 1 - 00044 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR $T1[rbp] - 0004b e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete -$LN2@NATIVE_COD: + 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 -; 41 : } +; 1386 : pointer& _Mylast = _My_data._Mylast; - 00050 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 -??1_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z -_TEXT SEGMENT -$T1 = 200 -this$ = 256 -F$ = 264 -Rd$ = 272 -Rds$ = 280 -Decode$ = 288 -??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT + 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 -; 25 : { +; 1387 : +; 1388 : _My_data._Orphan_all(); -$LN6: - 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx - 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00013 55 push rbp - 00014 57 push rdi - 00015 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00059 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005d e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 24 : : _NATIVE_CODE_LINK() +; 1389 : _Destroy(_Myfirst, _Mylast); - 0002d 48 8b 8d 00 01 + 00062 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00066 4c 8b 00 mov r8, QWORD PTR [rax] + 00069 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0006d 48 8b 10 mov rdx, QWORD PTR [rax] + 00070 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00034 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00039 90 npad 1 - -; 26 : Flags = F; - - 0003a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00041 8b 8d 08 01 00 - 00 mov ecx, DWORD PTR F$[rbp] - 00047 89 48 18 mov DWORD PTR [rax+24], ecx - -; 27 : RawDataSize = Rds; - - 0004a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00051 8b 8d 18 01 00 - 00 mov ecx, DWORD PTR Rds$[rbp] - 00057 89 48 28 mov DWORD PTR [rax+40], ecx - -; 28 : RawData = new UCHAR[Rds]; - - 0005a 8b 85 18 01 00 - 00 mov eax, DWORD PTR Rds$[rbp] - 00060 8b c8 mov ecx, eax - 00062 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 00067 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 0006e 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00075 48 8b 8d c8 00 - 00 00 mov rcx, QWORD PTR $T1[rbp] - 0007c 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 29 : if (Rd) - - 00080 48 83 bd 10 01 - 00 00 00 cmp QWORD PTR Rd$[rbp], 0 - 00088 74 53 je SHORT $LN2@NATIVE_COD - -; 30 : { -; 31 : RtlCopyMemory(RawData, Rd, Rds); - - 0008a 8b 85 18 01 00 - 00 mov eax, DWORD PTR Rds$[rbp] - 00090 44 8b c0 mov r8d, eax - 00093 48 8b 95 10 01 - 00 00 mov rdx, QWORD PTR Rd$[rbp] - 0009a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 000a5 e8 00 00 00 00 call memcpy - -; 32 : if (Decode) + 00077 e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy - 000aa 83 bd 20 01 00 - 00 00 cmp DWORD PTR Decode$[rbp], 0 - 000b1 74 2a je SHORT $LN2@NATIVE_COD - -; 33 : XedDecode(&XedInstruction, RawData, RawDataSize); +; 1390 : _Mylast = _Myfirst; - 000b3 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000ba 48 83 c0 30 add rax, 48 ; 00000030H - 000be 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000c5 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 000c9 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000d0 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000d4 48 8b c8 mov rcx, rax - 000d7 e8 00 00 00 00 call xed_decode - 000dc 90 npad 1 -$LN2@NATIVE_COD: + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 00084 48 8b 09 mov rcx, QWORD PTR [rcx] + 00087 48 89 08 mov QWORD PTR [rax], rcx -; 34 : } -; 35 : } +; 1391 : } - 000dd 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000e4 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000eb 5f pop rdi - 000ec 5d pop rbp - 000ed c3 ret 0 -??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -$T1 = 200 -this$ = 256 -F$ = 264 -Rd$ = 272 -Rds$ = 280 -Decode$ = 288 -?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA PROC ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -$T1 = 200 -this$ = 256 -F$ = 264 -Rd$ = 272 -Rds$ = 280 -Decode$ = 288 -?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA PROC ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 -text$x ENDS + 0008a 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 +?clear@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAXXZ ENDP ; std::vector,std::allocator > >::clear +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ _TEXT SEGMENT -this$ = 224 -LabelId$ = 232 -B$ = 240 -??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT +_Alproxy$ = 8 +$S2$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ PROC ; std::vector,std::allocator > >::~vector,std::allocator > >, COMDAT -; 17 : { +; 672 : ~vector() noexcept { -$LN4: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000e 55 push rbp - 0000f 57 push rdi - 00010 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 673 : _Tidy(); + + 00047 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXXZ ; std::vector,std::allocator > >::_Tidy -; 16 : : _NATIVE_CODE_LINK() +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00028 48 8b 8d e0 00 + 00053 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0002f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0005a e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S2$[rbp] + 00066 e8 00 00 00 00 call ??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::allocator::allocator > + 0006b 48 8d 45 24 lea rax, QWORD PTR $S2$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 18 : Block = B; +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00034 48 8b 85 e0 00 + 00073 48 c7 85 04 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003b 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR B$[rbp] - 00042 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00085 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } + + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ$rtcFrameData + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 +??1?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ ENDP ; std::vector,std::allocator > >::~vector,std::allocator > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ +_TEXT SEGMENT +$T1 = 196 +$T2 = 228 +tv83 = 248 +tv69 = 248 +this$ = 288 +??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ PROC ; std::vector,std::allocator > >::vector,std::allocator > >, COMDAT -; 19 : Label = LabelId; +; 445 : vector() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { - 00046 48 8b 85 e0 00 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 8b 8d e8 00 00 - 00 mov ecx, DWORD PTR LabelId$[rbp] - 00053 89 48 1c mov DWORD PTR [rax+28], ecx + 0003d 48 89 85 f8 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 00044 0f b6 95 c4 00 + 00 00 movzx edx, BYTE PTR $T1[rbp] + 0004b 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 00052 e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Compressed_pair >,std::_Vector_val > >,1><> -; 20 : Flags = CODE_FLAG_IS_LABEL; +; 446 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 00056 48 8b 85 e0 00 + 00057 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005d c7 40 18 01 00 - 00 00 mov DWORD PTR [rax+24], 1 + 0005e 48 89 85 f8 00 + 00 00 mov QWORD PTR tv83[rbp], rax + 00065 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00071 48 8b d0 mov rdx, rax + 00074 48 8d 8d e4 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 0007b e8 00 00 00 00 call ??$?0U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::allocator::allocator > + 00080 48 8b d0 mov rdx, rax + 00083 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv83[rbp] + 0008a e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > -; 21 : } +; 447 : } - 00064 48 8b 85 e0 00 + 0008f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 -??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00096 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0009d 5f pop rdi + 0009e 5d pop rbp + 0009f c3 ret 0 +??0?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@XZ ENDP ; std::vector,std::allocator > >::vector,std::allocator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z _TEXT SEGMENT -this$ = 224 -??0_NATIVE_CODE_LINK@@QEAA@XZ PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT +__formal$ = 224 +?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z PROC ; std::_Default_allocator_traits > >::max_size, COMDAT -; 4 : { +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15779,88 +21259,160 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 5 : XedDecodedInstZero(&XedInstruction); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 c0 30 add rax, 48 ; 00000030H - 0002a 48 8b c8 mov rcx, rax - 0002d e8 00 00 00 00 call xed_decoded_inst_zero - -; 6 : XedDecodedInstSetMode(&XedInstruction, XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b); - - 00032 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 83 c0 30 add rax, 48 ; 00000030H - 0003d 41 b8 08 00 00 - 00 mov r8d, 8 - 00043 ba 01 00 00 00 mov edx, 1 - 00048 48 8b c8 mov rcx, rax - 0004b e8 00 00 00 00 call xed_decoded_inst_set_mode - -; 7 : Flags = 0UL; - - 00050 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00057 c7 40 18 00 00 - 00 00 mov DWORD PTR [rax+24], 0 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 703 : return static_cast(-1) / sizeof(value_type); + + 00036 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH -; 8 : Next = Prev = NULL; +; 704 : } - 0005e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00065 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - 0006d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00074 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z ENDP ; std::_Default_allocator_traits > >::max_size +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z PROC ; std::allocator >::allocate, COMDAT -; 9 : Block = NULL; +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { - 0007b 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00082 48 c7 40 10 00 - 00 00 00 mov QWORD PTR [rax+16], 0 +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 10 : Label = 0UL; +; 808 : } - 0008a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00091 c7 40 1c 00 00 - 00 00 mov DWORD PTR [rax+28], 0 + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ENDP ; std::allocator >::allocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +_TEXT SEGMENT +this$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z PROC ; std::allocator >::deallocate, COMDAT -; 11 : RawData = NULL; +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { - 00098 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0009f 48 c7 40 20 00 - 00 00 00 mov QWORD PTR [rax+32], 0 +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 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 6b 85 f0 00 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 12 : RawDataSize = 0UL; +; 804 : } - 000a7 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 000ae c7 40 28 00 00 - 00 00 mov DWORD PTR [rax+40], 0 + 00057 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 +?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ENDP ; std::allocator >::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ PROC ; std::allocator >::allocator >, COMDAT -; 13 : } +; 795 : constexpr allocator() noexcept {} - 000b5 48 8b 85 e0 00 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000bc 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000c3 5f pop rdi - 000c4 5d pop rbp - 000c5 c3 ret 0 -??0_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??0?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAA@XZ ENDP ; std::allocator >::allocator > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_length _TEXT SEGMENT p$ = 224 @@ -15874,28 +21426,34 @@ xed_decoded_inst_get_length PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 283 : return p->_decoded_length; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b6 80 a6 00 + 0003d 0f b6 80 a6 00 00 00 movzx eax, BYTE PTR [rax+166] ; 284 : } - 0002d 48 8d a5 c8 00 + 00044 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00034 5f pop rdi - 00035 5d pop rbp - 00036 c3 ret 0 + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 xed_decoded_inst_get_length ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_set_mode _TEXT SEGMENT dstate$ = 8 @@ -15915,60 +21473,60 @@ xed_decoded_inst_set_mode PROC ; COMDAT 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00021 b9 0a 00 00 00 mov ecx, 10 - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 28 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 d8 00 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 260 : xed_state_t dstate; ; 261 : dstate.mmode = mmode; - 00052 8b 85 08 01 00 + 00050 8b 85 08 01 00 00 mov eax, DWORD PTR mmode$[rbp] - 00058 89 45 08 mov DWORD PTR dstate$[rbp], eax + 00056 89 45 08 mov DWORD PTR dstate$[rbp], eax ; 262 : dstate.stack_addr_width = stack_addr_width; - 0005b 8b 85 10 01 00 + 00059 8b 85 10 01 00 00 mov eax, DWORD PTR stack_addr_width$[rbp] - 00061 89 45 0c mov DWORD PTR dstate$[rbp+4], eax + 0005f 89 45 0c mov DWORD PTR dstate$[rbp+4], eax ; 263 : xed_operand_values_set_mode(p, &dstate); - 00064 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] - 00068 48 8b 8d 00 01 + 00062 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] + 00066 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 0006f e8 00 00 00 00 call xed_operand_values_set_mode + 0006d e8 00 00 00 00 call xed_operand_values_set_mode ; 264 : } - 00074 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00078 48 8d 15 00 00 + 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00076 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_decoded_inst_set_mode$rtcFrameData - 0007f e8 00 00 00 00 call _RTC_CheckStackVars - 00084 48 8b 8d d8 00 + 0007d e8 00 00 00 00 call _RTC_CheckStackVars + 00082 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0008b 48 33 cd xor rcx, rbp - 0008e e8 00 00 00 00 call __security_check_cookie - 00093 48 8d a5 e8 00 + 00089 48 33 cd xor rcx, rbp + 0008c e8 00 00 00 00 call __security_check_cookie + 00091 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0009a 5f pop rdi - 0009b 5d pop rbp - 0009c c3 ret 0 + 00098 5f pop rdi + 00099 5d pop rbp + 0009a c3 ret 0 xed_decoded_inst_set_mode ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_noperands _TEXT SEGMENT noperands$ = 4 @@ -15983,34 +21541,40 @@ xed_decoded_inst_noperands PROC ; COMDAT 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 171 : unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); - 0001f 48 8b 8d 00 01 + 00036 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 00026 e8 00 00 00 00 call xed_decoded_inst_inst - 0002b 48 8b c8 mov rcx, rax - 0002e e8 00 00 00 00 call xed_inst_noperands - 00033 89 45 04 mov DWORD PTR noperands$[rbp], eax + 0003d e8 00 00 00 00 call xed_decoded_inst_inst + 00042 48 8b c8 mov rcx, rax + 00045 e8 00 00 00 00 call xed_inst_noperands + 0004a 89 45 04 mov DWORD PTR noperands$[rbp], eax ; 172 : return noperands; - 00036 8b 45 04 mov eax, DWORD PTR noperands$[rbp] + 0004d 8b 45 04 mov eax, DWORD PTR noperands$[rbp] ; 173 : } - 00039 48 8d a5 e8 00 + 00050 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00040 5f pop rdi - 00041 5d pop rbp - 00042 c3 ret 0 + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 xed_decoded_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_iclass _TEXT SEGMENT p$ = 224 @@ -16024,36 +21588,42 @@ xed_decoded_inst_get_iclass PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 76 : xed_assert(p->_inst != 0); - 0001f 33 c0 xor eax, eax - 00021 85 c0 test eax, eax - 00023 75 fa jne SHORT $LN4@xed_decode + 00036 33 c0 xor eax, eax + 00038 85 c0 test eax, eax + 0003a 75 fa jne SHORT $LN4@xed_decode ; 77 : return xed_inst_iclass(p->_inst); - 00025 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0002c 48 8b 88 a8 00 + 00043 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 00033 e8 00 00 00 00 call xed_inst_iclass + 0004a e8 00 00 00 00 call xed_inst_iclass ; 78 : } - 00038 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 xed_decoded_inst_get_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_category _TEXT SEGMENT p$ = 224 @@ -16067,36 +21637,42 @@ xed_decoded_inst_get_category PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 55 : xed_assert(p->_inst != 0); - 0001f 33 c0 xor eax, eax - 00021 85 c0 test eax, eax - 00023 75 fa jne SHORT $LN4@xed_decode + 00036 33 c0 xor eax, eax + 00038 85 c0 test eax, eax + 0003a 75 fa jne SHORT $LN4@xed_decode ; 56 : return xed_inst_category(p->_inst); - 00025 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0002c 48 8b 88 a8 00 + 00043 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 00033 e8 00 00 00 00 call xed_inst_category + 0004a e8 00 00 00 00 call xed_inst_category ; 57 : } - 00038 48 8d a5 c8 00 + 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 xed_decoded_inst_get_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_inst _TEXT SEGMENT p$ = 224 @@ -16110,28 +21686,34 @@ xed_decoded_inst_inst PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 47 : return p->_inst; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 48 8b 80 a8 00 + 0003d 48 8b 80 a8 00 00 00 mov rax, QWORD PTR [rax+168] ; 48 : } - 0002d 48 8d a5 c8 00 + 00044 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00034 5f pop rdi - 00035 5d pop rbp - 00036 c3 ret 0 + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 xed_decoded_inst_inst ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -16153,80 +21735,86 @@ xed_inst1 PROC ; COMDAT 00017 48 81 ec e0 00 00 00 sub rsp, 224 ; 000000e0H 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00023 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h - 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b fc mov rdi, rsp + 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H + 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00030 f3 ab rep stosd + 00032 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0003a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h + 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 0002f 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00036 48 8b 8d e8 00 + 0004d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 0003d 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00040 48 8b 85 e0 00 + 00057 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00047 8b 8d f0 00 00 + 0005e 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 0004d 89 48 08 mov DWORD PTR [rax+8], ecx + 00064 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00050 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00057 8b 8d f8 00 00 + 0006e 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 0005d 89 48 0c mov DWORD PTR [rax+12], ecx + 00074 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00060 48 8b 85 e0 00 + 00077 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00067 c7 40 10 00 00 + 0007e c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 0006e 48 8b 85 e0 00 + 00085 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00075 c7 40 14 00 00 + 0008c c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 0007c b8 30 00 00 00 mov eax, 48 ; 00000030H - 00081 48 6b c0 00 imul rax, rax, 0 - 00085 48 8b 8d e0 00 + 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H + 00098 48 6b c0 00 imul rax, rax, 0 + 0009c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR inst$[rbp] - 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 00091 48 8b b5 00 01 + 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 000a8 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009d f3 a4 rep movsb + 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b4 f3 a4 rep movsb ; 498 : inst->noperands = 1; - 0009f 48 8b 85 e0 00 + 000b6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000a6 c7 40 18 01 00 + 000bd c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000ad 48 8d a5 c0 00 + 000c4 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000cb 5f pop rdi + 000cc 5e pop rsi + 000cd 5d pop rbp + 000ce c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -16247,72 +21835,72 @@ xed_relbr PROC ; COMDAT 00011 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 14 00 00 00 mov ecx, 20 - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 08 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00053 c7 45 08 01 00 + 00051 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 0005a 8b 85 38 01 00 + 00058 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax + 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00063 8b 85 40 01 00 + 00061 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 00070 48 8b bd 30 01 + 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 0006e 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 00077 48 8b f0 mov rsi, rax - 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007f f3 a4 rep movsb - 00081 48 8b 85 30 01 + 00075 48 8b f0 mov rsi, rax + 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007d f3 a4 rep movsb + 0007f 48 8b 85 30 01 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00088 48 8b f8 mov rdi, rax - 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008f 48 8d 15 00 00 + 00086 48 8b f8 mov rdi, rax + 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00096 e8 00 00 00 00 call _RTC_CheckStackVars - 0009b 48 8b c7 mov rax, rdi - 0009e 48 8b 8d 08 01 + 00094 e8 00 00 00 00 call _RTC_CheckStackVars + 00099 48 8b c7 mov rax, rdi + 0009c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a5 48 33 cd xor rcx, rbp - 000a8 e8 00 00 00 00 call __security_check_cookie - 000ad 48 8d a5 10 01 + 000a3 48 33 cd xor rcx, rbp + 000a6 e8 00 00 00 00 call __security_check_cookie + 000ab 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000b2 5f pop rdi + 000b3 5e pop rsi + 000b4 5d pop rbp + 000b5 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_noperands _TEXT SEGMENT p$ = 224 @@ -16326,27 +21914,33 @@ xed_inst_noperands PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 313 : return p->_noperands; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b6 00 movzx eax, BYTE PTR [rax] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] ; 314 : } - 00029 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 xed_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_category _TEXT SEGMENT p$ = 224 @@ -16360,29 +21954,35 @@ xed_inst_category PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 298 : return xed_iform_to_category(xed_inst_iform_enum(p)); - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 00026 e8 00 00 00 00 call xed_inst_iform_enum - 0002b 8b c8 mov ecx, eax - 0002d e8 00 00 00 00 call xed_iform_to_category + 0003d e8 00 00 00 00 call xed_inst_iform_enum + 00042 8b c8 mov ecx, eax + 00044 e8 00 00 00 00 call xed_iform_to_category ; 299 : } - 00032 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 xed_inst_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iclass _TEXT SEGMENT p$ = 224 @@ -16396,29 +21996,35 @@ xed_inst_iclass PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 294 : return xed_iform_to_iclass(xed_inst_iform_enum(p)); - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 00026 e8 00 00 00 00 call xed_inst_iform_enum - 0002b 8b c8 mov ecx, eax - 0002d e8 00 00 00 00 call xed_iform_to_iclass + 0003d e8 00 00 00 00 call xed_inst_iform_enum + 00042 8b c8 mov ecx, eax + 00044 e8 00 00 00 00 call xed_iform_to_iclass ; 295 : } - 00032 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 xed_inst_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iform_enum _TEXT SEGMENT p$ = 224 @@ -16432,27 +22038,33 @@ xed_inst_iform_enum PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 290 : return (xed_iform_enum_t)p->_iform_enum; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b7 40 06 movzx eax, WORD PTR [rax+6] + 0003d 0f b7 40 06 movzx eax, WORD PTR [rax+6] ; 291 : } - 0002a 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 xed_inst_iform_enum ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_operand_type _TEXT SEGMENT p$ = 224 @@ -16466,27 +22078,33 @@ xed_operand_type PROC ; COMDAT 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 97 : return (xed_operand_type_enum_t)p->_type; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b6 40 04 movzx eax, BYTE PTR [rax+4] + 0003d 0f b6 40 04 movzx eax, BYTE PTR [rax+4] ; 98 : } - 0002a 48 8d a5 c8 00 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00031 5f pop rdi - 00032 5d pop rbp - 00033 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 xed_operand_type ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h ; COMDAT xed_iform_to_iclass _TEXT SEGMENT ii$ = 8 @@ -16501,46 +22119,52 @@ xed_iform_to_iclass PROC ; COMDAT 00006 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F79B480A_xed-iform-map@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00012 48 8b fc mov rdi, rsp + 00015 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001f f3 ab rep stosd + 00021 8b 8c 24 28 01 + 00 00 mov ecx, DWORD PTR [rsp+296] + 00028 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__642E1CAE_xed-iform-map@h + 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 75 : const xed_iform_info_t* ii = xed_iform_map(iform); - 0001e 8b 8d 00 01 00 + 00034 8b 8d 00 01 00 00 mov ecx, DWORD PTR iform$[rbp] - 00024 e8 00 00 00 00 call xed_iform_map - 00029 48 89 45 08 mov QWORD PTR ii$[rbp], rax + 0003a e8 00 00 00 00 call xed_iform_map + 0003f 48 89 45 08 mov QWORD PTR ii$[rbp], rax ; 76 : if (ii) - 0002d 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 - 00032 74 0d je SHORT $LN2@xed_iform_ + 00043 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 + 00048 74 0d je SHORT $LN2@xed_iform_ ; 77 : return (xed_iclass_enum_t) ii->iclass; - 00034 48 8b 45 08 mov rax, QWORD PTR ii$[rbp] - 00038 8b 00 mov eax, DWORD PTR [rax] - 0003a 25 ff ff 00 00 and eax, 65535 ; 0000ffffH - 0003f eb 02 jmp SHORT $LN1@xed_iform_ + 0004a 48 8b 45 08 mov rax, QWORD PTR ii$[rbp] + 0004e 8b 00 mov eax, DWORD PTR [rax] + 00050 25 ff ff 00 00 and eax, 65535 ; 0000ffffH + 00055 eb 02 jmp SHORT $LN1@xed_iform_ $LN2@xed_iform_: ; 78 : return XED_ICLASS_INVALID; - 00041 33 c0 xor eax, eax + 00057 33 c0 xor eax, eax $LN1@xed_iform_: ; 79 : } - 00043 48 8d a5 e8 00 + 00059 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00060 5f pop rdi + 00061 5d pop rbp + 00062 c3 ret 0 xed_iform_to_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -16551,7 +22175,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16563,141 +22187,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -16708,7 +22338,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16720,141 +22350,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ios +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ios ; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z _TEXT SEGMENT _Iosbase$ = 224 @@ -16869,36 +22505,42 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FD1AE8DD_ios - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); - 0001f 41 b8 00 0e 00 + 00036 41 b8 00 0e 00 00 mov r8d, 3584 ; 00000e00H - 00025 ba 00 08 00 00 mov edx, 2048 ; 00000800H - 0002a 48 8b 8d e0 00 + 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H + 00041 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00031 ff 15 00 00 00 + 00048 ff 15 00 00 00 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z ; 208 : return _Iosbase; - 00037 48 8b 85 e0 00 + 0004e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Iosbase$[rbp] ; 209 : } - 0003e 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -16909,7 +22551,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16920,98 +22562,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00029 48 8b 8d 40 01 + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -17028,73 +22676,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -17113,7 +22767,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17124,260 +22778,260 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ _TEXT SEGMENT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 477 : _NODISCARD static constexpr int_type eof() noexcept { +; 400 : _NODISCARD static constexpr int_type eof() noexcept { $LN3: 00000 40 55 push rbp @@ -17385,25 +23039,29 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 478 : return static_cast(EOF); +; 401 : return static_cast(EOF); - 0001b b8 ff ff ff ff mov eax, -1 + 0002a b8 ff ff ff ff mov eax, -1 -; 479 : } +; 402 : } - 00020 48 8d a5 c8 00 + 0002f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00027 5f pop rdi - 00028 5d pop rbp - 00029 c3 ret 0 + 00036 5f pop rdi + 00037 5d pop rbp + 00038 c3 ret 0 ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring ; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z _TEXT SEGMENT tv65 = 192 @@ -17411,7 +23069,7 @@ _Left$ = 240 _Right$ = 248 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT -; 469 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17421,49 +23079,55 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 470 : return _Left == _Right; - - 00024 48 8b 85 f0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 393 : return _Left == _Right; + + 0003b 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 0002b 48 8b 8d f8 00 + 00042 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00032 8b 09 mov ecx, DWORD PTR [rcx] - 00034 39 08 cmp DWORD PTR [rax], ecx - 00036 75 0c jne SHORT $LN3@eq_int_typ - 00038 c7 85 c0 00 00 + 00049 8b 09 mov ecx, DWORD PTR [rcx] + 0004b 39 08 cmp DWORD PTR [rax], ecx + 0004d 75 0c jne SHORT $LN3@eq_int_typ + 0004f c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 - 00042 eb 0a jmp SHORT $LN4@eq_int_typ + 00059 eb 0a jmp SHORT $LN4@eq_int_typ $LN3@eq_int_typ: - 00044 c7 85 c0 00 00 + 0005b c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 $LN4@eq_int_typ: - 0004e 0f b6 85 c0 00 + 00065 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv65[rbp] -; 471 : } +; 394 : } - 00055 48 8d a5 d8 00 + 0006c 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z _TEXT SEGMENT $T1 = 200 -tv80 = 216 +tv78 = 216 _Obj$ = 256 <_Args_0>$ = 264 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z PROC ; std::_Construct_in_place, COMDAT -; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17473,394 +23137,196 @@ $LN3: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 8d 00 01 + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 0002b e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof - 00030 48 8b c8 mov rcx, rax - 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter - 00038 48 8b d0 mov rdx, rax - 0003b b9 10 00 00 00 mov ecx, 16 - 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00045 48 89 85 c8 00 + 00042 e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof + 00047 48 8b d0 mov rdx, rax + 0004a b9 10 00 00 00 mov ecx, 16 + 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00054 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0004c 48 8b 8d 08 01 + 0005b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00053 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward - 00058 48 8b 00 mov rax, QWORD PTR [rax] - 0005b 48 89 85 d8 00 - 00 00 mov QWORD PTR tv80[rbp], rax - 00062 48 8b 95 d8 00 - 00 00 mov rdx, QWORD PTR tv80[rbp] - 00069 48 8b 8d c8 00 + 00062 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 89 85 d8 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 00071 48 8b 95 d8 00 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 00078 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00070 e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy - -; 152 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 153 : if (_STD is_constant_evaluated()) { -; 154 : _STD construct_at(_STD addressof(_Obj), _STD forward<_Types>(_Args)...); -; 155 : } else -; 156 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 157 : { -; 158 : ::new (_Voidify_iter(_STD addressof(_Obj))) _Ty(_STD forward<_Types>(_Args)...); -; 159 : } -; 160 : } + 0007f e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy + 00084 90 npad 1 - 00075 48 8d a5 e8 00 +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 00085 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0007c 5f pop rdi - 0007d 5d pop rbp - 0007e c3 ret 0 + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ENDP ; std::_Construct_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 +_Pnext$1 = 8 this$ = 256 -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_locked, COMDAT - -; 1212 : void _Orphan_me_locked() noexcept { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1213 : _Lockit _Lock(_LOCK_DEBUG); - - 00049 ba 03 00 00 00 mov edx, 3 - 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00052 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1214 : _Orphan_me_unlocked(); - - 00058 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f e8 00 00 00 00 call ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked - -; 1215 : } - - 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00068 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcFrameData - 00079 e8 00 00 00 00 call _RTC_CheckStackVars - 0007e 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00085 48 33 cd xor rcx, rbp - 00088 e8 00 00 00 00 call __security_check_cookie - 0008d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00094 5f pop rdi - 00095 5d pop rbp - 00096 c3 ret 0 -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_locked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ -_TEXT SEGMENT -_Pnext$ = 8 -_Temp$1 = 40 -this$ = 288 -?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_unlocked, COMDAT +?_Orphan_me@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me, COMDAT -; 1200 : _CONSTEXPR20_CONTAINER void _Orphan_me_unlocked() noexcept { +; 1184 : void _Orphan_me() noexcept { -$LN14: +$LN15: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H + 00007 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1185 : if (_Myproxy) { // adopted, remove self from list + + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 0f 84 da 00 00 + 00 je $LN10@Orphan_me -; 1201 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; +; 1186 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; - 0001f 48 8b 85 20 01 + 00047 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 83 c0 08 add rax, 8 - 0002d 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax -$LN2@Orphan_me_: - -; 1202 : while (*_Pnext && *_Pnext != this) { - - 00031 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 00035 48 83 38 00 cmp QWORD PTR [rax], 0 - 00039 74 29 je SHORT $LN6@Orphan_me_ - 0003b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 0003f 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00046 48 39 08 cmp QWORD PTR [rax], rcx - 00049 74 19 je SHORT $LN6@Orphan_me_ + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 83 c0 08 add rax, 8 + 00055 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax +$LN2@Orphan_me: -; 1203 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 +; 1187 : while (*_Pnext && *_Pnext != this) { - 0004b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 0004f 48 8b 00 mov rax, QWORD PTR [rax] - 00052 48 89 45 28 mov QWORD PTR _Temp$1[rbp], rax + 00059 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 0005d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00061 74 21 je SHORT $LN6@Orphan_me + 00063 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00067 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006e 48 39 08 cmp QWORD PTR [rax], rcx + 00071 74 11 je SHORT $LN6@Orphan_me -; 1204 : _Pnext = &_Temp->_Mynextiter; +; 1188 : _Pnext = &(*_Pnext)->_Mynextiter; - 00056 48 8b 45 28 mov rax, QWORD PTR _Temp$1[rbp] - 0005a 48 83 c0 08 add rax, 8 - 0005e 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax + 00073 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00077 48 8b 00 mov rax, QWORD PTR [rax] + 0007a 48 83 c0 08 add rax, 8 + 0007e 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax -; 1205 : } +; 1189 : } - 00062 eb cd jmp SHORT $LN2@Orphan_me_ -$LN6@Orphan_me_: + 00082 eb d5 jmp SHORT $LN2@Orphan_me +$LN6@Orphan_me: -; 1206 : -; 1207 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); +; 1190 : +; 1191 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); - 00064 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 00068 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006c 74 02 je SHORT $LN9@Orphan_me_ - 0006e eb 6b jmp SHORT $LN11@Orphan_me_ -$LN9@Orphan_me_: - 00070 48 8d 05 00 00 + 00084 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00088 48 83 38 00 cmp QWORD PTR [rax], 0 + 0008c 74 02 je SHORT $LN9@Orphan_me + 0008e eb 6b jmp SHORT $LN12@Orphan_me +$LN9@Orphan_me: + 00090 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ - 00077 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0007c 48 8d 05 00 00 + 00097 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0009c 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00083 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00088 45 33 c9 xor r9d, r9d - 0008b 41 b8 b7 04 00 - 00 mov r8d, 1207 ; 000004b7H - 00091 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00098 b9 02 00 00 00 mov ecx, 2 - 0009d ff 15 00 00 00 + 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000a8 45 33 c9 xor r9d, r9d + 000ab 41 b8 a7 04 00 + 00 mov r8d, 1191 ; 000004a7H + 000b1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000b8 b9 02 00 00 00 mov ecx, 2 + 000bd ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000a3 83 f8 01 cmp eax, 1 - 000a6 75 03 jne SHORT $LN13@Orphan_me_ - 000a8 cc int 3 - 000a9 33 c0 xor eax, eax -$LN13@Orphan_me_: - 000ab 48 c7 44 24 20 + 000c3 83 f8 01 cmp eax, 1 + 000c6 75 03 jne SHORT $LN14@Orphan_me + 000c8 cc int 3 + 000c9 33 c0 xor eax, eax +$LN14@Orphan_me: + 000cb 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000b4 41 b9 b7 04 00 - 00 mov r9d, 1207 ; 000004b7H - 000ba 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000c1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ - 000c8 48 8d 0d 00 00 + 000d4 41 b9 a7 04 00 + 00 mov r9d, 1191 ; 000004a7H + 000da 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000e1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ + 000e8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ - 000cf ff 15 00 00 00 + 000ef ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000d5 33 c0 xor eax, eax - 000d7 85 c0 test eax, eax - 000d9 75 95 jne SHORT $LN9@Orphan_me_ -$LN11@Orphan_me_: - 000db 33 c0 xor eax, eax - 000dd 85 c0 test eax, eax - 000df 75 83 jne SHORT $LN6@Orphan_me_ - -; 1208 : *_Pnext = _Mynextiter; - - 000e1 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] - 000e5 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000ec 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000f0 48 89 08 mov QWORD PTR [rax], rcx - -; 1209 : _Myproxy = nullptr; - - 000f3 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000fa 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 - -; 1210 : } - - 00101 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00108 5f pop rdi - 00109 5d pop rbp - 0010a c3 ret 0 -?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_unlocked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z -_TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -_Parent_proxy$ = 264 -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z PROC ; std::_Iterator_base12::_Adopt_locked, COMDAT - -; 1195 : void _Adopt_locked(_Container_proxy* _Parent_proxy) noexcept { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 0001d b9 0a 00 00 00 mov ecx, 10 - 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00027 f3 ab rep stosd - 00029 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00031 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00038 48 33 c5 xor rax, rbp - 0003b 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00042 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1196 : _Lockit _Lock(_LOCK_DEBUG); - - 0004e ba 03 00 00 00 mov edx, 3 - 00053 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00057 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1197 : _Adopt_unlocked(_Parent_proxy); - - 0005d 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Parent_proxy$[rbp] - 00064 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0006b e8 00 00 00 00 call ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_unlocked - -; 1198 : } - - 00070 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00074 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0007a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0007e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcFrameData - 00085 e8 00 00 00 00 call _RTC_CheckStackVars - 0008a 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00091 48 33 cd xor rcx, rbp - 00094 e8 00 00 00 00 call __security_check_cookie - 00099 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000a0 5f pop rdi - 000a1 5d pop rbp - 000a2 c3 ret 0 -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ENDP ; std::_Iterator_base12::_Adopt_locked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z -_TEXT SEGMENT -this$ = 224 -_Parent_proxy$ = 232 -?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z PROC ; std::_Iterator_base12::_Adopt_unlocked, COMDAT - -; 1186 : _CONSTEXPR20_CONTAINER void _Adopt_unlocked(_Container_proxy* _Parent_proxy) noexcept { - -$LN4: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1187 : if (_Myproxy) { // adopted, remove self from list - - 00024 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002f 74 0c je SHORT $LN2@Adopt_unlo - -; 1188 : _Orphan_me_unlocked(); - - 00031 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00038 e8 00 00 00 00 call ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked -$LN2@Adopt_unlo: - -; 1189 : } -; 1190 : _Mynextiter = _Parent_proxy->_Myfirstiter; - - 0003d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00044 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Parent_proxy$[rbp] - 0004b 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 75 95 jne SHORT $LN9@Orphan_me +$LN12@Orphan_me: + 000fb 33 c0 xor eax, eax + 000fd 85 c0 test eax, eax + 000ff 75 83 jne SHORT $LN6@Orphan_me -; 1191 : _Parent_proxy->_Myfirstiter = this; +; 1192 : *_Pnext = _Mynextiter; - 00053 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _Parent_proxy$[rbp] - 0005a 48 8b 8d e0 00 + 00101 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00105 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00061 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0010c 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00110 48 89 08 mov QWORD PTR [rax], rcx -; 1192 : _Myproxy = _Parent_proxy; +; 1193 : _Myproxy = nullptr; - 00065 48 8b 85 e0 00 + 00113 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006c 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Parent_proxy$[rbp] - 00073 48 89 08 mov QWORD PTR [rax], rcx + 0011a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN10@Orphan_me: -; 1193 : } +; 1194 : } +; 1195 : } - 00076 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0007d 5f pop rdi - 0007e 5d pop rbp - 0007f c3 ret 0 -?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ENDP ; std::_Iterator_base12::_Adopt_unlocked + 00121 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00128 5f pop rdi + 00129 5d pop rbp + 0012a c3 ret 0 +?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ _TEXT SEGMENT tv68 = 192 this$ = 240 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ PROC ; std::_Iterator_base12::_Getcont, COMDAT -; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { +; 1179 : const _Container_base12* _Getcont() const noexcept { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17869,298 +23335,396 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; - - 0001f 48 8b 85 f0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1180 : return _Myproxy ? _Myproxy->_Mycont : nullptr; + + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 16 je SHORT $LN3@Getcont - 0002c 48 8b 85 f0 00 + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 74 16 je SHORT $LN3@Getcont + 00043 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00033 48 8b 00 mov rax, QWORD PTR [rax] - 00036 48 8b 00 mov rax, QWORD PTR [rax] - 00039 48 89 85 c0 00 + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 8b 00 mov rax, QWORD PTR [rax] + 00050 48 89 85 c0 00 00 00 mov QWORD PTR tv68[rbp], rax - 00040 eb 0b jmp SHORT $LN4@Getcont + 00057 eb 0b jmp SHORT $LN4@Getcont $LN3@Getcont: - 00042 48 c7 85 c0 00 + 00059 48 c7 85 c0 00 00 00 00 00 00 00 mov QWORD PTR tv68[rbp], 0 $LN4@Getcont: - 0004d 48 8b 85 c0 00 + 00064 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv68[rbp] -; 1177 : } +; 1181 : } - 00054 48 8d a5 d8 00 + 0006b 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ENDP ; std::_Iterator_base12::_Getcont _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ -_TEXT SEGMENT -this$ = 224 -?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_v2, COMDAT - -; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1153 : if (_Myproxy) { // adopted, remove self from list - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 0c je SHORT $LN2@Orphan_me_ - -; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1155 : if (_STD is_constant_evaluated()) { -; 1156 : _Orphan_me_unlocked(); -; 1157 : } else -; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1159 : { -; 1160 : _Orphan_me_locked(); - - 0002c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 e8 00 00 00 00 call ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_locked -$LN2@Orphan_me_: - -; 1161 : } -; 1162 : } -; 1163 : } - - 00038 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 -?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_v2 -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z _TEXT SEGMENT -_Parent_proxy$1 = 8 -this$ = 256 -_Parent$ = 264 +_Parent_proxy$5 = 8 +_Lock$6 = 36 +_Lock$7 = 68 +__$ArrayPad$ = 280 +this$ = 320 +_Parent$ = 328 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z PROC ; std::_Iterator_base12::_Adopt, COMDAT -; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1151 : void _Adopt(const _Container_base12* _Parent) noexcept { $LN6: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 0000c 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002f 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1135 : if (_Parent) { // have a parent, do adoption +; 1152 : if (_Parent) { - 00024 48 83 bd 08 01 + 0004c 48 83 bd 48 01 00 00 00 cmp QWORD PTR _Parent$[rbp], 0 - 0002c 74 30 je SHORT $LN2@Adopt + 00054 74 75 je SHORT $LN2@Adopt -; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1153 : // have a parent, do adoption +; 1154 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; - 0002e 48 8b 85 08 01 + 00056 48 8b 85 48 01 00 00 mov rax, QWORD PTR _Parent$[rbp] - 00035 48 8b 00 mov rax, QWORD PTR [rax] - 00038 48 89 45 08 mov QWORD PTR _Parent_proxy$1[rbp], rax + 0005d 48 8b 00 mov rax, QWORD PTR [rax] + 00060 48 89 45 08 mov QWORD PTR _Parent_proxy$5[rbp], rax + +; 1155 : +; 1156 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1157 : if (_Myproxy != _Parent_proxy) { // change parentage + + 00064 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006b 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] + 0006f 48 39 08 cmp QWORD PTR [rax], rcx + 00072 74 55 je SHORT $LN4@Adopt + +; 1158 : _Lockit _Lock(_LOCK_DEBUG); + + 00074 ba 03 00 00 00 mov edx, 3 + 00079 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] + 0007d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1159 : _Orphan_me(); -; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage + 00083 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008a e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + +; 1160 : _Mynextiter = _Parent_proxy->_Myfirstiter; - 0003c 48 8b 85 00 01 + 0008f 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$1[rbp] - 00047 48 39 08 cmp QWORD PTR [rax], rcx - 0004a 74 10 je SHORT $LN4@Adopt - -; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1139 : if (_STD is_constant_evaluated()) { -; 1140 : _Adopt_unlocked(_Parent_proxy); -; 1141 : } else -; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1143 : { -; 1144 : _Adopt_locked(_Parent_proxy); - - 0004c 48 8b 55 08 mov rdx, QWORD PTR _Parent_proxy$1[rbp] - 00050 48 8b 8d 00 01 + 00096 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] + 0009a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0009e 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1161 : _Parent_proxy->_Myfirstiter = this; + + 000a2 48 8b 45 08 mov rax, QWORD PTR _Parent_proxy$5[rbp] + 000a6 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00057 e8 00 00 00 00 call ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked + 000ad 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1162 : _Myproxy = _Parent_proxy; + + 000b1 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b8 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] + 000bc 48 89 08 mov QWORD PTR [rax], rcx + +; 1163 : } + + 000bf 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] + 000c3 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ $LN4@Adopt: -; 1145 : } -; 1146 : } -; 1147 : } else { // no future parent, just disown current parent +; 1164 : +; 1165 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1166 : _Myproxy = _Parent_proxy; +; 1167 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1168 : } else { - 0005c eb 0c jmp SHORT $LN3@Adopt + 000c9 eb 25 jmp SHORT $LN3@Adopt $LN2@Adopt: -; 1148 : _Orphan_me_v2(); +; 1169 : // no future parent, just disown current parent +; 1170 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1171 : _Lockit _Lock(_LOCK_DEBUG); + + 000cb ba 03 00 00 00 mov edx, 3 + 000d0 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] + 000d4 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1172 : _Orphan_me(); - 0005e 48 8b 8d 00 01 + 000da 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00065 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 + 000e1 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + +; 1173 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1174 : _Myproxy = nullptr; +; 1175 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1176 : } + + 000e6 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] + 000ea ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ $LN3@Adopt: -; 1149 : } -; 1150 : } +; 1177 : } - 0006a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 000f0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000f4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcFrameData + 000fb e8 00 00 00 00 call _RTC_CheckStackVars + 00100 90 npad 1 + 00101 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00108 48 33 cd xor rcx, rbp + 0010b e8 00 00 00 00 call __security_check_cookie + 00110 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00117 5f pop rdi + 00118 5d pop rbp + 00119 c3 ret 0 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ENDP ; std::_Iterator_base12::_Adopt _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??1_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT -this$ = 224 +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 ??1_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::~_Iterator_base12, COMDAT -; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { +; 1144 : ~_Iterator_base12() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1131 : _Orphan_me_v2(); +; 1145 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1146 : _Lockit _Lock(_LOCK_DEBUG); - 0001f 48 8b 8d e0 00 + 00047 ba 03 00 00 00 mov edx, 3 + 0004c 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00050 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1147 : _Orphan_me(); + + 00056 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 + 0005d e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me -; 1132 : } +; 1148 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1149 : } - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00062 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00066 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0006c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00070 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcFrameData + 00077 e8 00 00 00 00 call _RTC_CheckStackVars + 0007c 90 npad 1 + 0007d 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00084 48 33 cd xor rcx, rbp + 00087 e8 00 00 00 00 call __security_check_cookie + 0008c 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00093 5f pop rdi + 00094 5d pop rbp + 00095 c3 ret 0 ??1_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::~_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z _TEXT SEGMENT -this$ = 224 -_Right$ = 232 +_Lock$4 = 4 +__$ArrayPad$ = 216 +this$ = 256 +_Right$ = 264 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z PROC ; std::_Iterator_base12::operator=, COMDAT -; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1127 : _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { $LN6: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1115 : if (_Myproxy != _Right._Myproxy) { +; 1128 : if (_Myproxy != _Right._Myproxy) { - 00024 48 8b 85 e0 00 + 0004c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00053 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00032 48 8b 09 mov rcx, QWORD PTR [rcx] - 00035 48 39 08 cmp QWORD PTR [rax], rcx - 00038 74 34 je SHORT $LN2@operator + 0005a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005d 48 39 08 cmp QWORD PTR [rax], rcx + 00060 74 4d je SHORT $LN2@operator -; 1116 : if (_Right._Myproxy) { +; 1129 : if (_Right._Myproxy) { - 0003a 48 8b 85 e8 00 + 00062 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00041 48 83 38 00 cmp QWORD PTR [rax], 0 - 00045 74 1b je SHORT $LN3@operator + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 1b je SHORT $LN3@operator -; 1117 : _Adopt(_Right._Myproxy->_Mycont); +; 1130 : _Adopt(_Right._Myproxy->_Mycont); - 00047 48 8b 85 e8 00 + 0006f 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 8b 10 mov rdx, QWORD PTR [rax] - 00054 48 8b 8d e0 00 + 00076 48 8b 00 mov rax, QWORD PTR [rax] + 00079 48 8b 10 mov rdx, QWORD PTR [rax] + 0007c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005b e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 00083 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt -; 1118 : } else { // becoming invalid, disown current parent +; 1131 : } else { // becoming invalid, disown current parent - 00060 eb 0c jmp SHORT $LN2@operator + 00088 eb 25 jmp SHORT $LN2@operator $LN3@operator: -; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1120 : _Orphan_me_v2(); +; 1132 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1133 : _Lockit _Lock(_LOCK_DEBUG); + + 0008a ba 03 00 00 00 mov edx, 3 + 0008f 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 00093 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1134 : _Orphan_me(); - 00062 48 8b 8d e0 00 + 00099 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00069 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 + 000a0 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + +; 1135 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1136 : _Myproxy = nullptr; +; 1137 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1138 : } + + 000a5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000a9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ $LN2@operator: -; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1122 : _Myproxy = nullptr; -; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1124 : } -; 1125 : } -; 1126 : return *this; +; 1139 : } +; 1140 : +; 1141 : return *this; - 0006e 48 8b 85 e0 00 + 000af 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] -; 1127 : } +; 1142 : } - 00075 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0007c 5f pop rdi - 0007d 5d pop rbp - 0007e c3 ret 0 + 000b6 48 8b f8 mov rdi, rax + 000b9 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000bd 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcFrameData + 000c4 e8 00 00 00 00 call _RTC_CheckStackVars + 000c9 48 8b c7 mov rax, rdi + 000cc 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d3 48 33 cd xor rcx, rbp + 000d6 e8 00 00 00 00 call __security_check_cookie + 000db 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000e2 5f pop rdi + 000e3 5d pop rbp + 000e4 c3 ret 0 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ENDP ; std::_Iterator_base12::operator= _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0_Iterator_base12@std@@QEAA@AEBU01@@Z _TEXT SEGMENT this$ = 224 _Right$ = 232 ??0_Iterator_base12@std@@QEAA@AEBU01@@Z PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT -; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { +; 1123 : _Iterator_base12(const _Iterator_base12& _Right) noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18170,119 +23734,51 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1113 : -; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { -; 1115 : if (_Myproxy != _Right._Myproxy) { -; 1116 : if (_Right._Myproxy) { -; 1117 : _Adopt(_Right._Myproxy->_Mycont); -; 1118 : } else { // becoming invalid, disown current parent -; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1120 : _Orphan_me_v2(); -; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1122 : _Myproxy = nullptr; -; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1124 : } -; 1125 : } -; 1126 : return *this; -; 1127 : } -; 1128 : -; 1129 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { -; 1131 : _Orphan_me_v2(); -; 1132 : } -; 1133 : -; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { -; 1135 : if (_Parent) { // have a parent, do adoption -; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; -; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage -; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1139 : if (_STD is_constant_evaluated()) { -; 1140 : _Adopt_unlocked(_Parent_proxy); -; 1141 : } else -; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1143 : { -; 1144 : _Adopt_locked(_Parent_proxy); -; 1145 : } -; 1146 : } -; 1147 : } else { // no future parent, just disown current parent -; 1148 : _Orphan_me_v2(); -; 1149 : } -; 1150 : } -; 1151 : -; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { -; 1153 : if (_Myproxy) { // adopted, remove self from list -; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1155 : if (_STD is_constant_evaluated()) { -; 1156 : _Orphan_me_unlocked(); -; 1157 : } else -; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1159 : { -; 1160 : _Orphan_me_locked(); -; 1161 : } -; 1162 : } -; 1163 : } -; 1164 : -; 1165 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ / vvv _ITERATOR_DEBUG_LEVEL != 2 vvv -; 1166 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { -; 1167 : if (_Parent) { // have a parent, do adoption -; 1168 : _Myproxy = _Parent->_Myproxy; -; 1169 : } else { // no future parent, just disown current parent -; 1170 : _Myproxy = nullptr; -; 1171 : } -; 1172 : } -; 1173 : #endif // _ITERATOR_DEBUG_LEVEL != 2 -; 1174 : -; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { -; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; -; 1177 : } -; 1178 : -; 1179 : static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0; -; 1180 : -; 1181 : mutable _Container_proxy* _Myproxy = nullptr; - - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 c7 00 00 00 + 00042 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; - - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 c7 40 08 00 + 00050 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1111 : *this = _Right; +; 1124 : *this = _Right; - 00041 48 8b 95 e8 00 + 00058 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 00048 48 8b 8d e0 00 + 0005f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004f e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= + 00066 e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= -; 1112 : } +; 1125 : } - 00054 48 8b 85 e0 00 + 0006b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005b 48 8d a5 c8 00 + 00072 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b c3 ret 0 ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ENDP ; std::_Iterator_base12::_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT -; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator +; 1121 : _Iterator_base12() noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) {} // construct orphaned iterator $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18291,303 +23787,156 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1109 : -; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { -; 1111 : *this = _Right; -; 1112 : } -; 1113 : -; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { -; 1115 : if (_Myproxy != _Right._Myproxy) { -; 1116 : if (_Right._Myproxy) { -; 1117 : _Adopt(_Right._Myproxy->_Mycont); -; 1118 : } else { // becoming invalid, disown current parent -; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1120 : _Orphan_me_v2(); -; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1122 : _Myproxy = nullptr; -; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1124 : } -; 1125 : } -; 1126 : return *this; -; 1127 : } -; 1128 : -; 1129 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { -; 1131 : _Orphan_me_v2(); -; 1132 : } -; 1133 : -; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { -; 1135 : if (_Parent) { // have a parent, do adoption -; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; -; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage -; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1139 : if (_STD is_constant_evaluated()) { -; 1140 : _Adopt_unlocked(_Parent_proxy); -; 1141 : } else -; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1143 : { -; 1144 : _Adopt_locked(_Parent_proxy); -; 1145 : } -; 1146 : } -; 1147 : } else { // no future parent, just disown current parent -; 1148 : _Orphan_me_v2(); -; 1149 : } -; 1150 : } -; 1151 : -; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { -; 1153 : if (_Myproxy) { // adopted, remove self from list -; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1155 : if (_STD is_constant_evaluated()) { -; 1156 : _Orphan_me_unlocked(); -; 1157 : } else -; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1159 : { -; 1160 : _Orphan_me_locked(); -; 1161 : } -; 1162 : } -; 1163 : } -; 1164 : -; 1165 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ / vvv _ITERATOR_DEBUG_LEVEL != 2 vvv -; 1166 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { -; 1167 : if (_Parent) { // have a parent, do adoption -; 1168 : _Myproxy = _Parent->_Myproxy; -; 1169 : } else { // no future parent, just disown current parent -; 1170 : _Myproxy = nullptr; -; 1171 : } -; 1172 : } -; 1173 : #endif // _ITERATOR_DEBUG_LEVEL != 2 -; 1174 : -; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { -; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; -; 1177 : } -; 1178 : -; 1179 : static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0; -; 1180 : -; 1181 : mutable _Container_proxy* _Myproxy = nullptr; - - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 c7 00 00 00 + 0003d 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; - - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 c7 40 08 00 + 0004b 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - -; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator - - 0003c 48 8b 85 e0 00 + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1095 : void _Orphan_all_locked() noexcept { +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { -$LN3: +$LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8b 05 00 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1096 : _Lockit _Lock(_LOCK_DEBUG); - - 00049 ba 03 00 00 00 mov edx, 3 - 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00052 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1097 : _Orphan_all_unlocked(); + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00058 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked - -; 1098 : } +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it - 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00068 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData - 00079 e8 00 00 00 00 call _RTC_CheckStackVars - 0007e 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00085 48 33 cd xor rcx, rbp - 00088 e8 00 00 00 00 call __security_check_cookie - 0008d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00094 5f pop rdi - 00095 5d pop rbp - 00096 c3 ret 0 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -_TEXT SEGMENT -_Pnext$1 = 8 -this$ = 256 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT + 00047 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00052 74 6b je SHORT $LN5@Orphan_all -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 1208 : _Lockit _Lock(_LOCK_DEBUG); -$LN6: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00054 ba 03 00 00 00 mov edx, 3 + 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { - 0001f 48 8b 85 00 01 + 00063 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 83 c0 08 add rax, 8 - 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax - 00031 eb 12 jmp SHORT $LN4@Orphan_all + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 83 c0 08 add rax, 8 + 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax + 00075 eb 12 jmp SHORT $LN4@Orphan_all $LN2@Orphan_all: - 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] - 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00042 48 89 01 mov QWORD PTR [rcx], rax + 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] + 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00086 48 89 01 mov QWORD PTR [rcx], rax $LN4@Orphan_all: - 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00049 48 83 38 00 cmp QWORD PTR [rax], 0 - 0004d 74 10 je SHORT $LN3@Orphan_all + 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00091 74 10 je SHORT $LN3@Orphan_all -; 1222 : _Pnext->_Myproxy = nullptr; +; 1211 : (*_Pnext)->_Myproxy = nullptr; - 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 c7 00 00 00 + 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1223 : } +; 1212 : } - 0005d eb d4 jmp SHORT $LN2@Orphan_all + 000a1 eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1224 : _Myproxy->_Myfirstiter = nullptr; +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; - 0005f 48 8b 85 00 01 + 000a3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 00 mov rax, QWORD PTR [rax] - 00069 48 c7 40 08 00 + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1225 : } - - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ -_TEXT SEGMENT -this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT - -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1229 : if (_Myproxy) { // proxy allocated, drain it +; 1215 : } - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 0c je SHORT $LN2@Orphan_all - -; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc -; 1231 : if (_STD is_constant_evaluated()) { -; 1232 : _Orphan_all_unlocked(); -; 1233 : } else -; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 1235 : { -; 1236 : _Orphan_all_locked(); - - 0002c 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked -$LN2@Orphan_all: + 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000b9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN5@Orphan_all: -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } - 00038 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 + 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData + 000ca e8 00 00 00 00 call _RTC_CheckStackVars + 000cf 90 npad 1 + 000d0 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d7 48 33 cd xor rcx, rbp + 000da e8 00 00 00 00 call __security_check_cookie + 000df 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e6 5f pop rdi + 000e7 5d pop rbp + 000e8 c3 ret 0 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0_Container_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT -; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; +; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18596,61 +23945,37 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1065 : -; 1066 : _Container_base12(const _Container_base12&) = delete; -; 1067 : _Container_base12& operator=(const _Container_base12&) = delete; -; 1068 : -; 1069 : _CONSTEXPR20_CONTAINER void _Orphan_all() noexcept; -; 1070 : _CONSTEXPR20_CONTAINER void _Swap_proxy_and_iterators(_Container_base12&) noexcept; -; 1071 : -; 1072 : template -; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { -; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); -; 1075 : _Construct_in_place(*_New_proxy, this); -; 1076 : _Myproxy = _New_proxy; -; 1077 : _New_proxy->_Mycont = this; -; 1078 : } -; 1079 : -; 1080 : template -; 1081 : _CONSTEXPR20_CONTAINER void _Reload_proxy(_Alloc&& _Old_alloc, _Alloc&& _New_alloc) { -; 1082 : // pre: no iterators refer to the existing proxy -; 1083 : _Container_proxy* const _New_proxy = _Unfancy(_New_alloc.allocate(1)); -; 1084 : _Construct_in_place(*_New_proxy, this); -; 1085 : _New_proxy->_Mycont = this; -; 1086 : _Delete_plain_internal(_Old_alloc, _STD exchange(_Myproxy, _New_proxy)); -; 1087 : } -; 1088 : -; 1089 : _Container_proxy* _Myproxy = nullptr; - - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 c7 00 00 00 + 0003d 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; - - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ??0_Container_base12@std@@QEAA@XZ ENDP ; std::_Container_base12::_Container_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 _Mycont_$ = 232 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z PROC ; std::_Container_proxy::_Container_proxy, COMDAT -; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} +; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18660,37 +23985,35 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00042 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] - 00032 48 89 08 mov QWORD PTR [rax], rcx - -; 1057 : -; 1058 : const _Container_base12* _Mycont = nullptr; -; 1059 : mutable _Iterator_base12* _Myfirstiter = nullptr; - - 00035 48 8b 85 e0 00 + 00049 48 89 08 mov QWORD PTR [rax], rcx + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 c7 40 08 00 + 00053 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - -; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} - - 00044 48 8b 85 e0 00 + 0005b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d a5 c8 00 + 00062 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ENDP ; std::_Container_proxy::_Container_proxy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -18701,7 +24024,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18711,196 +24034,202 @@ $LN21: 0000c 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 155 : _Bytes += _Non_user_size; +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; - 00024 48 8b 85 68 01 + 0003b 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 83 c0 2f add rax, 47 ; 0000002fH - 00032 48 8b 8d 68 01 + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00039 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 89 01 mov QWORD PTR [rcx], rax -; 156 : -; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 0003c 48 8b 85 60 01 + 00053 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 0004a b8 08 00 00 00 mov eax, 8 - 0004f 48 6b c0 ff imul rax, rax, -1 - 00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 00061 b8 08 00 00 00 mov eax, 8 + 00066 48 6b c0 ff imul rax, rax, -1 + 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax $LN4@Adjust_man: -; 159 : -; 160 : // If the following asserts, it likely means that we are performing -; 161 : // an aligned delete on memory coming from an unaligned allocation. -; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); +; 138 : +; 139 : // If the following asserts, it likely means that we are performing +; 140 : // an aligned delete on memory coming from an unaligned allocation. +; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - 0005f b8 08 00 00 00 mov eax, 8 - 00064 48 6b c0 fe imul rax, rax, -2 - 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006c 48 ba fa fa fa + 00076 b8 08 00 00 00 mov eax, 8 + 0007b 48 6b c0 fe imul rax, rax, -2 + 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00083 48 ba fa fa fa fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 0007a 75 02 jne SHORT $LN14@Adjust_man - 0007c eb 77 jmp SHORT $LN15@Adjust_man + 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 00091 75 02 jne SHORT $LN14@Adjust_man + 00093 eb 77 jmp SHORT $LN15@Adjust_man $LN14@Adjust_man: $LN7@Adjust_man: - 0007e 8b 05 00 00 00 + 00095 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00084 83 c0 09 add eax, 9 - 00087 48 8d 0d 00 00 + 0009b 83 c0 09 add eax, 9 + 0009e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00093 48 8d 0d 00 00 + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0009f 45 33 c9 xor r9d, r9d - 000a2 44 8b c0 mov r8d, eax - 000a5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000ac b9 02 00 00 00 mov ecx, 2 - 000b1 ff 15 00 00 00 + 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 000b6 45 33 c9 xor r9d, r9d + 000b9 44 8b c0 mov r8d, eax + 000bc 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000c3 b9 02 00 00 00 mov ecx, 2 + 000c8 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000b7 83 f8 01 cmp eax, 1 - 000ba 75 03 jne SHORT $LN19@Adjust_man - 000bc cc int 3 - 000bd 33 c0 xor eax, eax + 000ce 83 f8 01 cmp eax, 1 + 000d1 75 03 jne SHORT $LN19@Adjust_man + 000d3 cc int 3 + 000d4 33 c0 xor eax, eax $LN19@Adjust_man: - 000bf 8b 05 00 00 00 + 000d6 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000c5 83 c0 09 add eax, 9 - 000c8 48 c7 44 24 20 + 000dc 83 c0 09 add eax, 9 + 000df 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000d1 44 8b c8 mov r9d, eax - 000d4 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000db 48 8d 15 00 00 + 000e8 44 8b c8 mov r9d, eax + 000eb 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000f2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000e2 48 8d 0d 00 00 + 000f9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000e9 ff 15 00 00 00 + 00100 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000ef 33 c0 xor eax, eax - 000f1 85 c0 test eax, eax - 000f3 75 89 jne SHORT $LN7@Adjust_man + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 000f5 33 c0 xor eax, eax - 000f7 85 c0 test eax, eax - 000f9 0f 85 60 ff ff + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 163 : -; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 165 : // in range [_Min_back_shift, _Non_user_size] -; 166 : #ifdef _DEBUG -; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 142 : +; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 144 : // in range [_Min_back_shift, _Non_user_size] +; 145 : #ifdef _DEBUG +; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); - 000ff 48 c7 45 48 10 + 00116 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 170 : #endif // _DEBUG -; 171 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 149 : #endif // _DEBUG +; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; - 00107 48 8b 85 60 01 + 0011e 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00112 48 8b 00 mov rax, QWORD PTR [rax] - 00115 48 2b c1 sub rax, rcx - 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00129 48 8b 00 mov rax, QWORD PTR [rax] + 0012c 48 2b c1 sub rax, rcx + 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax $LN10@Adjust_man: -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00121 72 09 jb SHORT $LN16@Adjust_man - 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 00128 77 02 ja SHORT $LN16@Adjust_man - 0012a eb 77 jmp SHORT $LN17@Adjust_man + 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00138 72 09 jb SHORT $LN16@Adjust_man + 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 0013f 77 02 ja SHORT $LN16@Adjust_man + 00141 eb 77 jmp SHORT $LN17@Adjust_man $LN16@Adjust_man: $LN13@Adjust_man: - 0012c 8b 05 00 00 00 + 00143 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00132 83 c0 13 add eax, 19 - 00135 48 8d 0d 00 00 + 00149 83 c0 13 add eax, 19 + 0014c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00141 48 8d 0d 00 00 + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0014d 45 33 c9 xor r9d, r9d - 00150 44 8b c0 mov r8d, eax - 00153 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0015a b9 02 00 00 00 mov ecx, 2 - 0015f ff 15 00 00 00 + 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00164 45 33 c9 xor r9d, r9d + 00167 44 8b c0 mov r8d, eax + 0016a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00171 b9 02 00 00 00 mov ecx, 2 + 00176 ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 00165 83 f8 01 cmp eax, 1 - 00168 75 03 jne SHORT $LN20@Adjust_man - 0016a cc int 3 - 0016b 33 c0 xor eax, eax + 0017c 83 f8 01 cmp eax, 1 + 0017f 75 03 jne SHORT $LN20@Adjust_man + 00181 cc int 3 + 00182 33 c0 xor eax, eax $LN20@Adjust_man: - 0016d 8b 05 00 00 00 + 00184 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00173 83 c0 13 add eax, 19 - 00176 48 c7 44 24 20 + 0018a 83 c0 13 add eax, 19 + 0018d 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0017f 44 8b c8 mov r9d, eax - 00182 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00189 48 8d 15 00 00 + 00196 44 8b c8 mov r9d, eax + 00199 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 001a0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 00190 48 8d 0d 00 00 + 001a7 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00197 ff 15 00 00 00 + 001ae ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 0019d 33 c0 xor eax, eax - 0019f 85 c0 test eax, eax - 001a1 75 89 jne SHORT $LN13@Adjust_man + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001a3 33 c0 xor eax, eax - 001a5 85 c0 test eax, eax - 001a7 0f 85 6f ff ff + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 152 : _Ptr = reinterpret_cast(_Ptr_container); - 001ad 48 8b 85 60 01 + 001c4 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001b8 48 89 08 mov QWORD PTR [rax], rcx + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx -; 174 : } +; 153 : } - 001bb 48 8d a5 48 01 + 001d2 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001c2 5f pop rdi - 001c3 5d pop rbp - 001c4 c3 ret 0 + 001d9 5f pop rdi + 001da 5d pop rbp + 001db c3 ret 0 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z _TEXT SEGMENT _Bytes$ = 224 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z PROC ; std::_Default_allocate_traits::_Allocate, COMDAT -; 84 : void* _Allocate(const size_t _Bytes) { +; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18909,27 +24238,33 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 85 : return ::operator new(_Bytes); - - 0001f 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 77 : return ::operator new(_Bytes); + + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00026 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new -; 86 : } +; 78 : } - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ENDP ; std::_Default_allocate_traits::_Allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\exception +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception ; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -18943,29 +24278,33 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__89F7010A_exception - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E4152856_exception + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 321 : _THROW(bad_array_new_length{}); - 0001b 48 8d 8d c8 00 + 0002a 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00022 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length - 00027 48 8d 15 00 00 + 00031 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length + 00036 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ - 0002e 48 8d 8d c8 00 + 0003d 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00035 e8 00 00 00 00 call _CxxThrowException + 00044 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 322 : } - 0003a 48 8d a5 f8 00 + 00049 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 ?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -18982,26 +24321,32 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19018,23 +24363,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19049,18 +24400,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 ??1bad_array_new_length@std@@UEAA@XZ ENDP ; std::bad_array_new_length::~bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0bad_array_new_length@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19075,35 +24432,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 140 : : bad_alloc("bad array new length") - 0001f 48 8d 15 00 00 + 00036 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ - 00026 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002d e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc ; 141 : { - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 8d 0d 00 00 + 00050 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00040 48 89 08 mov QWORD PTR [rax], rcx + 00057 48 89 08 mov QWORD PTR [rax], rcx ; 142 : } - 00043 48 8b 85 e0 00 + 0005a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004a 48 8d a5 c8 00 + 00061 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ??0bad_array_new_length@std@@QEAA@XZ ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19120,26 +24483,32 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19156,23 +24525,29 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b 95 e8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19187,18 +24562,24 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 8d e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 ??1bad_alloc@std@@UEAA@XZ ENDP ; std::bad_alloc::~bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z _TEXT SEGMENT this$ = 224 @@ -19215,37 +24596,43 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 129 : : exception(_Message, 1) - 00024 41 b8 01 00 00 + 0003b 41 b8 01 00 00 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Message$[rbp] - 00031 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00038 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception ; 130 : { - 0003d 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00044 48 8d 0d 00 00 + 0005b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 0004b 48 89 08 mov QWORD PTR [rax], rcx + 00062 48 89 08 mov QWORD PTR [rax], rcx ; 131 : } - 0004e 48 8b 85 e0 00 + 00065 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8d a5 c8 00 + 0006c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19262,30 +24649,36 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gexception@std@@UEAAPEAXI@Z ENDP ; std::exception::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ?what@exception@std@@UEBAPEBDXZ _TEXT SEGMENT tv69 = 192 @@ -19301,42 +24694,48 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 95 : return _Data._What ? _Data._What : "Unknown exception"; - 0001f 48 8b 85 f0 00 + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0002b 74 14 je SHORT $LN3@what - 0002d 48 8b 85 f0 00 + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 14 je SHORT $LN3@what + 00044 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00038 48 89 85 c0 00 + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0003f eb 0e jmp SHORT $LN4@what + 00056 eb 0e jmp SHORT $LN4@what $LN3@what: - 00041 48 8d 05 00 00 + 00058 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ - 00048 48 89 85 c0 00 + 0005f 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax $LN4@what: - 0004f 48 8b 85 c0 00 + 00066 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv69[rbp] ; 96 : } - 00056 48 8d a5 d8 00 + 0006d 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005d 5f pop rdi - 0005e 5d pop rbp - 0005f c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ?what@exception@std@@UEBAPEBDXZ ENDP ; std::exception::what _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19351,34 +24750,41 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d 0d 00 00 + 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 0002d 48 89 08 mov QWORD PTR [rax], rcx + 00044 48 89 08 mov QWORD PTR [rax], rcx ; 90 : __std_exception_destroy(&_Data); - 00030 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00037 48 83 c0 08 add rax, 8 - 0003b 48 8b c8 mov rcx, rax - 0003e e8 00 00 00 00 call __std_exception_destroy + 0004e 48 83 c0 08 add rax, 8 + 00052 48 8b c8 mov rcx, rax + 00055 e8 00 00 00 00 call __std_exception_destroy + 0005a 90 npad 1 ; 91 : } - 00043 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 @@ -19395,49 +24801,55 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d 0d 00 00 + 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00032 48 89 08 mov QWORD PTR [rax], rcx + 00049 48 89 08 mov QWORD PTR [rax], rcx ; 71 : : _Data() - 00035 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 83 c0 08 add rax, 8 - 00040 48 8b f8 mov rdi, rax - 00043 33 c0 xor eax, eax - 00045 b9 10 00 00 00 mov ecx, 16 - 0004a f3 aa rep stosb + 00053 48 83 c0 08 add rax, 8 + 00057 48 8b f8 mov rdi, rax + 0005a 33 c0 xor eax, eax + 0005c b9 10 00 00 00 mov ecx, 16 + 00061 f3 aa rep stosb ; 73 : __std_exception_copy(&_Other._Data, &_Data); - 0004c 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 83 c0 08 add rax, 8 - 00057 48 8b 8d e8 00 + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Other$[rbp] - 0005e 48 83 c1 08 add rcx, 8 - 00062 48 8b d0 mov rdx, rax - 00065 e8 00 00 00 00 call __std_exception_copy + 00075 48 83 c1 08 add rcx, 8 + 00079 48 8b d0 mov rdx, rax + 0007c e8 00 00 00 00 call __std_exception_copy ; 74 : } - 0006a 48 8b 85 e0 00 + 00081 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00071 48 8d a5 c8 00 + 00088 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 c3 ret 0 ??0exception@std@@QEAA@AEBV01@@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@QEBDH@Z _TEXT SEGMENT this$ = 224 @@ -19456,51 +24868,57 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8b 85 e0 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8d 0d 00 00 + 00047 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00037 48 89 08 mov QWORD PTR [rax], rcx + 0004e 48 89 08 mov QWORD PTR [rax], rcx ; 65 : : _Data() - 0003a 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00041 48 83 c0 08 add rax, 8 - 00045 48 8b f8 mov rdi, rax - 00048 33 c0 xor eax, eax - 0004a b9 10 00 00 00 mov ecx, 16 - 0004f f3 aa rep stosb + 00058 48 83 c0 08 add rax, 8 + 0005c 48 8b f8 mov rdi, rax + 0005f 33 c0 xor eax, eax + 00061 b9 10 00 00 00 mov ecx, 16 + 00066 f3 aa rep stosb ; 67 : _Data._What = _Message; - 00051 48 8b 85 e0 00 + 00068 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 8b 8d e8 00 + 0006f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Message$[rbp] - 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 68 : } - 00063 48 8b 85 e0 00 + 0007a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8d a5 c8 00 + 00081 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 00088 5f pop rdi + 00089 5d pop rbp + 0008a c3 ret 0 ??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\limits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\limits ; COMDAT ?max@?$numeric_limits@_J@std@@SA_JXZ _TEXT SEGMENT ?max@?$numeric_limits@_J@std@@SA_JXZ PROC ; std::numeric_limits<__int64>::max, COMDAT -; 647 : _NODISCARD static constexpr long long(max)() noexcept { +; 645 : _NODISCARD static constexpr long long(max)() noexcept { $LN3: 00000 40 55 push rbp @@ -19508,22 +24926,26 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__44860E64_limits - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F2870A2C_limits + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 648 : return LLONG_MAX; +; 646 : return LLONG_MAX; - 0001b 48 b8 ff ff ff + 0002a 48 b8 ff ff ff ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 649 : } +; 647 : } - 00025 48 8d a5 c8 00 + 00034 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002c 5f pop rdi - 0002d 5d pop rbp - 0002e c3 ret 0 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19546,30 +24968,36 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19596,75 +25024,75 @@ $LN3: 00016 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 1e 00 00 00 mov ecx, 30 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 78 + 00022 48 8b fc mov rdi, rsp + 00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 78 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 + 0004a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00058 48 8d 85 58 01 + 00056 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00067 48 89 85 18 01 + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006e b9 01 00 00 00 mov ecx, 1 - 00073 ff 15 00 00 00 + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00079 48 89 85 20 01 + 00077 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 00080 4c 8b 8d 18 01 + 0007e 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00087 45 33 c0 xor r8d, r8d - 0008a 48 8b 95 50 01 + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 00091 48 8b 8d 20 01 + 0008f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00098 e8 00 00 00 00 call _vfprintf_l - 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 000a0 48 c7 45 28 00 + 0009e 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000ab 8b f8 mov edi, eax - 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b1 48 8d 15 00 00 + 000a9 8b f8 mov edi, eax + 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000af 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b8 e8 00 00 00 00 call _RTC_CheckStackVars - 000bd 8b c7 mov eax, edi - 000bf 48 8b 8d 28 01 + 000b6 e8 00 00 00 00 call _RTC_CheckStackVars + 000bb 8b c7 mov eax, edi + 000bd 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c6 48 33 cd xor rcx, rbp - 000c9 e8 00 00 00 00 call __security_check_cookie - 000ce 48 8d a5 38 01 + 000c4 48 33 cd xor rcx, rbp + 000c7 e8 00 00 00 00 call __security_check_cookie + 000cc 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19689,33 +25117,39 @@ $LN3: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 + 00022 48 8b fc mov rdi, rsp + 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 00039 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 0002e e8 00 00 00 00 call __local_stdio_printf_options - 00033 48 8b 8d f8 00 + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0003f 4c 8b 8d f0 00 + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 00046 4c 8b 85 e8 00 + 0005d 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 0004d 48 8b 95 e0 00 + 00064 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 0005d 48 8d a5 c8 00 + 00074 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00064 5f pop rdi - 00065 5d pop rbp - 00066 c3 ret 0 + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19732,27 +25166,31 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0001b 48 8d 05 00 00 + 0002a 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } - 00022 48 8d a5 c8 00 + 00031 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_new.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h ; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT _Size$ = 224 @@ -19769,27 +25207,33 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__02E23235_vcruntime_new@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 168 : (void)_Size; ; 169 : return _Where; - 00024 48 8b 85 e8 00 + 0003b 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Where$[rbp] ; 170 : } - 0002b 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -19806,18 +25250,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -19832,18 +25283,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -19858,18 +25316,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -19882,14 +25347,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Nop.cod b/CodeVirtualizer/x64/Debug/Nop.cod index 62c8f23..34dacb9 100644 --- a/CodeVirtualizer/x64/Debug/Nop.cod +++ b/CodeVirtualizer/x64/Debug/Nop.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__52D0D2F0_Nop@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__0A9363B8_Nop@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +96,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop PUBLIC ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcEmitNopGroup PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -121,6 +120,7 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -128,67 +128,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD imagerel $LN6 - DD imagerel $LN6+223 + DD imagerel $LN6+221 DD imagerel $unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ pdata ENDS ; COMDAT pdata @@ -200,7 +200,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+108 + DD imagerel $LN6+130 DD imagerel $unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -221,39 +221,29 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051701H +$unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052d01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 02aH - DB 0c6H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA DD 031001H @@ -265,7 +255,7 @@ xdata SEGMENT $ip2state$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 06H DB 00H DB 00H - DB 0a4H + DB 0a0H DB 02H DB 09eH DB 00H @@ -284,7 +274,7 @@ $cppxdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035053119H +$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035052f19H DD 010a330fH DD 070030031H DD 05002H @@ -313,40 +303,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -391,38 +376,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -432,7 +469,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT Count$ = 224 @@ -449,67 +486,73 @@ $LN6: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 8b 8c 24 08 01 + 00 00 mov ecx, DWORD PTR [rsp+264] + 0002d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : if (Count < 1) - 00023 83 bd e0 00 00 + 00039 83 bd e0 00 00 00 01 cmp DWORD PTR Count$[rbp], 1 - 0002a 73 04 jae SHORT $LN4@NcEmitNopG + 00040 73 04 jae SHORT $LN4@NcEmitNopG ; 14 : return FALSE; - 0002c 33 c0 xor eax, eax - 0002e eb 32 jmp SHORT $LN1@NcEmitNopG + 00042 33 c0 xor eax, eax + 00044 eb 32 jmp SHORT $LN1@NcEmitNopG $LN4@NcEmitNopG: $LN2@NcEmitNopG: ; 15 : while (Count) - 00030 83 bd e0 00 00 + 00046 83 bd e0 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00037 74 24 je SHORT $LN3@NcEmitNopG + 0004d 74 24 je SHORT $LN3@NcEmitNopG ; 16 : { ; 17 : NcAppendToBlock(Block, NcEmitNop()); - 00039 e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop - 0003e 48 8b d0 mov rdx, rax - 00041 48 8b 8d e8 00 + 0004f e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop + 00054 48 8b d0 mov rdx, rax + 00057 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00048 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0005e e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 18 : Count--; - 0004d 8b 85 e0 00 00 + 00063 8b 85 e0 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00053 ff c8 dec eax - 00055 89 85 e0 00 00 + 00069 ff c8 dec eax + 0006b 89 85 e0 00 00 00 mov DWORD PTR Count$[rbp], eax ; 19 : } - 0005b eb d3 jmp SHORT $LN2@NcEmitNopG + 00071 eb d3 jmp SHORT $LN2@NcEmitNopG $LN3@NcEmitNopG: ; 20 : return TRUE; - 0005d b8 01 00 00 00 mov eax, 1 + 00073 b8 01 00 00 00 mov eax, 1 $LN1@NcEmitNopG: ; 21 : } - 00062 48 8d a5 c8 00 + 00078 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 + 0007f 5f pop rdi + 00080 5d pop rbp + 00081 c3 ret 0 ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcEmitNopGroup _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ _TEXT SEGMENT RawData$ = 4 @@ -528,79 +571,79 @@ $LN6: 00003 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000a 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0000f 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00014 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001e f3 ab rep stosd - 00020 48 8b 05 00 00 + 0000f 48 8b fc mov rdi, rsp + 00012 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00027 48 33 c5 xor rax, rbp - 0002a 48 89 85 40 01 + 00025 48 33 c5 xor rax, rbp + 00028 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00031 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x90 }; - 0003d c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H + 0003b c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H ; 6 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1, TRUE); - 00041 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00046 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0004b 48 89 85 28 01 + 0003f b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00044 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00049 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 00052 48 83 bd 28 01 + 00050 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0005a 74 2c je SHORT $LN3@NcEmitNop - 0005c c7 44 24 20 01 + 00058 74 2c je SHORT $LN3@NcEmitNop + 0005a c7 44 24 20 01 00 00 00 mov DWORD PTR [rsp+32], 1 - 00064 41 b9 01 00 00 + 00062 41 b9 01 00 00 00 mov r9d, 1 - 0006a 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0006e ba 04 00 00 00 mov edx, 4 - 00073 48 8b 8d 28 01 + 00068 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0006c ba 04 00 00 00 mov edx, 4 + 00071 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 0007a e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0007f 48 89 85 38 01 + 00078 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0007d 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00086 eb 0b jmp SHORT $LN4@NcEmitNop + 00084 eb 0b jmp SHORT $LN4@NcEmitNop $LN3@NcEmitNop: - 00088 48 c7 85 38 01 + 00086 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@NcEmitNop: - 00093 48 8b 85 38 01 + 00091 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 0009a 48 89 85 08 01 + 00098 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000a1 48 8b 85 08 01 + 0009f 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000a8 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000a6 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 7 : //XedDecode(&Link->XedInstruction, Link->RawData, 1); ; 8 : return Link; - 000ac 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000aa 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] ; 9 : } - 000b0 48 8b f8 mov rdi, rax - 000b3 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000b7 48 8d 15 00 00 + 000ae 48 8b f8 mov rdi, rax + 000b1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000b5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcFrameData - 000be e8 00 00 00 00 call _RTC_CheckStackVars - 000c3 48 8b c7 mov rax, rdi - 000c6 48 8b 8d 40 01 + 000bc e8 00 00 00 00 call _RTC_CheckStackVars + 000c1 48 8b c7 mov rax, rdi + 000c4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000cd 48 33 cd xor rcx, rbp - 000d0 e8 00 00 00 00 call __security_check_cookie - 000d5 48 8d a5 58 01 + 000cb 48 33 cd xor rcx, rbp + 000ce e8 00 00 00 00 call __security_check_cookie + 000d3 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000da 5f pop rdi + 000db 5d pop rbp + 000dc c3 ret 0 ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ENDP ; NcEmitNop _TEXT ENDS ; COMDAT text$x @@ -618,7 +661,7 @@ __$ArrayPad$ = 320 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -644,7 +687,7 @@ __$ArrayPad$ = 320 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -655,7 +698,7 @@ __$ArrayPad$ = 320 ?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA ENDP ; `NcEmitNop'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -666,7 +709,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -678,141 +721,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -823,7 +872,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -835,141 +884,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -980,7 +1035,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -991,98 +1046,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1099,73 +1160,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1184,7 +1251,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1195,251 +1262,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1462,34 +1529,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1506,18 +1579,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1532,18 +1612,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1558,18 +1645,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1582,14 +1676,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Obfuscator.cod b/CodeVirtualizer/x64/Debug/Obfuscator.cod index f39d5aa..2cd640b 100644 --- a/CodeVirtualizer/x64/Debug/Obfuscator.cod +++ b/CodeVirtualizer/x64/Debug/Obfuscator.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,76 +33,103 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__0A045E7B_NativeCode@h DB 01H -__A4C33DB6_Obfuscator@cpp DB 01H -__092B7E84_vector DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__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 +__BF2A7ACC_vector DB 01H +__135BC3AC_Obfuscator@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete -PUBLIC __local_stdio_printf_options -PUBLIC _vfprintf_l -PUBLIC printf +PUBLIC ??2@YAPEAX_KPEAX@Z ; operator new PUBLIC wmemcpy +PUBLIC ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max +PUBLIC ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception +PUBLIC ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception +PUBLIC ??1exception@std@@UEAA@XZ ; std::exception::~exception +PUBLIC ?what@exception@std@@UEBAPEBDXZ ; std::exception::what +PUBLIC ??_Gexception@std@@UEAAPEAXI@Z ; std::exception::`scalar deleting destructor' +PUBLIC ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc +PUBLIC ??1bad_alloc@std@@UEAA@XZ ; std::bad_alloc::~bad_alloc +PUBLIC ??0bad_alloc@std@@QEAA@AEBV01@@Z ; std::bad_alloc::bad_alloc +PUBLIC ??_Gbad_alloc@std@@UEAAPEAXI@Z ; std::bad_alloc::`scalar deleting destructor' +PUBLIC ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length +PUBLIC ??1bad_array_new_length@std@@UEAA@XZ ; std::bad_array_new_length::~bad_array_new_length +PUBLIC ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ; std::bad_array_new_length::bad_array_new_length +PUBLIC ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ; std::bad_array_new_length::`scalar deleting destructor' +PUBLIC ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +PUBLIC ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -PUBLIC ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked -PUBLIC ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr PUBLIC ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals +PUBLIC ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate +PUBLIC ?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::allocate +PUBLIC ?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z ; std::_Default_allocator_traits > >::max_size +PUBLIC ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::max_size +PUBLIC ?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::capacity +PUBLIC ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ; std::vector,std::allocator > >::_Umove +PUBLIC ?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z ; std::vector,std::allocator > >::_Umove_if_noexcept1 +PUBLIC ?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z ; std::vector,std::allocator > >::_Umove_if_noexcept +PUBLIC ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy +PUBLIC ?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z ; std::vector,std::allocator > >::_Calculate_growth +PUBLIC ?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z ; std::vector,std::allocator > >::_Change_array +PUBLIC ?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ ; std::vector,std::allocator > >::_Xlength +PUBLIC ?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Orphan_range +PUBLIC ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal +PUBLIC ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first PUBLIC ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate PUBLIC ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy @@ -111,29 +138,80 @@ 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 ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' -PUBLIC ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 +PUBLIC ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches +PUBLIC ?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfMutateInstructions +PUBLIC ?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z ; ObfiRandomizeInstruction +PUBLIC ??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::vector,std::allocator > >::emplace_back +PUBLIC ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward +PUBLIC ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward +PUBLIC ??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity +PUBLIC ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > +PUBLIC ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::_Default_allocator_traits > >::construct,int (__cdecl*)(_NATIVE_CODE_LINK *,unsigned char *,void *),void *> +PUBLIC ??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::vector,std::allocator > >::_Emplace_reallocate PUBLIC ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator PUBLIC ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange PUBLIC ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > +PUBLIC ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min +PUBLIC ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> +PUBLIC ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> PUBLIC ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> +PUBLIC ??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::pair::pair PUBLIC ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > +PUBLIC ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned +PUBLIC ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Destroy_range > > +PUBLIC ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Uninitialized_move *,std::allocator > > PUBLIC ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate +PUBLIC ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ; std::_Get_unwrapped * const &> +PUBLIC ??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::move &> +PUBLIC ??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > > +PUBLIC ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > +PUBLIC ?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::_Uninitialized_backout_al > >::_Release +PUBLIC ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z ; std::_Uninitialized_backout_al > >::__autoclassinit2 +PUBLIC ??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z ; std::_Uninitialized_backout_al > >::_Emplace_back > +PUBLIC ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::forward > +PUBLIC ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z ; std::_Default_allocator_traits > >::construct,std::pair > PUBLIC __JustMyCode_Default -PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage +PUBLIC ??_7exception@std@@6B@ ; std::exception::`vftable' +PUBLIC ??_C@_0BC@EOODALEL@Unknown?5exception@ ; `string' +PUBLIC ??_7bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' +PUBLIC ??_7bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`vftable' +PUBLIC ??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ ; `string' +PUBLIC _TI3?AVbad_array_new_length@std@@ +PUBLIC _CTA3?AVbad_array_new_length@std@@ +PUBLIC ??_R0?AVbad_array_new_length@std@@@8 ; std::bad_array_new_length `RTTI Type Descriptor' +PUBLIC _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 +PUBLIC ??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc `RTTI Type Descriptor' +PUBLIC _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 +PUBLIC ??_R0?AVexception@std@@@8 ; std::exception `RTTI Type Descriptor' +PUBLIC _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' -PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +PUBLIC ??_C@_0BA@FOIKENOD@vector?5too?5long@ ; `string' +PUBLIC ??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ ; `string' +PUBLIC ??_R4exception@std@@6B@ ; std::exception::`RTTI Complete Object Locator' +PUBLIC ??_R3exception@std@@8 ; std::exception::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2exception@std@@8 ; std::exception::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`RTTI Complete Object Locator' +PUBLIC ??_R3bad_alloc@std@@8 ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R4bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`RTTI Complete Object Locator' +PUBLIC ??_R3bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Base Class Descriptor at (0,-1,0,64)' +EXTRN ??2@YAPEAX_K@Z:PROC ; operator new EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete EXTRN __imp__invalid_parameter:PROC EXTRN memcpy:PROC @@ -144,9 +222,13 @@ EXTRN __imp__calloc_dbg:PROC EXTRN __imp__CrtDbgReport:PROC EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC -EXTRN __imp___acrt_iob_func:PROC -EXTRN __imp___stdio_common_vfprintf:PROC +EXTRN __std_exception_copy:PROC +EXTRN __std_exception_destroy:PROC +EXTRN ??_Eexception@std@@UEAAPEAXI@Z:PROC ; std::exception::`vector deleting destructor' +EXTRN ??_Ebad_alloc@std@@UEAAPEAXI@Z:PROC ; std::bad_alloc::`vector deleting destructor' +EXTRN ??_Ebad_array_new_length@std@@UEAAPEAXI@Z:PROC ; std::bad_array_new_length::`vector deleting destructor' EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN ?_Xlength_error@std@@YAXPEBD@Z:PROC ; std::_Xlength_error EXTRN _Mbrtowc:PROC EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC @@ -164,6 +246,7 @@ EXTRN ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z:P EXTRN ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z:PROC ; ObfCreateOpaqueBranches EXTRN ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z:PROC ; ObfCombineOpaqueBranches EXTRN ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; ObfInsertOpaqueBranchBlock +EXTRN _CxxThrowException:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC @@ -172,227 +255,579 @@ EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC +EXTRN ??_7type_info@@6B@:BYTE ; type_info::`vftable' EXTRN __security_cookie:QWORD -; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA -_BSS SEGMENT -?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage -_BSS ENDS +EXTRN _fltused:DWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+44 - DD imagerel $unwind$__local_stdio_printf_options +$pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+103 - DD imagerel $unwind$_vfprintf_l +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$printf DD imagerel $LN3 - DD imagerel $LN3+216 - DD imagerel $unwind$printf +$pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 + DD imagerel $LN3+62 + DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 - DD imagerel $unwind$wmemcpy +$pdata$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 + DD imagerel $LN3+139 + DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+453 - DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +$pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+146 + DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+66 - DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ +$pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$??1exception@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 + DD imagerel $LN5+119 + DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 + DD imagerel $LN3+118 + DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 + DD imagerel $LN3+83 + DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_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$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 + DD imagerel $LN21+476 + DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+151 - DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 + DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+97 + DD imagerel $unwind$?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+125 + DD imagerel $unwind$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+98 + DD imagerel $unwind$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z DD imagerel $LN3 + DD imagerel $LN3+120 + DD imagerel $unwind$?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z DD imagerel $LN3 + DD imagerel $LN3+120 + DD imagerel $unwind$?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z DD imagerel $LN3 + DD imagerel $LN3+142 + DD imagerel $unwind$?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD imagerel $LN3 + DD imagerel $LN3+108 + DD imagerel $unwind$?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z DD imagerel $LN5 + DD imagerel $LN5+200 + DD imagerel $unwind$?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z DD imagerel $LN4 + DD imagerel $LN4+328 + DD imagerel $unwind$?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD imagerel $LN9 + DD imagerel $LN9+267 + DD imagerel $unwind$?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+203 + DD imagerel $LN3+202 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+257 + DD imagerel $LN4+280 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN33 - DD imagerel $LN33+1478 - DD imagerel $unwind$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z +$pdata$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN24 + DD imagerel $LN24+1322 + DD imagerel $unwind$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 + DD imagerel $unwind$?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 + DD imagerel $unwind$?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 + DD imagerel $unwind$?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 + DD imagerel $unwind$?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 + DD imagerel $unwind$?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 + DD imagerel $unwind$?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN17 + DD imagerel $LN17+695 + DD imagerel $unwind$?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z DD imagerel $LN6 + DD imagerel $LN6+142 + DD imagerel $unwind$?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD imagerel $LN4 + DD imagerel $LN4+273 + DD imagerel $unwind$??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DD imagerel ?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 - DD imagerel $unwind$?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +$pdata$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DD imagerel ?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 - DD imagerel $unwind$?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +$pdata$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DD imagerel ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+39 - DD imagerel $unwind$?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +$pdata$??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+265 + DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+167 + DD imagerel $unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD imagerel $LN13 + DD imagerel $LN13+658 + DD imagerel $unwind$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA DD imagerel ?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA + DD imagerel ?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA+94 + DD imagerel $unwind$?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+84 + DD imagerel $LN3+107 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+89 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 + DD imagerel $LN5+142 + DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD imagerel $LN4 + DD imagerel $LN4+114 + DD imagerel $unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 + DD imagerel $LN5+117 + DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+98 + DD imagerel $LN4+121 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+132 + DD imagerel $unwind$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD imagerel $LN13 + DD imagerel $LN13+300 + DD imagerel $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD imagerel $LN7 + DD imagerel $LN7+282 + DD imagerel $unwind$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+97 DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DD imagerel $LN3 + DD imagerel $LN3+134 + DD imagerel $unwind$??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+102 + DD imagerel $unwind$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD imagerel $LN3 + DD imagerel $LN3+96 + DD imagerel $unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+73 + DD imagerel $unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z DD imagerel $LN3 + DD imagerel $LN3+181 + DD imagerel $unwind$??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z DD imagerel $LN3 + DD imagerel $LN3+129 + DD imagerel $unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z +pdata ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown @@ -401,6 +836,116 @@ rtc$TMZ ENDS rtc$IMZ SEGMENT _RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase rtc$IMZ ENDS +; COMDAT ??_R1A@?0A@EA@bad_array_new_length@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@bad_array_new_length@std@@8 DD imagerel ??_R0?AVbad_array_new_length@std@@@8 ; std::bad_array_new_length::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 02H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3bad_array_new_length@std@@8 +rdata$r ENDS +; COMDAT ??_R2bad_array_new_length@std@@8 +rdata$r SEGMENT +??_R2bad_array_new_length@std@@8 DD imagerel ??_R1A@?0A@EA@bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@bad_alloc@std@@8 + DD imagerel ??_R1A@?0A@EA@exception@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3bad_array_new_length@std@@8 +rdata$r SEGMENT +??_R3bad_array_new_length@std@@8 DD 00H ; std::bad_array_new_length::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 03H + DD imagerel ??_R2bad_array_new_length@std@@8 +rdata$r ENDS +; COMDAT ??_R4bad_array_new_length@std@@6B@ +rdata$r SEGMENT +??_R4bad_array_new_length@std@@6B@ DD 01H ; std::bad_array_new_length::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVbad_array_new_length@std@@@8 + DD imagerel ??_R3bad_array_new_length@std@@8 + DD imagerel ??_R4bad_array_new_length@std@@6B@ +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@bad_alloc@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@bad_alloc@std@@8 DD imagerel ??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 01H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3bad_alloc@std@@8 +rdata$r ENDS +; COMDAT ??_R2bad_alloc@std@@8 +rdata$r SEGMENT +??_R2bad_alloc@std@@8 DD imagerel ??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@exception@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3bad_alloc@std@@8 +rdata$r SEGMENT +??_R3bad_alloc@std@@8 DD 00H ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 02H + DD imagerel ??_R2bad_alloc@std@@8 +rdata$r ENDS +; COMDAT ??_R4bad_alloc@std@@6B@ +rdata$r SEGMENT +??_R4bad_alloc@std@@6B@ DD 01H ; std::bad_alloc::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVbad_alloc@std@@@8 + DD imagerel ??_R3bad_alloc@std@@8 + DD imagerel ??_R4bad_alloc@std@@6B@ +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@exception@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@exception@std@@8 DD imagerel ??_R0?AVexception@std@@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 00H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3exception@std@@8 +rdata$r ENDS +; COMDAT ??_R2exception@std@@8 +rdata$r SEGMENT +??_R2exception@std@@8 DD imagerel ??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Array' + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3exception@std@@8 +rdata$r SEGMENT +??_R3exception@std@@8 DD 00H ; std::exception::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 01H + DD imagerel ??_R2exception@std@@8 +rdata$r ENDS +; COMDAT ??_R4exception@std@@6B@ +rdata$r SEGMENT +??_R4exception@std@@6B@ DD 01H ; std::exception::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVexception@std@@@8 + DD imagerel ??_R3exception@std@@8 + DD imagerel ??_R4exception@std@@6B@ +rdata$r ENDS +; COMDAT ??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ +CONST SEGMENT +??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H + DB 'l', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'a', 00H, 't', 00H, 'e' + DB 00H, '_', 00H, 'm', 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H + DB 'l', 00H, 'l', 00H, 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c' + DB 00H, 't', 00H, 'o', 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H + DB 'i', 00H, 'g', 00H, 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BA@FOIKENOD@vector?5too?5long@ +CONST SEGMENT +??_C@_0BA@FOIKENOD@vector?5too?5long@ DB 'vector too long', 00H ; `string' +CONST ENDS ; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ CONST SEGMENT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' @@ -411,26 +956,21 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ -CONST SEGMENT -??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ DB 'Depth: %u,' - DB ' InstCount: %u', 0aH, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ CONST SEGMENT @@ -449,9 +989,9 @@ CONST SEGMENT DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H @@ -464,16 +1004,16 @@ CONST SEGMENT DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -485,1884 +1025,5984 @@ CONST SEGMENT CONST ENDS ; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA _DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS +; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVexception@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0exception@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVexception@std@@@8 +data$r SEGMENT +??_R0?AVexception@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::exception `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVexception@std@@', 00H +data$r ENDS +; COMDAT _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 DD 010H + DD imagerel ??_R0?AVbad_alloc@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_alloc@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_alloc@std@@@8 +data$r SEGMENT +??_R0?AVbad_alloc@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_alloc `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_alloc@std@@', 00H +data$r ENDS +; COMDAT _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVbad_array_new_length@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_array_new_length@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_array_new_length@std@@@8 +data$r SEGMENT +??_R0?AVbad_array_new_length@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_array_new_length `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_array_new_length@std@@', 00H +data$r ENDS +; COMDAT _CTA3?AVbad_array_new_length@std@@ +xdata$x SEGMENT +_CTA3?AVbad_array_new_length@std@@ DD 03H + DD imagerel _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x ENDS +; COMDAT _TI3?AVbad_array_new_length@std@@ +xdata$x SEGMENT +_TI3?AVbad_array_new_length@std@@ DD 00H + DD imagerel ??1bad_array_new_length@std@@UEAA@XZ + DD 00H + DD imagerel _CTA3?AVbad_array_new_length@std@@ +xdata$x ENDS +; COMDAT ??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ +CONST SEGMENT +??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ DB 'bad array new length', 00H ; `string' +CONST ENDS +; COMDAT ??_7bad_array_new_length@std@@6B@ +CONST SEGMENT +??_7bad_array_new_length@std@@6B@ DQ FLAT:??_R4bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`vftable' + DQ FLAT:??_Ebad_array_new_length@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_7bad_alloc@std@@6B@ +CONST SEGMENT +??_7bad_alloc@std@@6B@ DQ FLAT:??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' + DQ FLAT:??_Ebad_alloc@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_C@_0BC@EOODALEL@Unknown?5exception@ +CONST SEGMENT +??_C@_0BC@EOODALEL@Unknown?5exception@ DB 'Unknown exception', 00H ; `string' +CONST ENDS +; COMDAT ??_7exception@std@@6B@ +CONST SEGMENT +??_7exception@std@@6B@ DQ FLAT:??_R4exception@std@@6B@ ; std::exception::`vftable' + DQ FLAT:??_Eexception@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS ; COMDAT xdata xdata SEGMENT -$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 +$unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z DD 025063501H + DD 0119231eH + DD 070120020H + DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H +$ip2state$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H - DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +$cppxdata$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 060H + DD imagerel $ip2state$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z + DD imagerel $cppxdata$??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H - DB 00H +$unwind$??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z DD 025052f01H + DD 01132318H + DD 0700c0021H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z DD 05052d01H + DD 01130316H + DD 0700c0019H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DB 02H + DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +$cppxdata$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z + DD imagerel $cppxdata$??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H +$unwind$??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$ip2state$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$cppxdata$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DB 060H + DD imagerel $ip2state$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@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 DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 05adH -voltbl ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H +$unwind$?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA DD 031001H DD 0700c4210H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 0eH +$ip2state$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 06H DB 00H DB 00H - DB 0d5H, 0fH - DB 02H - DB 01aH - DB 04H - DB 'I', 03H + DB 'q', 02H DB 02H - DB 01aH - DB 00H - DB '6' - DB 06H - DB 0c8H + DB '~' DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 06H +$stateUnwindMap$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 02H DB 0eH - DD imagerel ?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DB 02eH - DD imagerel ?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DB 05eH - DD imagerel ?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 028H - DD imagerel $stateUnwindMap$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z - DD imagerel $ip2state$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z +$cppxdata$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 028H + DD imagerel $stateUnwindMap$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z + DD imagerel $ip2state$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD 025054719H - DD 0118231dH - DD 070110081H - DD 05010H +$unwind$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD 025054a19H + DD 011d2322H + DD 07016002fH + DD 05015H DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z - DD 03f2H + DD imagerel $cppxdata$??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z + DD 016aH xdata ENDS ; COMDAT CONST CONST SEGMENT -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$0 DB 04eH ; ObfObfuscate1 - DB 06fH - DB 074H - DB 054H - DB 061H - DB 06bH - DB 065H - DB 06eH - DB 00H - ORG $+3 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$1 DB 054H ; ObfObfuscate1 - DB 061H - DB 06bH - DB 065H - DB 06eH - DB 00H - ORG $+6 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$2 DB 054H ; ObfObfuscate1 - DB 065H - DB 06dH - DB 070H +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcName$0 DB 05fH ; std::_Uninitialized_move *,std::allocator > > DB 042H - DB 06cH - DB 06fH + DB 061H DB 063H DB 06bH + DB 06fH + DB 075H + DB 074H DB 00H - ORG $+14 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc DD 01e8H ; ObfObfuscate1 - DD 030H - DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$2 - DD 0198H - DD 030H - DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$1 - DD 0148H - DD 030H - DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$0 - ORG $+144 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData DD 03H ; ObfObfuscate1 + ORG $+7 +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcVarDesc DD 068H ; std::_Uninitialized_move *,std::allocator > > + DD 018H + DQ FLAT:??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcName$0 + ORG $+48 +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcFrameData DD 01H ; std::_Uninitialized_move *,std::allocator > > DD 00H - DQ FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc + DQ FLAT:??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025051701H - DD 01122317H - DD 0700b001dH - DD 0500aH +$ip2state$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$unwind$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH +$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035052a01H + DD 010e3313H + DD 07007002bH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 02H +$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H - DD imagerel $ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H - DD 010e2313H - DD 07007002fH - DD 05006H +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ + DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$ip2state$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 0b2H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H - DD 010e2313H - DD 070070029H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0138H +$cppxdata$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 060H + DD imagerel $ip2state$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z xdata ENDS -; COMDAT CONST -CONST SEGMENT -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector >::~vector > - DB 053H - DB 031H - DB 00H - ORG $+12 -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc DD 044H ; std::vector >::~vector > - DD 01H - DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 - ORG $+48 -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector >::~vector > - DD 00H - DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H +$unwind$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H - DD 0119231eH - DD 070120026H - DD 050106011H +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H - DD 0119231eH - DD 070120026H - DD 050106011H +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H - DD 0118331dH - DD 07011002bH - DD 05010H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H - DD 010e3313H - DD 070070027H - DD 05006H +$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H + DB 00H + DB 00H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H - DD 0118331dH - DD 070110047H +$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H + DD 0118231dH + DD 07011001dH DD 05010H - DD imagerel __GSHandlerCheck - DD 0228H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS -; COMDAT CONST -CONST SEGMENT -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr - DB 057H - DB 063H - DB 00H -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr - DB 04dH - DB 062H - DB 073H - DB 074H - DB 031H - DB 00H - ORG $+1 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr - DB 04dH - DB 062H - DB 073H - DB 074H - DB 032H - DB 00H - ORG $+13 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr - DD 08H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 - DD 0f8H - DD 08H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 - DD 0d4H - DD 02H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 - ORG $+144 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr - DD 00H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc -CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H DD 010e2313H - DD 070070021H + DD 07007001dH DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H xdata ENDS -; COMDAT CONST -CONST SEGMENT -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+10 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked - DD 04H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 - ORG $+48 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked - DD 00H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H DD 010e2313H - DD 070070021H + DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H - DD 01133318H - DD 0700c002fH - DD 0500bH +$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0bfH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054c19H - DD 011d2322H - DD 07016002bH - DD 05015H - DD imagerel __GSHandlerCheck - DD 0148H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -printf$rtcName$0 DB 05fH - DB 041H - DB 072H - DB 067H - DB 04cH - DB 069H - DB 073H - DB 074H +$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 - ORG $+7 -printf$rtcVarDesc DD 048H - DD 08H - DQ FLAT:printf$rtcName$0 - ORG $+48 -printf$rtcFrameData DD 01H - DD 00H - DQ FLAT:printf$rtcVarDesc -CONST ENDS + DB 00H +xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035052201H - DD 011d3322H - DD 07016001fH - DD 05015H +$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$__local_stdio_printf_options DD 025050f01H - DD 010a230fH - DD 07003001dH - DD 05002H +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$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$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H DD 01132318H - DD 0700c001dH + 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$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 06H + DB 00H + DB 00H + DB 0e1H, 04H + DB 02H + DB 'a', 04H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$handlerMap$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 02H + DB 01H + DB 080H + DD imagerel ?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$tryMap$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 02H + DB 00H + DB 00H + DB 02H + DD imagerel $handlerMap$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 04H + DB 08H + DB 010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DB 038H + DD imagerel $stateUnwindMap$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z + DD imagerel $tryMap$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z + DD imagerel $ip2state$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD 025053919H + DD 011d2322H + DD 07016004bH + DD 05015H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD 025053901H + DD 011d2322H + DD 070160023H + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$cppxdata$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z -_TEXT SEGMENT -_Al$ = 224 -_Ptr$ = 232 -_Count$ = 240 -?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT - -; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 694 : // no overflow check on the following multiply; we assume _Allocate did that check -; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 696 : if (_STD is_constant_evaluated()) { -; 697 : _Al.deallocate(_Ptr, _Count); -; 698 : } else -; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 700 : { -; 701 : (void) _Al; -; 702 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00029 48 6b 85 f0 00 - 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00031 48 8b d0 mov rdx, rax - 00034 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> - -; 703 : } -; 704 : } - - 00040 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 -?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate -_TEXT ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD 025053401H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z DB 060H + DD imagerel $ip2state$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z DB 060H + DD imagerel $ip2state$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z DD 025053401H + DD 0118231dH + DD 07011002bH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z DD 025053401H + DD 0118231dH + DD 070110021H + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z DD 025052f01H + DD 01132318H + DD 0700c003dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 01aH + DB 00H + DB 00H + DB 0a5H, 06H + DB 02H + DB 01aH + DB 04H + DB '1', 03H + DB 02H + DB 01aH + DB 00H + DB '6' + DB 06H + DB 0bcH + DB 00H + DB 'a', 02H + DB 08H + DB 01aH + DB 0aH + DB 01dH, 03H + DB 08H + DB 01aH + DB 00H + DB '6' + DB 0cH + DB 0b2H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 0cH + DB 0eH + DD imagerel ?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DB 02eH + DD imagerel ?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DB 05eH + DD imagerel ?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DB 086H + DD imagerel ?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DB 02eH + DD imagerel ?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DB 0d6H + DD imagerel ?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z DB 028H + DD imagerel $stateUnwindMap$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z + DD imagerel $ip2state$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z DD 025054519H + DD 0118231dH + DD 070110087H + DD 05010H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z + DD 0422H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$0 DB 04eH ; ObfGenerateOpaqueBranches + DB 06fH + DB 074H + DB 054H + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+3 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$1 DB 054H ; ObfGenerateOpaqueBranches + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+6 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$2 DB 054H ; ObfGenerateOpaqueBranches + DB 065H + DB 06dH + DB 070H + DB 042H + DB 06cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+6 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$3 DB 04eH ; ObfGenerateOpaqueBranches + DB 06fH + DB 074H + DB 054H + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+3 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$4 DB 054H ; ObfGenerateOpaqueBranches + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+6 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$5 DB 054H ; ObfGenerateOpaqueBranches + DB 065H + DB 06dH + DB 070H + DB 042H + DB 06cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+6 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc DD 0258H ; ObfGenerateOpaqueBranches + DD 030H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$5 + DD 0208H + DD 030H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$4 + DD 01b8H + DD 030H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$3 + DD 0168H + DD 030H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$2 + DD 0118H + DD 030H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$1 + DD 0c8H + DD 030H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcName$0 + ORG $+288 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData DD 06H ; ObfGenerateOpaqueBranches + DD 00H + DQ FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H + DD 010e2313H + DD 07007002fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ + DD 013bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector >::~vector > + DB 053H + DB 031H + DB 00H + ORG $+12 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc DD 044H ; std::vector >::~vector > + DD 01H + DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 + ORG $+48 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector >::~vector > + DD 00H + DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD 025054519H + DD 0118231dH + DD 070110029H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0138H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcName$0 DB 05fH ; std::vector,std::allocator > >::_Orphan_range + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+10 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcVarDesc DD 024H ; std::vector,std::allocator > >::_Orphan_range + DD 04H + DQ FLAT:?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcName$0 + ORG $+48 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcFrameData DD 01H ; std::vector,std::allocator > >::_Orphan_range + DD 00H + DQ FLAT:?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ DD 025051e01H + DD 010a230fH + DD 07003001dH + DD 05002H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z DD 025053901H + DD 011d2322H + DD 07016002fH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z DD 025052f01H + DD 01132318H + DD 0700c0025H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z DD 035053901H + DD 011d3322H + DD 070160023H + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DB 060H + DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + DD 0119231eH + DD 070120026H + DD 050106011H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + DD 0119231eH + DD 070120026H + DD 050106011H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H + DD 0118331dH + DD 07011002bH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H + DD 010e3313H + DD 070070027H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H + DD 0118331dH + DD 070110047H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0228H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr + DB 057H + DB 063H + DB 00H +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 031H + DB 00H + ORG $+1 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 032H + DB 00H + ORG $+13 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 + DD 0f8H + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 + DD 0d4H + DD 02H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 + ORG $+144 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr + DD 00H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+10 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all + DD 04H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all + DD 00H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H + DD 01133318H + DD 0700c002fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H + DD 010a230fH + DD 070030023H + DD 05002H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0bad_array_new_length@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_array_new_length@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0bad_array_new_length@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_array_new_length@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z DB 060H + DD imagerel $ip2state$??0bad_alloc@std@@AEAA@QEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H + DD 010e2313H + DD 07007001fH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1exception@std@@UEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1exception@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1exception@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1exception@std@@UEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1exception@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ DB 060H + DD imagerel $ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H + DD 010a230fH + DD 07003001dH + DD 05002H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??2@YAPEAX_KPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H + DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z +_TEXT SEGMENT +$T1 = 200 +__formal$ = 256 +_Ptr$ = 264 +<_Args_0>$ = 272 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z PROC ; std::_Default_allocator_traits > >::construct,std::pair >, COMDAT + +; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 00 01 + 00 00 sub rsp, 256 ; 00000100H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 40 00 00 00 mov ecx, 64 ; 00000040H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00041 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 b9 10 00 00 00 mov ecx, 16 + 0004d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00052 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00059 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00060 e8 00 00 00 00 call ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::forward > + 00065 48 8b bd c8 00 + 00 00 mov rdi, QWORD PTR $T1[rbp] + 0006c 48 8b f0 mov rsi, rax + 0006f b9 10 00 00 00 mov ecx, 16 + 00074 f3 a4 rep movsb + +; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); +; 695 : } + + 00076 48 8d a5 e0 00 + 00 00 lea rsp, QWORD PTR [rbp+224] + 0007d 5f pop rdi + 0007e 5e pop rsi + 0007f 5d pop rbp + 00080 c3 ret 0 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z ENDP ; std::_Default_allocator_traits > >::construct,std::pair > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z PROC ; std::forward >, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ENDP ; std::forward > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z +_TEXT SEGMENT +tv78 = 192 +tv76 = 200 +tv74 = 208 +this$ = 256 +<_Vals_0>$ = 264 +??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z PROC ; std::_Uninitialized_backout_al > >::_Emplace_back >, COMDAT + +; 1507 : void _Emplace_back(_Types&&... _Vals) { // construct a new element at *_Last and increment + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1508 : allocator_traits<_Alloc>::construct(_Al, _Unfancy(_Last), _STD forward<_Types>(_Vals)...); + + 0003b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR <_Vals_0>$[rbp] + 00042 e8 00 00 00 00 call ??$forward@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::forward > + 00047 48 89 85 c0 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 0004e 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00055 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00059 e8 00 00 00 00 call ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > + 0005e 48 89 85 c8 00 + 00 00 mov QWORD PTR tv76[rbp], rax + 00065 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006c 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00070 48 89 85 d0 00 + 00 00 mov QWORD PTR tv74[rbp], rax + 00077 4c 8b 85 c0 00 + 00 00 mov r8, QWORD PTR tv78[rbp] + 0007e 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR tv76[rbp] + 00085 48 8b 8d d0 00 + 00 00 mov rcx, QWORD PTR tv74[rbp] + 0008c e8 00 00 00 00 call ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@U12@@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAU31@@Z ; std::_Default_allocator_traits > >::construct,std::pair > + +; 1509 : ++_Last; + + 00091 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00098 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0009c 48 83 c0 10 add rax, 16 + 000a0 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a7 48 89 41 08 mov QWORD PTR [rcx+8], rax + +; 1510 : } + + 000ab 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000b2 5f pop rdi + 000b3 5d pop rbp + 000b4 c3 ret 0 +??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z ENDP ; std::_Uninitialized_backout_al > >::_Emplace_back > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z +_TEXT SEGMENT +this$ = 224 +classSize$ = 232 +?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z PROC ; std::_Uninitialized_backout_al > >::__autoclassinit2, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec c8 00 + 00 00 sub rsp, 200 ; 000000c8H + 00013 48 8b ec mov rbp, rsp + 00016 48 8b fc mov rdi, rsp + 00019 b9 32 00 00 00 mov ecx, 50 ; 00000032H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 e8 + 00 00 00 mov rcx, QWORD PTR [rsp+232] + 0002d 48 8b bd e0 00 + 00 00 mov rdi, QWORD PTR this$[rbp] + 00034 33 c0 xor eax, eax + 00036 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR classSize$[rbp] + 0003d f3 aa rep stosb + 0003f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 +?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z ENDP ; std::_Uninitialized_backout_al > >::__autoclassinit2 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ PROC ; std::_Uninitialized_backout_al > >::_Release, COMDAT + +; 1512 : pointer _Release() { // suppress any exception handling backout and return _Last + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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 + +; 1513 : _First = _Last; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00044 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00048 48 89 08 mov QWORD PTR [rax], rcx + +; 1514 : return _Last; + + 0004b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00052 48 8b 40 08 mov rax, QWORD PTR [rax+8] + +; 1515 : } + + 00056 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 +?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ENDP ; std::_Uninitialized_backout_al > >::_Release +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ PROC ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > >, COMDAT + +; 1502 : ~_Uninitialized_backout_al() { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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 + +; 1503 : _Destroy_range(_First, _Last, _Al); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 4c 8b 40 10 mov r8, QWORD PTR [rax+16] + 00041 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00048 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 8b 08 mov rcx, QWORD PTR [rax] + 00056 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Destroy_range > > + 0005b 90 npad 1 + +; 1504 : } + + 0005c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 +??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z +_TEXT SEGMENT +this$ = 224 +_Dest$ = 232 +_Al_$ = 240 +??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z PROC ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > >, COMDAT + +; 1497 : _Uninitialized_backout_al(pointer _Dest, _Alloc& _Al_) : _First(_Dest), _Last(_Dest), _Al(_Al_) {} + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 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 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00051 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00063 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Al_$[rbp] + 00071 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00075 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00083 5f pop rdi + 00084 5d pop rbp + 00085 c3 ret 0 +??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ENDP ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z PROC ; std::move &>, COMDAT + +; 1466 : _NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movable + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1467 : return static_cast&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1468 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ENDP ; std::move &> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; COMDAT ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z PROC ; std::_Get_unwrapped * const &>, COMDAT + +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1232 : return _It + 0; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _It$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + +; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } + + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ENDP ; std::_Get_unwrapped * const &> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +_TEXT SEGMENT +__formal$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT + +; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 688 : // no overflow check on the following multiply; we assume _Allocate did that check +; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00040 48 6b 85 f0 00 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 690 : } + + 00057 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 +?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +_TEXT SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$4 = 72 +$T5 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z PROC ; std::_Uninitialized_move *,std::allocator > >, COMDAT + +; 1647 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { + +$LN7: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00039 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 48 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1648 : // move [_First, _Last) to raw _Dest, using _Al +; 1649 : // note: only called internally from elsewhere in the STL +; 1650 : using _Ptrval = typename _Alloc::value_type*; +; 1651 : auto _UFirst = _Get_unwrapped(_First); + + 00056 48 8d 8d 70 01 + 00 00 lea rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ; std::_Get_unwrapped * const &> + 00062 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax + +; 1652 : const auto _ULast = _Get_unwrapped(_Last); + + 00066 48 8d 8d 78 01 + 00 00 lea rcx, QWORD PTR _Last$[rbp] + 0006d e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA@AEBQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@@Z ; std::_Get_unwrapped * const &> + 00072 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax + +; 1653 : if constexpr (conjunction_v::_Really_trivial>, +; 1654 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { +; 1655 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); +; 1656 : return _Dest + (_ULast - _UFirst); +; 1657 : } else { +; 1658 : _Uninitialized_backout_al<_Alloc> _Backout{_Dest, _Al}; + + 00076 ba 18 00 00 00 mov edx, 24 + 0007b 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 0007f e8 00 00 00 00 call ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX_K@Z + 00084 4c 8b 85 88 01 + 00 00 mov r8, QWORD PTR _Al$[rbp] + 0008b 48 8b 95 80 01 + 00 00 mov rdx, QWORD PTR _Dest$[rbp] + 00092 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 00096 e8 00 00 00 00 call ??0?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@@Z ; std::_Uninitialized_backout_al > >::_Uninitialized_backout_al > > + 0009b 90 npad 1 + +; 1659 : for (; _UFirst != _ULast; ++_UFirst) { + + 0009c eb 0c jmp SHORT $LN4@Uninitiali +$LN2@Uninitiali: + 0009e 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] + 000a2 48 83 c0 10 add rax, 16 + 000a6 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax +$LN4@Uninitiali: + 000aa 48 8b 45 28 mov rax, QWORD PTR _ULast$[rbp] + 000ae 48 39 45 08 cmp QWORD PTR _UFirst$[rbp], rax + 000b2 74 17 je SHORT $LN3@Uninitiali + +; 1660 : _Backout._Emplace_back(_STD move(*_UFirst)); + + 000b4 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] + 000b8 e8 00 00 00 00 call ??$move@AEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YA$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@AEAU10@@Z ; std::move &> + 000bd 48 8b d0 mov rdx, rax + 000c0 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 000c4 e8 00 00 00 00 call ??$_Emplace_back@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAX$$QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@@Z ; std::_Uninitialized_backout_al > >::_Emplace_back > + +; 1661 : } + + 000c9 eb d3 jmp SHORT $LN2@Uninitiali +$LN3@Uninitiali: + +; 1662 : +; 1663 : return _Backout._Release(); + + 000cb 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 000cf e8 00 00 00 00 call ?_Release@?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@XZ ; std::_Uninitialized_backout_al > >::_Release + 000d4 48 89 85 38 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 000db 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 000df e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > + 000e4 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR $T5[rbp] + +; 1664 : } +; 1665 : } + + 000eb 48 8b f8 mov rdi, rax + 000ee 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000f2 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z$rtcFrameData + 000f9 e8 00 00 00 00 call _RTC_CheckStackVars + 000fe 48 8b c7 mov rax, rdi + 00101 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00108 48 33 cd xor rcx, rbp + 0010b e8 00 00 00 00 call __security_check_cookie + 00110 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00117 5f pop rdi + 00118 5d pop rbp + 00119 c3 ret 0 +??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ENDP ; std::_Uninitialized_move *,std::allocator > > +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$4 = 72 +$T5 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA PROC ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA ENDP ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$4 = 72 +$T5 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA PROC ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 48 lea rcx, QWORD PTR _Backout$4[rbp] + 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al > >::~_Uninitialized_backout_al > > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z@4HA ENDP ; `std::_Uninitialized_move *,std::allocator > >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +_Al$ = 240 +??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z PROC ; std::_Destroy_range > >, COMDAT + +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ENDP ; std::_Destroy_range > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z +_TEXT SEGMENT +_Block_size$ = 8 +_Ptr_container$ = 40 +_Ptr$ = 72 +_Bytes$ = 320 +??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT + +; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { + +$LN13: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 114 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 115 : const size_t _Block_size = _Non_user_size + _Bytes; + + 00036 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 0003d 48 83 c0 2f add rax, 47 ; 0000002fH + 00041 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax + +; 116 : if (_Block_size <= _Bytes) { + + 00045 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 0004c 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00050 77 05 ja SHORT $LN8@Allocate_m + +; 117 : _Throw_bad_array_new_length(); // add overflow + + 00052 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN8@Allocate_m: + +; 118 : } +; 119 : +; 120 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); + + 00057 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] + 0005b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00060 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax +$LN4@Allocate_m: + +; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] + + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 + 00069 74 02 je SHORT $LN9@Allocate_m + 0006b eb 6b jmp SHORT $LN10@Allocate_m +$LN9@Allocate_m: +$LN7@Allocate_m: + 0006d 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 00074 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00079 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 00080 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00085 45 33 c9 xor r9d, r9d + 00088 41 b8 79 00 00 + 00 mov r8d, 121 ; 00000079H + 0008e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00095 b9 02 00 00 00 mov ecx, 2 + 0009a ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 000a0 83 f8 01 cmp eax, 1 + 000a3 75 03 jne SHORT $LN12@Allocate_m + 000a5 cc int 3 + 000a6 33 c0 xor eax, eax +$LN12@Allocate_m: + 000a8 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000b1 41 b9 79 00 00 + 00 mov r9d, 121 ; 00000079H + 000b7 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000be 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ + 000c5 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 000cc ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000d2 33 c0 xor eax, eax + 000d4 85 c0 test eax, eax + 000d6 75 95 jne SHORT $LN7@Allocate_m +$LN10@Allocate_m: + 000d8 33 c0 xor eax, eax + 000da 85 c0 test eax, eax + 000dc 75 86 jne SHORT $LN4@Allocate_m + +; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); + + 000de 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] + 000e2 48 83 c0 2f add rax, 47 ; 0000002fH + 000e6 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H + 000ea 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax + +; 123 : static_cast(_Ptr)[-1] = _Ptr_container; + + 000ee b8 08 00 00 00 mov eax, 8 + 000f3 48 6b c0 ff imul rax, rax, -1 + 000f7 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000fb 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] + 000ff 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + +; 124 : +; 125 : #ifdef _DEBUG +; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; + + 00103 b8 08 00 00 00 mov eax, 8 + 00108 48 6b c0 fe imul rax, rax, -2 + 0010c 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 00110 48 ba fa fa fa + fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH + 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + +; 127 : #endif // _DEBUG +; 128 : return _Ptr; + + 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] +$LN11@Allocate_m: + +; 129 : } + + 00122 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00129 5f pop rdi + 0012a 5d pop rbp + 0012b c3 ret 0 +??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ENDP ; std::_Allocate_manually_vector_aligned +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_Al$ = 224 +_Ptr$ = 232 +??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT + +; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // deallocate a plain pointer using an allocator +; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; +; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 0003b 41 b8 01 00 00 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 00054 90 npad 1 + +; 1003 : } else { +; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 1006 : } +; 1007 : } + + 00055 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 +??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +_TEXT SEGMENT +this$ = 224 +_Val1$ = 232 +_Val2$ = 240 +??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z PROC ; std::pair::pair, COMDAT + +; 192 : : first(_STD forward<_Other1>(_Val1)), second(_STD forward<_Other2>(_Val2)) {} + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Val1$[rbp] + 00047 e8 00 00 00 00 call ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 89 01 mov QWORD PTR [rcx], rax + 00059 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Val2$[rbp] + 00060 e8 00 00 00 00 call ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward + 00065 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006c 48 8b 00 mov rax, QWORD PTR [rax] + 0006f 48 89 41 08 mov QWORD PTR [rcx+8], rax + 00073 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00081 5f pop rdi + 00082 5d pop rbp + 00083 c3 ret 0 +??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ENDP ; std::pair::pair +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +_TEXT SEGMENT +_Ptr$ = 224 +_Bytes$ = 232 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT + +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { + +$LN4: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 215 : #if defined(_M_IX86) || defined(_M_X64) +; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0003b 48 81 bd e8 00 + 00 00 00 10 00 + 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H + 00046 72 13 jb SHORT $LN2@Deallocate + +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); + + 00048 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR _Bytes$[rbp] + 0004f 48 8d 8d e0 00 + 00 00 lea rcx, QWORD PTR _Ptr$[rbp] + 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned +$LN2@Deallocate: + +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); + + 0005b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Bytes$[rbp] + 00062 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 + +; 222 : } + + 0006f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +_Al$ = 240 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT + +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +_TEXT SEGMENT +_Bytes$ = 224 +??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z PROC ; std::_Allocate<16,std::_Default_allocate_traits,0>, COMDAT + +; 197 : __declspec(allocator) void* _Allocate(const size_t _Bytes) { + +$LN5: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 198 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 199 : #if defined(_M_IX86) || defined(_M_X64) +; 200 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 00036 48 81 bd e0 00 + 00 00 00 10 00 + 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H + 00041 72 0e jb SHORT $LN2@Allocate + +; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); + + 00043 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 0004a e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned + 0004f eb 1a jmp SHORT $LN1@Allocate +$LN2@Allocate: + +; 202 : } +; 203 : #endif // defined(_M_IX86) || defined(_M_X64) +; 204 : +; 205 : if (_Bytes != 0) { + + 00051 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 + 00059 74 0e je SHORT $LN3@Allocate + +; 206 : return _Traits::_Allocate(_Bytes); + + 0005b 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00062 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00067 eb 02 jmp SHORT $LN1@Allocate +$LN3@Allocate: + +; 207 : } +; 208 : +; 209 : return nullptr; + + 00069 33 c0 xor eax, eax +$LN1@Allocate: + +; 210 : } + + 0006b 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 +??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ENDP ; std::_Allocate<16,std::_Default_allocate_traits,0> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z +_TEXT SEGMENT +_Overflow_is_possible$ = 4 +_Max_possible$1 = 40 +_Count$ = 288 +??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<16>, COMDAT + +; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; + + 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; + + 0003a 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + +; 60 : if (_Count > _Max_possible) { + + 00048 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 00052 48 39 85 20 01 + 00 00 cmp QWORD PTR _Count$[rbp], rax + 00059 76 05 jbe SHORT $LN2@Get_size_o + +; 61 : _Throw_bad_array_new_length(); // multiply overflow + + 0005b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN2@Get_size_o: + +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; + + 00060 48 6b 85 20 01 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 +$LN3@Get_size_o: + +; 66 : } + + 00068 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0006f 5f pop rdi + 00070 5d pop rbp + 00071 c3 ret 0 +??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z +_TEXT SEGMENT +$T1 = 200 +tv65 = 216 +_Left$ = 256 +_Right$ = 264 +??$min@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::min, COMDAT + +; 67 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { + +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 68 : // return smaller of _Left and _Right +; 69 : return _Right < _Left ? _Right : _Left; + + 0003b 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00042 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR _Left$[rbp] + 00049 48 8b 09 mov rcx, QWORD PTR [rcx] + 0004c 48 39 08 cmp QWORD PTR [rax], rcx + 0004f 73 10 jae SHORT $LN3@min + 00051 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00058 48 89 85 d8 00 + 00 00 mov QWORD PTR tv65[rbp], rax + 0005f eb 0e jmp SHORT $LN4@min +$LN3@min: + 00061 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Left$[rbp] + 00068 48 89 85 d8 00 + 00 00 mov QWORD PTR tv65[rbp], rax +$LN4@min: + 0006f 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv65[rbp] + 00076 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0007d 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR $T1[rbp] + +; 70 : } + + 00084 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +??$min@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::min +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_Al$ = 224 +_Ptr$ = 232 +??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT + +; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1028 : using _Ty = typename _Alloc::value_type; +; 1029 : _Ptr->~_Ty(); +; 1030 : _Deallocate_plain(_Al, _Ptr); + + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0004e 90 npad 1 + +; 1031 : } + + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +_TEXT SEGMENT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT + +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); + + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + +; 600 : _Val = static_cast<_Other&&>(_New_val); + + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _New_val$[rbp] + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +_TEXT SEGMENT +this$ = 224 +__formal$ = 232 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT + +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +_TEXT SEGMENT +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv139 = 536 +tv137 = 544 +tv135 = 552 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +<_Val_1>$ = 616 +??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z PROC ; std::vector,std::allocator > >::_Emplace_reallocate, COMDAT + +; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { + +$LN13: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 727 : _Alty& _Al = _Getal(); + + 00045 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00051 48 89 45 08 mov QWORD PTR _Al$[rbp], rax + +; 728 : auto& _My_data = _Mypair._Myval2; + + 00055 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005c 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax + +; 729 : pointer& _Myfirst = _My_data._Myfirst; + + 00060 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00064 48 83 c0 08 add rax, 8 + 00068 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax + +; 730 : pointer& _Mylast = _My_data._Mylast; + + 0006c 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00070 48 83 c0 10 add rax, 16 + 00074 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax + +; 731 : +; 732 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity +; 733 : +; 734 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); + + 00078 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 0007c 48 8b 00 mov rax, QWORD PTR [rax] + 0007f 48 8b 8d 58 02 + 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] + 00086 48 2b c8 sub rcx, rax + 00089 48 8b c1 mov rax, rcx + 0008c 48 c1 f8 04 sar rax, 4 + 00090 48 89 85 88 00 + 00 00 mov QWORD PTR _Whereoff$[rbp], rax + +; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); + + 00097 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0009b 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009f 48 8b 09 mov rcx, QWORD PTR [rcx] + 000a2 48 8b 00 mov rax, QWORD PTR [rax] + 000a5 48 2b c1 sub rax, rcx + 000a8 48 c1 f8 04 sar rax, 4 + 000ac 48 89 85 a8 00 + 00 00 mov QWORD PTR _Oldsize$[rbp], rax + +; 736 : +; 737 : if (_Oldsize == max_size()) { + + 000b3 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ba e8 00 00 00 00 call ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::max_size + 000bf 48 39 85 a8 00 + 00 00 cmp QWORD PTR _Oldsize$[rbp], rax + 000c6 75 05 jne SHORT $LN2@Emplace_re + +; 738 : _Xlength(); + + 000c8 e8 00 00 00 00 call ?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ ; std::vector,std::allocator > >::_Xlength +$LN2@Emplace_re: + +; 739 : } +; 740 : +; 741 : const size_type _Newsize = _Oldsize + 1; + + 000cd 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR _Oldsize$[rbp] + 000d4 48 ff c0 inc rax + 000d7 48 89 85 c8 00 + 00 00 mov QWORD PTR _Newsize$[rbp], rax + +; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); + + 000de 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR _Newsize$[rbp] + 000e5 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ec e8 00 00 00 00 call ?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z ; std::vector,std::allocator > >::_Calculate_growth + 000f1 48 89 85 e8 00 + 00 00 mov QWORD PTR _Newcapacity$[rbp], rax + +; 743 : +; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); + + 000f8 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] + 000ff 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00103 e8 00 00 00 00 call ?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::allocate + 00108 48 89 85 08 01 + 00 00 mov QWORD PTR _Newvec$[rbp], rax + +; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; + + 0010f 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 00117 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 0011e 48 8d 44 01 10 lea rax, QWORD PTR [rcx+rax+16] + 00123 48 89 85 28 01 + 00 00 mov QWORD PTR _Constructed_last$[rbp], rax + +; 746 : pointer _Constructed_first = _Constructed_last; + + 0012a 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] + 00131 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax + +; 747 : +; 748 : _TRY_BEGIN +; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); + + 00138 48 8b 8d 68 02 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 0013f e8 00 00 00 00 call ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward + 00144 48 89 85 18 02 + 00 00 mov QWORD PTR tv139[rbp], rax + 0014b 48 8b 8d 60 02 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00152 e8 00 00 00 00 call ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward + 00157 48 89 85 20 02 + 00 00 mov QWORD PTR tv137[rbp], rax + 0015e 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 00166 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 0016d 48 03 c8 add rcx, rax + 00170 48 8b c1 mov rax, rcx + 00173 48 8b c8 mov rcx, rax + 00176 e8 00 00 00 00 call ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > + 0017b 48 89 85 28 02 + 00 00 mov QWORD PTR tv135[rbp], rax + 00182 4c 8b 8d 18 02 + 00 00 mov r9, QWORD PTR tv139[rbp] + 00189 4c 8b 85 20 02 + 00 00 mov r8, QWORD PTR tv137[rbp] + 00190 48 8b 95 28 02 + 00 00 mov rdx, QWORD PTR tv135[rbp] + 00197 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 0019b e8 00 00 00 00 call ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::_Default_allocator_traits > >::construct,int (__cdecl*)(_NATIVE_CODE_LINK *,unsigned char *,void *),void *> + +; 750 : _Constructed_first = _Newvec + _Whereoff; + + 001a0 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 001a8 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 001af 48 03 c8 add rcx, rax + 001b2 48 8b c1 mov rax, rcx + 001b5 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax + +; 751 : +; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee + + 001bc 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001c0 48 8b 00 mov rax, QWORD PTR [rax] + 001c3 48 39 85 58 02 + 00 00 cmp QWORD PTR _Whereptr$[rbp], rax + 001ca 75 23 jne SHORT $LN4@Emplace_re + +; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); + + 001cc 4c 8b 8d 08 01 + 00 00 mov r9, QWORD PTR _Newvec$[rbp] + 001d3 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001d7 4c 8b 00 mov r8, QWORD PTR [rax] + 001da 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001de 48 8b 10 mov rdx, QWORD PTR [rax] + 001e1 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001e8 e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z ; std::vector,std::allocator > >::_Umove_if_noexcept + +; 754 : } else { // provide basic guarantee + + 001ed eb 61 jmp SHORT $LN5@Emplace_re +$LN4@Emplace_re: + +; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); + + 001ef 4c 8b 8d 08 01 + 00 00 mov r9, QWORD PTR _Newvec$[rbp] + 001f6 4c 8b 85 58 02 + 00 00 mov r8, QWORD PTR _Whereptr$[rbp] + 001fd 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 00201 48 8b 10 mov rdx, QWORD PTR [rax] + 00204 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0020b e8 00 00 00 00 call ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ; std::vector,std::allocator > >::_Umove + +; 756 : _Constructed_first = _Newvec; + + 00210 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Newvec$[rbp] + 00217 48 89 85 48 01 + 00 00 mov QWORD PTR _Constructed_first$[rbp], rax + +; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); + + 0021e 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 00226 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 0022d 48 8d 44 01 10 lea rax, QWORD PTR [rcx+rax+16] + 00232 4c 8b c8 mov r9, rax + 00235 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00239 4c 8b 00 mov r8, QWORD PTR [rax] + 0023c 48 8b 95 58 02 + 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] + 00243 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0024a e8 00 00 00 00 call ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ; std::vector,std::allocator > >::_Umove + 0024f 90 npad 1 +$LN5@Emplace_re: + 00250 eb 00 jmp SHORT $LN9@Emplace_re +$LN10@Emplace_re: +$LN9@Emplace_re: + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END +; 764 : +; 765 : _Change_array(_Newvec, _Newsize, _Newcapacity); + + 00252 4c 8b 8d e8 00 + 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] + 00259 4c 8b 85 c8 00 + 00 00 mov r8, QWORD PTR _Newsize$[rbp] + 00260 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 00267 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0026e e8 00 00 00 00 call ?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z ; std::vector,std::allocator > >::_Change_array + +; 766 : return _Newvec + _Whereoff; + + 00273 48 6b 85 88 00 + 00 00 10 imul rax, QWORD PTR _Whereoff$[rbp], 16 + 0027b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00282 48 03 c8 add rcx, rax + 00285 48 8b c1 mov rax, rcx + +; 767 : } + + 00288 48 8d a5 38 02 + 00 00 lea rsp, QWORD PTR [rbp+568] + 0028f 5f pop rdi + 00290 5d pop rbp + 00291 c3 ret 0 +$LN11@Emplace_re: +??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ENDP ; std::vector,std::allocator > >::_Emplace_reallocate +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv139 = 536 +tv137 = 544 +tv135 = 552 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +<_Val_1>$ = 616 +?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA PROC ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 + +; 758 : } +; 759 : _CATCH_ALL + + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z$0: + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); + + 00014 4c 8b 85 28 01 + 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] + 0001b 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00029 e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); + + 0002e 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] + 00035 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00040 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; + + 00045 33 d2 xor edx, edx + 00047 33 c9 xor ecx, ecx + 00049 e8 00 00 00 00 call _CxxThrowException + 0004e 90 npad 1 + +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END + + 0004f 48 8d 05 00 00 + 00 00 lea rax, $LN10@catch$0 + 00056 48 83 c4 28 add rsp, 40 ; 00000028H + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 + 0005d cc int 3 +?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA ENDP ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Al$ = 8 +_My_data$ = 40 +_Myfirst$ = 72 +_Mylast$ = 104 +_Whereoff$ = 136 +_Oldsize$ = 168 +_Newsize$ = 200 +_Newcapacity$ = 232 +_Newvec$ = 264 +_Constructed_last$ = 296 +_Constructed_first$ = 328 +tv139 = 536 +tv137 = 544 +tv135 = 552 +this$ = 592 +_Whereptr$ = 600 +<_Val_0>$ = 608 +<_Val_1>$ = 616 +?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA PROC ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 + +; 759 : _CATCH_ALL + + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] +__catch$??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z$0: + +; 760 : _Destroy(_Constructed_first, _Constructed_last); + + 00014 4c 8b 85 28 01 + 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] + 0001b 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR _Constructed_first$[rbp] + 00022 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00029 e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy + +; 761 : _Al.deallocate(_Newvec, _Newcapacity); + + 0002e 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] + 00035 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Newvec$[rbp] + 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00040 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate + +; 762 : _RERAISE; + + 00045 33 d2 xor edx, edx + 00047 33 c9 xor ecx, ecx + 00049 e8 00 00 00 00 call _CxxThrowException + 0004e 90 npad 1 + +; 763 : _CATCH_END + + 0004f 48 8d 05 00 00 + 00 00 lea rax, $LN10@catch$0 + 00056 48 83 c4 28 add rsp, 40 ; 00000028H + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 + 0005d cc int 3 +?catch$0@?0???$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z@4HA ENDP ; `std::vector,std::allocator > >::_Emplace_reallocate'::`1'::catch$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +_TEXT SEGMENT +$T1 = 200 +tv81 = 216 +tv79 = 224 +__formal$ = 272 +_Ptr$ = 280 +<_Args_0>$ = 288 +<_Args_1>$ = 296 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z PROC ; std::_Default_allocator_traits > >::construct,int (__cdecl*)(_NATIVE_CODE_LINK *,unsigned char *,void *),void *>, COMDAT + +; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { + +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8b 95 18 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0004c b9 10 00 00 00 mov ecx, 16 + 00051 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00056 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0005d 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR <_Args_1>$[rbp] + 00064 e8 00 00 00 00 call ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward + 00069 48 89 85 d8 00 + 00 00 mov QWORD PTR tv81[rbp], rax + 00070 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00077 e8 00 00 00 00 call ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward + 0007c 48 89 85 e0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00083 4c 8b 85 d8 00 + 00 00 mov r8, QWORD PTR tv81[rbp] + 0008a 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00091 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 00098 e8 00 00 00 00 call ??$?0P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX$0A@@?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::pair::pair + +; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); +; 695 : } + + 0009d 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 000a4 5f pop rdi + 000a5 5d pop rbp + 000a6 c3 ret 0 +??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ENDP ; std::_Default_allocator_traits > >::construct,int (__cdecl*)(_NATIVE_CODE_LINK *,unsigned char *,void *),void *> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z +_TEXT SEGMENT +_Ptr$ = 224 +??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z PROC ; std::_Unfancy >, COMDAT + +; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 289 : return _Ptr; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 290 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ENDP ; std::_Unfancy > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +_TEXT SEGMENT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv86 = 280 +tv84 = 288 +tv82 = 296 +tv80 = 304 +this$ = 352 +<_Val_0>$ = 360 +<_Val_1>$ = 368 +??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z PROC ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity, COMDAT + +; 682 : decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 68 01 + 00 00 sub rsp, 360 ; 00000168H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 684 : auto& _My_data = _Mypair._Myval2; + + 00040 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 685 : pointer& _Mylast = _My_data._Mylast; + + 0004b 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004f 48 83 c0 10 add rax, 16 + 00053 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + +; 686 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity +; 687 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); + + 00057 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 0005e e8 00 00 00 00 call ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward + 00063 48 89 85 18 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 0006a 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00071 e8 00 00 00 00 call ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward + 00076 48 89 85 20 01 + 00 00 mov QWORD PTR tv84[rbp], rax + 0007d 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00081 48 8b 08 mov rcx, QWORD PTR [rax] + 00084 e8 00 00 00 00 call ??$_Unfancy@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@PEAU10@@Z ; std::_Unfancy > + 00089 48 89 85 28 01 + 00 00 mov QWORD PTR tv82[rbp], rax + 00090 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00097 e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 0009c 48 89 85 30 01 + 00 00 mov QWORD PTR tv80[rbp], rax + 000a3 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv86[rbp] + 000aa 4c 8b 85 20 01 + 00 00 mov r8, QWORD PTR tv84[rbp] + 000b1 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR tv82[rbp] + 000b8 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR tv80[rbp] + 000bf e8 00 00 00 00 call ??$construct@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@1@QEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::_Default_allocator_traits > >::construct,int (__cdecl*)(_NATIVE_CODE_LINK *,unsigned char *,void *),void *> + +; 688 : _Orphan_range(_Mylast, _Mylast); + + 000c4 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000c8 4c 8b 00 mov r8, QWORD PTR [rax] + 000cb 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000cf 48 8b 10 mov rdx, QWORD PTR [rax] + 000d2 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000d9 e8 00 00 00 00 call ?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Orphan_range + +; 689 : _Ty& _Result = *_Mylast; + + 000de 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000e2 48 8b 00 mov rax, QWORD PTR [rax] + 000e5 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + +; 690 : ++_Mylast; + + 000e9 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000ed 48 8b 00 mov rax, QWORD PTR [rax] + 000f0 48 83 c0 10 add rax, 16 + 000f4 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] + 000f8 48 89 01 mov QWORD PTR [rcx], rax + +; 691 : #if _HAS_CXX17 +; 692 : return _Result; + + 000fb 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + +; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 694 : (void) _Result; +; 695 : #endif // _HAS_CXX17 +; 696 : } + + 000ff 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 00106 5f pop rdi + 00107 5d pop rbp + 00108 c3 ret 0 +??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ENDP ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z PROC ; std::forward, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z PROC ; std::forward, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z +_TEXT SEGMENT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv95 = 280 +tv80 = 280 +tv93 = 288 +tv78 = 288 +tv91 = 296 +this$ = 336 +<_Val_0>$ = 344 +<_Val_1>$ = 352 +??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z PROC ; std::vector,std::allocator > >::emplace_back, COMDAT + +; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { + +$LN4: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 702 : auto& _My_data = _Mypair._Myval2; + + 00040 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 703 : pointer& _Mylast = _My_data._Mylast; + + 0004b 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004f 48 83 c0 10 add rax, 16 + 00053 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + +; 704 : if (_Mylast != _My_data._Myend) { + + 00057 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 0005b 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005f 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] + 00063 48 39 08 cmp QWORD PTR [rax], rcx + 00066 74 42 je SHORT $LN2@emplace_ba + +; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); + + 00068 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 0006f e8 00 00 00 00 call ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward + 00074 48 89 85 18 01 + 00 00 mov QWORD PTR tv80[rbp], rax + 0007b 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00082 e8 00 00 00 00 call ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward + 00087 48 89 85 20 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 0008e 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv80[rbp] + 00095 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 0009c 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a3 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::vector,std::allocator > >::_Emplace_back_with_unused_capacity + 000a8 eb 5d jmp SHORT $LN1@emplace_ba +$LN2@emplace_ba: + +; 706 : } +; 707 : +; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); + + 000aa 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR <_Val_1>$[rbp] + 000b1 e8 00 00 00 00 call ??$forward@PEAX@std@@YA$$QEAPEAXAEAPEAX@Z ; std::forward + 000b6 48 89 85 18 01 + 00 00 mov QWORD PTR tv95[rbp], rax + 000bd 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 000c4 e8 00 00 00 00 call ??$forward@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z@std@@YA$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZAEAP6AH012@Z@Z ; std::forward + 000c9 48 89 85 20 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 000d0 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000d4 48 8b 00 mov rax, QWORD PTR [rax] + 000d7 48 89 85 28 01 + 00 00 mov QWORD PTR tv91[rbp], rax + 000de 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv95[rbp] + 000e5 4c 8b 85 20 01 + 00 00 mov r8, QWORD PTR tv93[rbp] + 000ec 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR tv91[rbp] + 000f3 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000fa e8 00 00 00 00 call ??$_Emplace_reallocate@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@1@QEAU21@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::vector,std::allocator > >::_Emplace_reallocate + 000ff 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + +; 709 : #if _HAS_CXX17 +; 710 : return _Result; + + 00103 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] +$LN1@emplace_ba: + +; 711 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 712 : (void) _Result; +; 713 : #endif // _HAS_CXX17 +; 714 : } + + 00107 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 0010e 5f pop rdi + 0010f 5d pop rbp + 00110 c3 ret 0 +??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ENDP ; std::vector,std::allocator > >::emplace_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; COMDAT ?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z +_TEXT SEGMENT +i$1 = 4 +Link$ = 256 +ToMutate$ = 264 +Context$ = 272 +?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z PROC ; ObfiRandomizeInstruction, COMDAT + +; 5 : { + +$LN6: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 6 : for (ULONG i = 0; i < Link->RawDataSize; i++) + + 00040 c7 45 04 00 00 + 00 00 mov DWORD PTR i$1[rbp], 0 + 00047 eb 08 jmp SHORT $LN4@ObfiRandom +$LN2@ObfiRandom: + 00049 8b 45 04 mov eax, DWORD PTR i$1[rbp] + 0004c ff c0 inc eax + 0004e 89 45 04 mov DWORD PTR i$1[rbp], eax +$LN4@ObfiRandom: + 00051 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00058 8b 40 28 mov eax, DWORD PTR [rax+40] + 0005b 39 45 04 cmp DWORD PTR i$1[rbp], eax + 0005e 73 1f jae SHORT $LN3@ObfiRandom + +; 7 : ToMutate[i] = (rand() % 255); + + 00060 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 00066 99 cdq + 00067 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH + 0006c f7 f9 idiv ecx + 0006e 8b c2 mov eax, edx + 00070 8b 4d 04 mov ecx, DWORD PTR i$1[rbp] + 00073 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR ToMutate$[rbp] + 0007a 88 04 0a mov BYTE PTR [rdx+rcx], al + 0007d eb ca jmp SHORT $LN2@ObfiRandom +$LN3@ObfiRandom: + +; 8 : return TRUE; + + 0007f b8 01 00 00 00 mov eax, 1 + +; 9 : } + + 00084 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z ENDP ; ObfiRandomizeInstruction +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; COMDAT ?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +T$1 = 8 +RealNext$2 = 40 +PreOp$3 = 72 +PostOp$4 = 104 +$T5 = 328 +$T6 = 360 +$T7 = 392 +$T8 = 424 +tv175 = 440 +tv170 = 440 +tv144 = 440 +Obf$ = 480 +Block$ = 488 +?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z PROC ; ObfMutateInstructions, COMDAT + +; 82 : { + +$LN17: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 01 + 00 00 sub rsp, 488 ; 000001e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 7a 00 00 00 mov ecx, 122 ; 0000007aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 02 00 00 mov rcx, QWORD PTR [rsp+520] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 83 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) + + 0003b 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN2@ObfMutateI: + 00049 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0004e 0f 84 59 02 00 + 00 je $LN3@ObfMutateI + 00054 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0005b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0005f 48 8b 00 mov rax, QWORD PTR [rax] + 00062 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00066 0f 84 41 02 00 + 00 je $LN3@ObfMutateI + +; 84 : { +; 85 : if ((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) || (T->Flags & CODE_FLAG_IS_REL_JMP)) + + 0006c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00070 8b 40 18 mov eax, DWORD PTR [rax+24] + 00073 83 e0 01 and eax, 1 + 00076 85 c0 test eax, eax + 00078 75 1c jne SHORT $LN6@ObfMutateI + 0007a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0007e 8b 40 18 mov eax, DWORD PTR [rax+24] + 00081 83 e0 08 and eax, 8 + 00084 85 c0 test eax, eax + 00086 75 0e jne SHORT $LN6@ObfMutateI + 00088 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0008c 8b 40 18 mov eax, DWORD PTR [rax+24] + 0008f 83 e0 02 and eax, 2 + 00092 85 c0 test eax, eax + 00094 74 0d je SHORT $LN5@ObfMutateI +$LN6@ObfMutateI: + +; 86 : { +; 87 : T = T->Next; + + 00096 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0009a 48 8b 00 mov rax, QWORD PTR [rax] + 0009d 48 89 45 08 mov QWORD PTR T$1[rbp], rax + +; 88 : continue; + + 000a1 eb a6 jmp SHORT $LN2@ObfMutateI +$LN5@ObfMutateI: + +; 89 : } +; 90 : +; 91 : PNATIVE_CODE_LINK RealNext = T->Next; + + 000a3 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 000a7 48 8b 00 mov rax, QWORD PTR [rax] + 000aa 48 89 45 28 mov QWORD PTR RealNext$2[rbp], rax + +; 92 : +; 93 : if ((rand() % 100) <= Obf->MutateChance) + + 000ae ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 000b4 99 cdq + 000b5 b9 64 00 00 00 mov ecx, 100 ; 00000064H + 000ba f7 f9 idiv ecx + 000bc 8b c2 mov eax, edx + 000be 48 8b 8d e0 01 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 000c5 3b 41 04 cmp eax, DWORD PTR [rcx+4] + 000c8 0f 87 d2 01 00 + 00 ja $LN7@ObfMutateI + +; 94 : { +; 95 : PNATIVE_CODE_BLOCK PreOp = JitEmitPreRipMov(T); + + 000ce 33 d2 xor edx, edx + 000d0 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 000d4 e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov + 000d9 48 89 45 48 mov QWORD PTR PreOp$3[rbp], rax + +; 96 : PNATIVE_CODE_BLOCK PostOp = JitEmitPostRipMov(T); + + 000dd 33 d2 xor edx, edx + 000df 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 000e3 e8 00 00 00 00 call ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov + 000e8 48 89 45 68 mov QWORD PTR PostOp$4[rbp], rax + +; 97 : PreOp->Start->Flags |= CODE_FLAG_GROUP_START; + + 000ec 48 8b 45 48 mov rax, QWORD PTR PreOp$3[rbp] + 000f0 48 8b 00 mov rax, QWORD PTR [rax] + 000f3 8b 40 18 mov eax, DWORD PTR [rax+24] + 000f6 83 c8 10 or eax, 16 + 000f9 48 8b 4d 48 mov rcx, QWORD PTR PreOp$3[rbp] + 000fd 48 8b 09 mov rcx, QWORD PTR [rcx] + 00100 89 41 18 mov DWORD PTR [rcx+24], eax + +; 98 : PostOp->End->Flags |= CODE_FLAG_GROUP_END; + + 00103 48 8b 45 68 mov rax, QWORD PTR PostOp$4[rbp] + 00107 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0010b 8b 40 18 mov eax, DWORD PTR [rax+24] + 0010e 83 c8 20 or eax, 32 ; 00000020H + 00111 48 8b 4d 68 mov rcx, QWORD PTR PostOp$4[rbp] + 00115 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00119 89 41 18 mov DWORD PTR [rcx+24], eax + +; 99 : T->Flags |= CODE_FLAG_DO_NOT_DIVIDE; + + 0011c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00120 8b 40 18 mov eax, DWORD PTR [rax+24] + 00123 83 c8 08 or eax, 8 + 00126 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 0012a 89 41 18 mov DWORD PTR [rcx+24], eax + +; 100 : T->Flags |= CODE_FLAG_HAS_ASM_OP; + + 0012d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00131 8b 40 18 mov eax, DWORD PTR [rax+24] + 00134 83 c8 40 or eax, 64 ; 00000040H + 00137 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 0013b 89 41 18 mov DWORD PTR [rcx+24], eax + +; 101 : T->AsmOperations.emplace_back((FN_INST_ASM_OP)ObfiRandomizeInstruction, (PVOID)NULL); + + 0013e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00142 48 05 f0 00 00 + 00 add rax, 240 ; 000000f0H + 00148 48 89 85 b8 01 + 00 00 mov QWORD PTR tv144[rbp], rax + 0014f 48 c7 85 48 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T5[rbp], 0 + 0015a 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:?ObfiRandomizeInstruction@@YAHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z ; ObfiRandomizeInstruction + 00161 48 89 85 68 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 00168 4c 8d 85 48 01 + 00 00 lea r8, QWORD PTR $T5[rbp] + 0016f 48 8d 95 68 01 + 00 00 lea rdx, QWORD PTR $T6[rbp] + 00176 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR tv144[rbp] + 0017d e8 00 00 00 00 call ??$emplace_back@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEAA@$$QEAP6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@Z$$QEAPEAX@Z ; std::vector,std::allocator > >::emplace_back + +; 102 : +; 103 : NcInsertBlockBefore(T, PreOp, FALSE); + + 00182 45 33 c0 xor r8d, r8d + 00185 48 8b 55 48 mov rdx, QWORD PTR PreOp$3[rbp] + 00189 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 0018d e8 00 00 00 00 call ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockBefore + +; 104 : NcInsertBlockAfter(T, PostOp, FALSE); + + 00192 45 33 c0 xor r8d, r8d + 00195 48 8b 55 68 mov rdx, QWORD PTR PostOp$4[rbp] + 00199 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 0019d e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + +; 105 : +; 106 : if (T == Block->End) + + 001a2 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001a9 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001ad 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 001b1 75 13 jne SHORT $LN8@ObfMutateI + +; 107 : Block->End = PostOp->End; + + 001b3 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001ba 48 8b 4d 68 mov rcx, QWORD PTR PostOp$4[rbp] + 001be 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 001c2 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN8@ObfMutateI: + +; 108 : if (T == Block->Start) + + 001c6 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001cd 48 8b 00 mov rax, QWORD PTR [rax] + 001d0 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 001d4 75 11 jne SHORT $LN9@ObfMutateI + +; 109 : Block->Start = PreOp->Start; + + 001d6 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001dd 48 8b 4d 48 mov rcx, QWORD PTR PreOp$3[rbp] + 001e1 48 8b 09 mov rcx, QWORD PTR [rcx] + 001e4 48 89 08 mov QWORD PTR [rax], rcx +$LN9@ObfMutateI: + +; 110 : +; 111 : if (Block->Start == T) + + 001e7 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001ee 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 001f2 48 39 08 cmp QWORD PTR [rax], rcx + 001f5 75 11 jne SHORT $LN10@ObfMutateI + +; 112 : Block->Start = PreOp->Start; + + 001f7 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001fe 48 8b 4d 48 mov rcx, QWORD PTR PreOp$3[rbp] + 00202 48 8b 09 mov rcx, QWORD PTR [rcx] + 00205 48 89 08 mov QWORD PTR [rax], rcx +$LN10@ObfMutateI: + +; 113 : if (Block->End == T) + + 00208 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0020f 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00213 48 39 48 08 cmp QWORD PTR [rax+8], rcx + 00217 75 13 jne SHORT $LN11@ObfMutateI + +; 114 : Block->End = PostOp->End; + + 00219 48 8b 85 e8 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00220 48 8b 4d 68 mov rcx, QWORD PTR PostOp$4[rbp] + 00224 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00228 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN11@ObfMutateI: + +; 115 : +; 116 : delete PreOp; + + 0022c 48 8b 45 48 mov rax, QWORD PTR PreOp$3[rbp] + 00230 48 89 85 88 01 + 00 00 mov QWORD PTR $T7[rbp], rax + 00237 48 83 bd 88 01 + 00 00 00 cmp QWORD PTR $T7[rbp], 0 + 0023f 74 1a je SHORT $LN13@ObfMutateI + 00241 ba 01 00 00 00 mov edx, 1 + 00246 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 0024d e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00252 48 89 85 b8 01 + 00 00 mov QWORD PTR tv170[rbp], rax + 00259 eb 0b jmp SHORT $LN14@ObfMutateI +$LN13@ObfMutateI: + 0025b 48 c7 85 b8 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv170[rbp], 0 +$LN14@ObfMutateI: + +; 117 : delete PostOp; + + 00266 48 8b 45 68 mov rax, QWORD PTR PostOp$4[rbp] + 0026a 48 89 85 a8 01 + 00 00 mov QWORD PTR $T8[rbp], rax + 00271 48 83 bd a8 01 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 00279 74 1a je SHORT $LN15@ObfMutateI + 0027b ba 01 00 00 00 mov edx, 1 + 00280 48 8b 8d a8 01 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00287 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0028c 48 89 85 b8 01 + 00 00 mov QWORD PTR tv175[rbp], rax + 00293 eb 0b jmp SHORT $LN16@ObfMutateI +$LN15@ObfMutateI: + 00295 48 c7 85 b8 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv175[rbp], 0 +$LN16@ObfMutateI: +$LN7@ObfMutateI: + +; 118 : } +; 119 : +; 120 : T = RealNext; + + 002a0 48 8b 45 28 mov rax, QWORD PTR RealNext$2[rbp] + 002a4 48 89 45 08 mov QWORD PTR T$1[rbp], rax + +; 121 : } + + 002a8 e9 9c fd ff ff jmp $LN2@ObfMutateI +$LN3@ObfMutateI: + +; 122 : } + + 002ad 48 8d a5 c8 01 + 00 00 lea rsp, QWORD PTR [rbp+456] + 002b4 5f pop rdi + 002b5 5d pop rbp + 002b6 c3 ret 0 +?ObfMutateInstructions@@YAXPEAU_INSTMUT_SETS@@PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ObfMutateInstructions +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; COMDAT ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z +_TEXT SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z PROC ; ObfGenerateOpaqueBranches, COMDAT + +; 12 : { + +$LN24: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 04 + 00 00 sub rsp, 1080 ; 00000438H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 0e 01 00 00 mov ecx, 270 ; 0000010eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 04 00 00 mov rcx, QWORD PTR [rsp+1112] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 00 04 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 13 : if (Depth > Obf->MaxDepth) + + 00051 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00058 8b 00 mov eax, DWORD PTR [rax] + 0005a 39 85 40 04 00 + 00 cmp DWORD PTR Depth$[rbp], eax + 00060 76 05 jbe SHORT $LN5@ObfGenerat + +; 14 : return; + + 00062 e9 9a 04 00 00 jmp $LN1@ObfGenerat +$LN5@ObfGenerat: + +; 15 : +; 16 : ULONG InstructionCount = NcCountInstructions(Block, TRUE); + + 00067 ba 01 00 00 00 mov edx, 1 + 0006c 48 8b 8d 38 04 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00073 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ; NcCountInstructions + 00078 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax + +; 17 : if (InstructionCount > Obf->MinBranchSize) + + 0007b 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00082 8b 40 04 mov eax, DWORD PTR [rax+4] + 00085 39 45 04 cmp DWORD PTR InstructionCount$[rbp], eax + 00088 0f 86 73 04 00 + 00 jbe $LN1@ObfGenerat + +; 18 : { +; 19 : ULONG TargetCount = (ULONG)((FLOAT)InstructionCount / Obf->Divisor); + + 0008e 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 00091 f3 48 0f 2a c0 cvtsi2ss xmm0, rax + 00096 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 0009d f3 0f 5e 40 08 divss xmm0, DWORD PTR [rax+8] + 000a2 f3 48 0f 2c c0 cvttss2si rax, xmm0 + 000a7 89 45 24 mov DWORD PTR TargetCount$9[rbp], eax + +; 20 : ULONG CurrentCount = 0; + + 000aa c7 45 44 00 00 + 00 00 mov DWORD PTR CurrentCount$10[rbp], 0 + +; 21 : PNATIVE_CODE_LINK NewBlockStart = Block->Start; + + 000b1 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000b8 48 8b 00 mov rax, QWORD PTR [rax] + 000bb 48 89 45 68 mov QWORD PTR NewBlockStart$11[rbp], rax + +; 22 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) + + 000bf 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000c6 48 8b 00 mov rax, QWORD PTR [rax] + 000c9 48 89 85 88 00 + 00 00 mov QWORD PTR T$12[rbp], rax +$LN2@ObfGenerat: + 000d0 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR T$12[rbp], 0 + 000d8 0f 84 61 02 00 + 00 je $LN3@ObfGenerat + 000de 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000e5 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000e9 48 8b 00 mov rax, QWORD PTR [rax] + 000ec 48 39 85 88 00 + 00 00 cmp QWORD PTR T$12[rbp], rax + 000f3 0f 84 46 02 00 + 00 je $LN3@ObfGenerat + +; 23 : { +; 24 : if (T->Flags & CODE_FLAG_IS_LABEL || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE && !(T->Flags & CODE_FLAG_GROUP_END))) + + 000f9 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$12[rbp] + 00100 8b 40 18 mov eax, DWORD PTR [rax+24] + 00103 83 e0 01 and eax, 1 + 00106 85 c0 test eax, eax + 00108 75 22 jne SHORT $LN8@ObfGenerat + 0010a 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$12[rbp] + 00111 8b 40 18 mov eax, DWORD PTR [rax+24] + 00114 83 e0 08 and eax, 8 + 00117 85 c0 test eax, eax + 00119 74 24 je SHORT $LN7@ObfGenerat + 0011b 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$12[rbp] + 00122 8b 40 18 mov eax, DWORD PTR [rax+24] + 00125 83 e0 20 and eax, 32 ; 00000020H + 00128 85 c0 test eax, eax + 0012a 75 13 jne SHORT $LN7@ObfGenerat +$LN8@ObfGenerat: + +; 25 : { +; 26 : T = T->Next; + + 0012c 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$12[rbp] + 00133 48 8b 00 mov rax, QWORD PTR [rax] + 00136 48 89 85 88 00 + 00 00 mov QWORD PTR T$12[rbp], rax + +; 27 : continue; + + 0013d eb 91 jmp SHORT $LN2@ObfGenerat +$LN7@ObfGenerat: + +; 28 : } +; 29 : +; 30 : if (++CurrentCount >= TargetCount) + + 0013f 8b 45 44 mov eax, DWORD PTR CurrentCount$10[rbp] + 00142 ff c0 inc eax + 00144 89 45 44 mov DWORD PTR CurrentCount$10[rbp], eax + 00147 8b 45 24 mov eax, DWORD PTR TargetCount$9[rbp] + 0014a 39 45 44 cmp DWORD PTR CurrentCount$10[rbp], eax + 0014d 0f 82 d6 01 00 + 00 jb $LN9@ObfGenerat + +; 31 : { +; 32 : if (Depth >= Obf->MinDepthForBranch && (rand() % 100) <= Obf->ChanceForBranch && CurrentCount >= Obf->MinBranchSize) + + 00153 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 0015a 8b 40 10 mov eax, DWORD PTR [rax+16] + 0015d 39 85 40 04 00 + 00 cmp DWORD PTR Depth$[rbp], eax + 00163 0f 82 34 01 00 + 00 jb $LN10@ObfGenerat + 00169 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 0016f 99 cdq + 00170 b9 64 00 00 00 mov ecx, 100 ; 00000064H + 00175 f7 f9 idiv ecx + 00177 8b c2 mov eax, edx + 00179 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 00180 3b 41 14 cmp eax, DWORD PTR [rcx+20] + 00183 0f 87 14 01 00 + 00 ja $LN10@ObfGenerat + 00189 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00190 8b 40 04 mov eax, DWORD PTR [rax+4] + 00193 39 45 44 cmp DWORD PTR CurrentCount$10[rbp], eax + 00196 0f 82 01 01 00 + 00 jb $LN10@ObfGenerat + +; 33 : { +; 34 : NATIVE_CODE_BLOCK NotTaken, Taken; + + 0019c 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 001a3 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 001a8 90 npad 1 + 001a9 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$14[rbp] + 001b0 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 001b5 90 npad 1 + +; 35 : ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); + + 001b6 4c 8d 8d f8 00 + 00 00 lea r9, QWORD PTR Taken$14[rbp] + 001bd 4c 8d 85 a8 00 + 00 00 lea r8, QWORD PTR NotTaken$13[rbp] + 001c4 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR T$12[rbp] + 001cb 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 001cf e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches + +; 36 : ObfGenerateOpaqueBranches(Obf, &NotTaken, Depth + 1); + + 001d4 8b 85 40 04 00 + 00 mov eax, DWORD PTR Depth$[rbp] + 001da ff c0 inc eax + 001dc 44 8b c0 mov r8d, eax + 001df 48 8d 95 a8 00 + 00 00 lea rdx, QWORD PTR NotTaken$13[rbp] + 001e6 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 001ed e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches + +; 37 : ObfGenerateOpaqueBranches(Obf, &Taken, Depth + 1); + + 001f2 8b 85 40 04 00 + 00 mov eax, DWORD PTR Depth$[rbp] + 001f8 ff c0 inc eax + 001fa 44 8b c0 mov r8d, eax + 001fd 48 8d 95 f8 00 + 00 00 lea rdx, QWORD PTR Taken$14[rbp] + 00204 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 0020b e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches + +; 38 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->ParentBlock), NcGenUnusedLabelId(Obf->ParentBlock)); + + 00210 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00217 48 8b 48 18 mov rcx, QWORD PTR [rax+24] + 0021b e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00220 89 85 f4 03 00 + 00 mov DWORD PTR tv166[rbp], eax + 00226 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 0022d 48 8b 48 18 mov rcx, QWORD PTR [rax+24] + 00231 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00236 89 85 f8 03 00 + 00 mov DWORD PTR tv164[rbp], eax + 0023c 44 8b 8d f4 03 + 00 00 mov r9d, DWORD PTR tv166[rbp] + 00243 44 8b 85 f8 03 + 00 00 mov r8d, DWORD PTR tv164[rbp] + 0024a 48 8d 95 f8 00 + 00 00 lea rdx, QWORD PTR Taken$14[rbp] + 00251 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 00258 e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches + +; 39 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); + + 0025d 4c 8d 85 a8 00 + 00 00 lea r8, QWORD PTR NotTaken$13[rbp] + 00264 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR T$12[rbp] + 0026b 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 0026f e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + +; 40 : T = NotTaken.End; + + 00274 48 8b 85 b0 00 + 00 00 mov rax, QWORD PTR NotTaken$13[rbp+8] + 0027b 48 89 85 88 00 + 00 00 mov QWORD PTR T$12[rbp], rax + +; 41 : } + + 00282 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$14[rbp] + 00289 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0028e 90 npad 1 + 0028f 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 00296 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0029b eb 77 jmp SHORT $LN11@ObfGenerat +$LN10@ObfGenerat: + +; 42 : else +; 43 : { +; 44 : NATIVE_CODE_BLOCK TempBlock; + + 0029d 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR TempBlock$15[rbp] + 002a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 002a9 90 npad 1 + +; 45 : if (NcDeepCopyPartialBlock(NewBlockStart, T, &TempBlock)) + + 002aa 4c 8d 85 48 01 + 00 00 lea r8, QWORD PTR TempBlock$15[rbp] + 002b1 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR T$12[rbp] + 002b8 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 002bc e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 002c1 85 c0 test eax, eax + 002c3 74 35 je SHORT $LN12@ObfGenerat + +; 46 : { +; 47 : ObfGenerateOpaqueBranches(Obf, &TempBlock, Depth + 1); + + 002c5 8b 85 40 04 00 + 00 mov eax, DWORD PTR Depth$[rbp] + 002cb ff c0 inc eax + 002cd 44 8b c0 mov r8d, eax + 002d0 48 8d 95 48 01 + 00 00 lea rdx, QWORD PTR TempBlock$15[rbp] + 002d7 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 002de e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches + +; 48 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &TempBlock); + + 002e3 4c 8d 85 48 01 + 00 00 lea r8, QWORD PTR TempBlock$15[rbp] + 002ea 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR T$12[rbp] + 002f1 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 002f5 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock +$LN12@ObfGenerat: + +; 49 : } +; 50 : T = TempBlock.End; + + 002fa 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR TempBlock$15[rbp+8] + 00301 48 89 85 88 00 + 00 00 mov QWORD PTR T$12[rbp], rax + +; 51 : } + + 00308 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR TempBlock$15[rbp] + 0030f e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +$LN11@ObfGenerat: + +; 52 : NewBlockStart = T->Next; + + 00314 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$12[rbp] + 0031b 48 8b 00 mov rax, QWORD PTR [rax] + 0031e 48 89 45 68 mov QWORD PTR NewBlockStart$11[rbp], rax + +; 53 : CurrentCount = 0; + + 00322 c7 45 44 00 00 + 00 00 mov DWORD PTR CurrentCount$10[rbp], 0 +$LN9@ObfGenerat: + +; 54 : } +; 55 : T = T->Next; + + 00329 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$12[rbp] + 00330 48 8b 00 mov rax, QWORD PTR [rax] + 00333 48 89 85 88 00 + 00 00 mov QWORD PTR T$12[rbp], rax + +; 56 : } + + 0033a e9 91 fd ff ff jmp $LN2@ObfGenerat +$LN3@ObfGenerat: + +; 57 : if (NewBlockStart) //Deal with remaining instructions in the block + + 0033f 48 83 7d 68 00 cmp QWORD PTR NewBlockStart$11[rbp], 0 + 00344 0f 84 b7 01 00 + 00 je $LN1@ObfGenerat + +; 58 : { +; 59 : if (Depth >= Obf->MinDepthForBranch && (rand() % 100) <= Obf->ChanceForBranch && CurrentCount >= Obf->MinBranchSize) + + 0034a 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00351 8b 40 10 mov eax, DWORD PTR [rax+16] + 00354 39 85 40 04 00 + 00 cmp DWORD PTR Depth$[rbp], eax + 0035a 0f 82 2f 01 00 + 00 jb $LN14@ObfGenerat + 00360 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 00366 99 cdq + 00367 b9 64 00 00 00 mov ecx, 100 ; 00000064H + 0036c f7 f9 idiv ecx + 0036e 8b c2 mov eax, edx + 00370 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 00377 3b 41 14 cmp eax, DWORD PTR [rcx+20] + 0037a 0f 87 0f 01 00 + 00 ja $LN14@ObfGenerat + 00380 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00387 8b 40 04 mov eax, DWORD PTR [rax+4] + 0038a 39 45 44 cmp DWORD PTR CurrentCount$10[rbp], eax + 0038d 0f 82 fc 00 00 + 00 jb $LN14@ObfGenerat + +; 60 : { +; 61 : NATIVE_CODE_BLOCK NotTaken, Taken; + + 00393 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 0039a e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0039f 90 npad 1 + 003a0 48 8d 8d e8 01 + 00 00 lea rcx, QWORD PTR Taken$17[rbp] + 003a7 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 003ac 90 npad 1 + +; 62 : ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); + + 003ad 4c 8d 8d e8 01 + 00 00 lea r9, QWORD PTR Taken$17[rbp] + 003b4 4c 8d 85 98 01 + 00 00 lea r8, QWORD PTR NotTaken$16[rbp] + 003bb 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 003c2 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 003c6 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 003ca e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches + +; 63 : ObfGenerateOpaqueBranches(Obf, &NotTaken, Depth + 1); + + 003cf 8b 85 40 04 00 + 00 mov eax, DWORD PTR Depth$[rbp] + 003d5 ff c0 inc eax + 003d7 44 8b c0 mov r8d, eax + 003da 48 8d 95 98 01 + 00 00 lea rdx, QWORD PTR NotTaken$16[rbp] + 003e1 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 003e8 e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches + +; 64 : ObfGenerateOpaqueBranches(Obf, &Taken, Depth + 1); + + 003ed 8b 85 40 04 00 + 00 mov eax, DWORD PTR Depth$[rbp] + 003f3 ff c0 inc eax + 003f5 44 8b c0 mov r8d, eax + 003f8 48 8d 95 e8 01 + 00 00 lea rdx, QWORD PTR Taken$17[rbp] + 003ff 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 00406 e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches + +; 65 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->ParentBlock), NcGenUnusedLabelId(Obf->ParentBlock)); + + 0040b 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00412 48 8b 48 18 mov rcx, QWORD PTR [rax+24] + 00416 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 0041b 89 85 f4 03 00 + 00 mov DWORD PTR tv228[rbp], eax + 00421 48 8b 85 30 04 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00428 48 8b 48 18 mov rcx, QWORD PTR [rax+24] + 0042c e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00431 89 85 f8 03 00 + 00 mov DWORD PTR tv226[rbp], eax + 00437 44 8b 8d f4 03 + 00 00 mov r9d, DWORD PTR tv228[rbp] + 0043e 44 8b 85 f8 03 + 00 00 mov r8d, DWORD PTR tv226[rbp] + 00445 48 8d 95 e8 01 + 00 00 lea rdx, QWORD PTR Taken$17[rbp] + 0044c 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 00453 e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches + +; 66 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); + + 00458 4c 8d 85 98 01 + 00 00 lea r8, QWORD PTR NotTaken$16[rbp] + 0045f 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00466 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 0046a 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 0046e e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + 00473 90 npad 1 + +; 67 : } + + 00474 48 8d 8d e8 01 + 00 00 lea rcx, QWORD PTR Taken$17[rbp] + 0047b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00480 90 npad 1 + 00481 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 00488 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0048d eb 72 jmp SHORT $LN1@ObfGenerat +$LN14@ObfGenerat: + +; 68 : else +; 69 : { +; 70 : NATIVE_CODE_BLOCK TempBlock; + + 0048f 48 8d 8d 38 02 + 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] + 00496 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0049b 90 npad 1 + +; 71 : if (NcDeepCopyPartialBlock(NewBlockStart, Block->End, &TempBlock)) + + 0049c 4c 8d 85 38 02 + 00 00 lea r8, QWORD PTR TempBlock$18[rbp] + 004a3 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 004aa 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 004ae 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 004b2 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 004b7 85 c0 test eax, eax + 004b9 74 3a je SHORT $LN16@ObfGenerat + +; 72 : { +; 73 : ObfGenerateOpaqueBranches(Obf, &TempBlock, Depth + 1); + + 004bb 8b 85 40 04 00 + 00 mov eax, DWORD PTR Depth$[rbp] + 004c1 ff c0 inc eax + 004c3 44 8b c0 mov r8d, eax + 004c6 48 8d 95 38 02 + 00 00 lea rdx, QWORD PTR TempBlock$18[rbp] + 004cd 48 8b 8d 30 04 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 004d4 e8 00 00 00 00 call ?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfGenerateOpaqueBranches + +; 74 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &TempBlock); + + 004d9 4c 8d 85 38 02 + 00 00 lea r8, QWORD PTR TempBlock$18[rbp] + 004e0 48 8b 85 38 04 + 00 00 mov rax, QWORD PTR Block$[rbp] + 004e7 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 004eb 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$11[rbp] + 004ef e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + 004f4 90 npad 1 +$LN16@ObfGenerat: + +; 75 : } +; 76 : } + + 004f5 48 8d 8d 38 02 + 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] + 004fc e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +$LN1@ObfGenerat: + +; 77 : } +; 78 : } +; 79 : } + + 00501 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00505 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData + 0050c e8 00 00 00 00 call _RTC_CheckStackVars + 00511 48 8b 8d 00 04 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00518 48 33 cd xor rcx, rbp + 0051b e8 00 00 00 00 call __security_check_cookie + 00520 48 8d a5 18 04 + 00 00 lea rsp, QWORD PTR [rbp+1048] + 00527 5f pop rdi + 00528 5d pop rbp + 00529 c3 ret 0 +?ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z ENDP ; ObfGenerateOpaqueBranches +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$14[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$1 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$2 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR TempBlock$15[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$2 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$3 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$3 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$4 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d e8 01 + 00 00 lea rcx, QWORD PTR Taken$17[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$4 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$5 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d 38 02 + 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$5 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$14[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$1@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$2 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR TempBlock$15[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$2@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$2 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$3 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR NotTaken$16[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$3@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$3 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$4 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d e8 01 + 00 00 lea rcx, QWORD PTR Taken$17[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$4@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$4 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -_TEXT SEGMENT -_Al$ = 224 -_Ptr$ = 232 -??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT - -; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { - -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$9 = 36 +CurrentCount$10 = 68 +NewBlockStart$11 = 104 +T$12 = 136 +NotTaken$13 = 168 +Taken$14 = 248 +TempBlock$15 = 328 +NotTaken$16 = 408 +Taken$17 = 488 +TempBlock$18 = 568 +tv228 = 1012 +tv166 = 1012 +tv226 = 1016 +tv164 = 1016 +__$ArrayPad$ = 1024 +Obf$ = 1072 +Block$ = 1080 +Depth$ = 1088 +?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfGenerateOpaqueBranches'::`1'::dtor$5 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 986 : // deallocate a plain pointer using an allocator -; 987 : using _Alloc_traits = allocator_traits<_Alloc>; -; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 00024 41 b8 01 00 00 - 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00031 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate - 0003d 90 npad 1 - -; 990 : } else { -; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 993 : } -; 994 : } - - 0003e 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00045 5f pop rdi - 00046 5d pop rbp - 00047 c3 ret 0 -??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > -_TEXT ENDS + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d 38 02 + 00 00 lea rcx, QWORD PTR TempBlock$18[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$5@?0??ObfGenerateOpaqueBranches@@YAXPEAU_OPBR_SETS@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfGenerateOpaqueBranches'::`1'::dtor$5 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z _TEXT SEGMENT -_Ptr$ = 224 -_Bytes$ = 232 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT - -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { - +this$ = 224 +__flags$ = 232 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT $LN4: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 -; 254 : if (_STD is_constant_evaluated()) { -; 255 : ::operator delete(_Ptr); -; 256 : } else -; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc -; 258 : { -; 259 : #if defined(_M_IX86) || defined(_M_X64) -; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 00024 48 81 bd e8 00 - 00 00 00 10 00 - 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 0002f 72 13 jb SHORT $LN2@Deallocate - -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - - 00031 48 8d 95 e8 00 - 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 00038 48 8d 8d e0 00 - 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned -$LN2@Deallocate: - -; 262 : } -; 263 : #endif // defined(_M_IX86) || defined(_M_X64) -; 264 : ::operator delete(_Ptr, _Bytes); - - 00044 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 0004b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00057 90 npad 1 - -; 265 : } -; 266 : } - - 00058 48 8d a5 c8 00 + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0003a 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 30 00 00 00 mov edx, 48 ; 00000030H + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; 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 +; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ _TEXT SEGMENT -_First$ = 224 -_Last$ = 232 -_Al$ = 240 -??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT - -; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { - +this$ = 224 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT $LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__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 + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 83 c0 10 add rax, 16 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 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 > + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\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 -_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 +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 -; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1000 : using _Ty = typename _Alloc::value_type; -; 1001 : _Ptr->~_Ty(); -; 1002 : _Deallocate_plain(_Al, _Ptr); - - 00024 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0002b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] -; 1003 : } +; 1345 : } - 00037 48 8d a5 c8 00 + 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 -??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility -; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ _TEXT SEGMENT -_Old_val$ = 8 -_Val$ = 256 -_New_val$ = 264 -??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT +this$ = 224 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 1731 : _Alty& _Getal() noexcept { $LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 615 : // assign _New_val to _Val, return previous _Val -; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - - 00024 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR _Val$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax - -; 617 : _Val = static_cast<_Other&&>(_New_val); - - 00032 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR _Val$[rbp] - 00039 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00040 48 8b 09 mov rcx, QWORD PTR [rcx] - 00043 48 89 08 mov QWORD PTR [rax], rcx - -; 618 : return _Old_val; - - 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 -; 619 : } +; 1733 : } - 0004a 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 -??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT -this$ = 224 -__formal$ = 232 -??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 1685 : void _Tidy() noexcept { // free all storage -$LN3: - 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1686 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00032 5f pop rdi - 00033 5d pop rbp - 00034 c3 ret 0 -??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp -; COMDAT ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z -_TEXT SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z PROC ; ObfObfuscate1, COMDAT - -; 7 : { - -$LN33: - 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 08 04 - 00 00 sub rsp, 1032 ; 00000408H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 9a 00 00 00 mov ecx, 154 ; 0000009aH - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 28 - 04 00 00 mov rcx, QWORD PTR [rsp+1064] - 00036 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 d0 03 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 8 : if (Depth > Obf->MaxDepth) +; 1687 : pointer& _Myfirst = _My_data._Myfirst; - 00053 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 0005a 8b 40 18 mov eax, DWORD PTR [rax+24] - 0005d 39 85 10 04 00 - 00 cmp DWORD PTR Depth$[rbp], eax - 00063 76 05 jbe SHORT $LN8@ObfObfusca + 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 -; 9 : return; +; 1688 : pointer& _Mylast = _My_data._Mylast; - 00065 e9 33 05 00 00 jmp $LN1@ObfObfusca -$LN8@ObfObfusca: + 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 -; 10 : -; 11 : ULONG InstructionCount = NcCountInstructions(Block, FALSE); +; 1689 : pointer& _Myend = _My_data._Myend; - 0006a 33 d2 xor edx, edx - 0006c 48 8b 8d 08 04 - 00 00 mov rcx, QWORD PTR Block$[rbp] - 00073 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@H@Z ; NcCountInstructions - 00078 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax + 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 -; 12 : printf("Depth: %u, InstCount: %u\n", Depth, InstructionCount); +; 1690 : +; 1691 : _My_data._Orphan_all(); - 0007b 44 8b 45 04 mov r8d, DWORD PTR InstructionCount$[rbp] - 0007f 8b 95 10 04 00 - 00 mov edx, DWORD PTR Depth$[rbp] - 00085 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BK@KHPEMLDC@Depth?3?5?$CFu?0?5InstCount?3?5?$CFu?6@ - 0008c e8 00 00 00 00 call printf + 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 -; 13 : if (InstructionCount <= Obf->MinSizeForOpaqueBranch) +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array - 00091 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 00098 8b 40 04 mov eax, DWORD PTR [rax+4] - 0009b 39 45 04 cmp DWORD PTR InstructionCount$[rbp], eax - 0009e 0f 87 e8 01 00 - 00 ja $LN9@ObfObfusca + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 + 00 je $LN2@Tidy -; 14 : { -; 15 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 1694 : _Destroy(_Myfirst, _Mylast); - 000a4 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000ab 48 8b 00 mov rax, QWORD PTR [rax] - 000ae 48 89 45 28 mov QWORD PTR T$6[rbp], rax -$LN2@ObfObfusca: - 000b2 48 83 7d 28 00 cmp QWORD PTR T$6[rbp], 0 - 000b7 0f 84 ca 01 00 - 00 je $LN3@ObfObfusca - 000bd 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 000c4 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000c8 48 8b 00 mov rax, QWORD PTR [rax] - 000cb 48 39 45 28 cmp QWORD PTR T$6[rbp], rax - 000cf 0f 84 b2 01 00 - 00 je $LN3@ObfObfusca - -; 16 : { -; 17 : if ((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) || (T->Flags & CODE_FLAG_IS_REL_JMP)) - - 000d5 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 000d9 8b 40 18 mov eax, DWORD PTR [rax+24] - 000dc 83 e0 01 and eax, 1 - 000df 85 c0 test eax, eax - 000e1 75 1c jne SHORT $LN12@ObfObfusca - 000e3 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 000e7 8b 40 18 mov eax, DWORD PTR [rax+24] - 000ea 83 e0 08 and eax, 8 - 000ed 85 c0 test eax, eax - 000ef 75 0e jne SHORT $LN12@ObfObfusca - 000f1 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 000f5 8b 40 18 mov eax, DWORD PTR [rax+24] - 000f8 83 e0 02 and eax, 2 - 000fb 85 c0 test eax, eax - 000fd 74 0d je SHORT $LN11@ObfObfusca -$LN12@ObfObfusca: - -; 18 : { -; 19 : T = T->Next; - - 000ff 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 00103 48 8b 00 mov rax, QWORD PTR [rax] - 00106 48 89 45 28 mov QWORD PTR T$6[rbp], rax - -; 20 : continue; - - 0010a eb a6 jmp SHORT $LN2@ObfObfusca -$LN11@ObfObfusca: - -; 21 : } -; 22 : -; 23 : PNATIVE_CODE_LINK RealNext = T->Next; - - 0010c 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 00110 48 8b 00 mov rax, QWORD PTR [rax] - 00113 48 89 45 48 mov QWORD PTR RealNext$7[rbp], rax - -; 24 : -; 25 : if ((rand() % 100) <= Obf->InstructionMutateChance) - - 00117 ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 0011d 99 cdq - 0011e b9 64 00 00 00 mov ecx, 100 ; 00000064H - 00123 f7 f9 idiv ecx - 00125 8b c2 mov eax, edx - 00127 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 0012e 0f b6 49 09 movzx ecx, BYTE PTR [rcx+9] - 00132 3b c1 cmp eax, ecx - 00134 0f 8f 40 01 00 - 00 jg $LN13@ObfObfusca + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 26 : { -; 27 : PNATIVE_CODE_BLOCK PreOp = JitEmitPreRipMov(T); +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0013a 33 d2 xor edx, edx - 0013c 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 00140 e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov - 00145 48 89 45 68 mov QWORD PTR PreOp$8[rbp], rax + 00096 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 02 sar rax, 2 + 000be 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 28 : PNATIVE_CODE_BLOCK PostOp = JitEmitPostRipMov(T); +; 1696 : +; 1697 : _Myfirst = pointer(); - 00149 33 d2 xor edx, edx - 0014b 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 0014f e8 00 00 00 00 call ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov - 00154 48 89 85 88 00 - 00 00 mov QWORD PTR PostOp$9[rbp], rax + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 29 : -; 30 : if (T->Prev) +; 1698 : _Mylast = pointer(); - 0015b 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 0015f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00164 74 12 je SHORT $LN14@ObfObfusca + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 31 : T->Prev->Next = PreOp->Start; +; 1699 : _Myend = pointer(); - 00166 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 0016a 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0016e 48 8b 4d 68 mov rcx, QWORD PTR PreOp$8[rbp] - 00172 48 8b 09 mov rcx, QWORD PTR [rcx] - 00175 48 89 08 mov QWORD PTR [rax], rcx -$LN14@ObfObfusca: + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: -; 32 : PreOp->End->Next = T; +; 1700 : } +; 1701 : } - 00178 48 8b 45 68 mov rax, QWORD PTR PreOp$8[rbp] - 0017c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00180 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 00184 48 89 08 mov QWORD PTR [rax], rcx + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 33 : -; 34 : -; 35 : -; 36 : -; 37 : NcInsertBlockBefore(T, PreOp, FALSE); +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator - 00187 45 33 c0 xor r8d, r8d - 0018a 48 8b 55 68 mov rdx, QWORD PTR PreOp$8[rbp] - 0018e 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 00192 e8 00 00 00 00 call ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockBefore +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 38 : NcInsertBlockAfter(T, PostOp, FALSE); +; 1613 : } - 00197 45 33 c0 xor r8d, r8d - 0019a 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR PostOp$9[rbp] - 001a1 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 001a5 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 39 : -; 40 : if (Block->Start == T) +; 672 : ~vector() noexcept { - 001aa 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001b1 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 001b5 48 39 08 cmp QWORD PTR [rax], rcx - 001b8 75 11 jne SHORT $LN15@ObfObfusca +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 41 : Block->Start = PreOp->Start; +; 673 : _Tidy(); - 001ba 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001c1 48 8b 4d 68 mov rcx, QWORD PTR PreOp$8[rbp] - 001c5 48 8b 09 mov rcx, QWORD PTR [rcx] - 001c8 48 89 08 mov QWORD PTR [rax], rcx -$LN15@ObfObfusca: + 00047 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 42 : if (Block->End == T) +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 001cb 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001d2 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 001d6 48 39 48 08 cmp QWORD PTR [rax+8], rcx - 001da 75 16 jne SHORT $LN16@ObfObfusca + 00053 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 43 : Block->End = PostOp->End; +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 001dc 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001e3 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR PostOp$9[rbp] - 001ea 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 001ee 48 89 48 08 mov QWORD PTR [rax+8], rcx -$LN16@ObfObfusca: - -; 44 : -; 45 : delete PreOp; - - 001f2 48 8b 45 68 mov rax, QWORD PTR PreOp$8[rbp] - 001f6 48 89 85 98 03 - 00 00 mov QWORD PTR $T17[rbp], rax - 001fd 48 83 bd 98 03 - 00 00 00 cmp QWORD PTR $T17[rbp], 0 - 00205 74 1a je SHORT $LN24@ObfObfusca - 00207 ba 01 00 00 00 mov edx, 1 - 0020c 48 8b 8d 98 03 - 00 00 mov rcx, QWORD PTR $T17[rbp] - 00213 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00218 48 89 85 c8 03 - 00 00 mov QWORD PTR tv158[rbp], rax - 0021f eb 0b jmp SHORT $LN25@ObfObfusca -$LN24@ObfObfusca: - 00221 48 c7 85 c8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv158[rbp], 0 -$LN25@ObfObfusca: - -; 46 : delete PostOp; - - 0022c 48 8b 85 88 00 - 00 00 mov rax, QWORD PTR PostOp$9[rbp] - 00233 48 89 85 b8 03 - 00 00 mov QWORD PTR $T18[rbp], rax - 0023a 48 83 bd b8 03 - 00 00 00 cmp QWORD PTR $T18[rbp], 0 - 00242 74 1a je SHORT $LN26@ObfObfusca - 00244 ba 01 00 00 00 mov edx, 1 - 00249 48 8b 8d b8 03 - 00 00 mov rcx, QWORD PTR $T18[rbp] - 00250 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00255 48 89 85 c8 03 - 00 00 mov QWORD PTR tv163[rbp], rax - 0025c eb 0b jmp SHORT $LN27@ObfObfusca -$LN26@ObfObfusca: - 0025e 48 c7 85 c8 03 + 00073 48 c7 85 04 01 00 00 00 00 00 - 00 mov QWORD PTR tv163[rbp], 0 -$LN27@ObfObfusca: - -; 47 : -; 48 : //for (ULONG i = 0; i < T->RawDataSize; i++) -; 49 : // T->RawData[i] = (UCHAR)(rand() % 255); -; 50 : -; 51 : T->Flags |= CODE_FLAG_DO_NOT_DIVIDE; - - 00269 48 8b 45 28 mov rax, QWORD PTR T$6[rbp] - 0026d 8b 40 18 mov eax, DWORD PTR [rax+24] - 00270 83 c8 08 or eax, 8 - 00273 48 8b 4d 28 mov rcx, QWORD PTR T$6[rbp] - 00277 89 41 18 mov DWORD PTR [rcx+24], eax -$LN13@ObfObfusca: - -; 52 : -; 53 : } -; 54 : -; 55 : T = RealNext; - - 0027a 48 8b 45 48 mov rax, QWORD PTR RealNext$7[rbp] - 0027e 48 89 45 28 mov QWORD PTR T$6[rbp], rax - -; 56 : } - - 00282 e9 2b fe ff ff jmp $LN2@ObfObfusca -$LN3@ObfObfusca: + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > -; 57 : } +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } - 00287 e9 11 03 00 00 jmp $LN1@ObfObfusca -$LN9@ObfObfusca: + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +_TEXT SEGMENT +this$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 58 : else -; 59 : { -; 60 : //ULONG TargetCount = max(Obf->MinSizeForOpaqueBranch, InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); -; 61 : ULONG TargetCount = (InstructionCount / ((Obf->Flags & OBF_ATTRIBUTE_RANDOMIZE_DIVISOR) ? (rand() % Obf->BlockDivisionFactor) : Obf->BlockDivisionFactor)); // max(Obf->MinBlockSize, InstructionCount / Obf->BlockDivisionFactor); +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { - 0028c 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 00293 8b 40 0c mov eax, DWORD PTR [rax+12] - 00296 83 e0 04 and eax, 4 - 00299 85 c0 test eax, eax - 0029b 74 1e je SHORT $LN28@ObfObfusca - 0029d ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 002a3 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 002aa 0f b6 49 0a movzx ecx, BYTE PTR [rcx+10] - 002ae 99 cdq - 002af f7 f9 idiv ecx - 002b1 8b c2 mov eax, edx - 002b3 89 85 c4 03 00 - 00 mov DWORD PTR tv176[rbp], eax - 002b9 eb 11 jmp SHORT $LN29@ObfObfusca -$LN28@ObfObfusca: - 002bb 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 002c2 0f b6 40 0a movzx eax, BYTE PTR [rax+10] - 002c6 89 85 c4 03 00 - 00 mov DWORD PTR tv176[rbp], eax -$LN29@ObfObfusca: - 002cc 33 d2 xor edx, edx - 002ce 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] - 002d1 f7 b5 c4 03 00 - 00 div DWORD PTR tv176[rbp] - 002d7 89 85 a4 00 00 - 00 mov DWORD PTR TargetCount$10[rbp], eax +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 62 : ULONG CurrentCount = 0; +; 804 : } - 002dd c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR CurrentCount$11[rbp], 0 + 0005a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first, COMDAT -; 63 : PNATIVE_CODE_LINK NewBlockStart = Block->Start; +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { - 002e7 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 002ee 48 8b 00 mov rax, QWORD PTR [rax] - 002f1 48 89 85 e8 00 - 00 00 mov QWORD PTR NewBlockStart$12[rbp], rax +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] -; 64 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 1349 : } - 002f8 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 002ff 48 8b 00 mov rax, QWORD PTR [rax] - 00302 48 89 85 08 01 - 00 00 mov QWORD PTR T$13[rbp], rax -$LN5@ObfObfusca: - 00309 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR T$13[rbp], 0 - 00311 0f 84 86 02 00 - 00 je $LN1@ObfObfusca - 00317 48 8b 85 08 04 - 00 00 mov rax, QWORD PTR Block$[rbp] - 0031e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00322 48 8b 00 mov rax, QWORD PTR [rax] - 00325 48 39 85 08 01 - 00 00 cmp QWORD PTR T$13[rbp], rax - 0032c 0f 84 6b 02 00 - 00 je $LN1@ObfObfusca - -; 65 : { -; 66 : if (T->Flags & CODE_FLAG_IS_LABEL) - - 00332 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$13[rbp] - 00339 8b 40 18 mov eax, DWORD PTR [rax+24] - 0033c 83 e0 01 and eax, 1 - 0033f 85 c0 test eax, eax - 00341 74 13 je SHORT $LN17@ObfObfusca - -; 67 : { -; 68 : T = T->Next; - - 00343 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$13[rbp] - 0034a 48 8b 00 mov rax, QWORD PTR [rax] - 0034d 48 89 85 08 01 - 00 00 mov QWORD PTR T$13[rbp], rax - -; 69 : continue; - - 00354 eb b3 jmp SHORT $LN5@ObfObfusca -$LN17@ObfObfusca: - -; 70 : } -; 71 : -; 72 : ++CurrentCount; - - 00356 8b 85 c4 00 00 - 00 mov eax, DWORD PTR CurrentCount$11[rbp] - 0035c ff c0 inc eax - 0035e 89 85 c4 00 00 - 00 mov DWORD PTR CurrentCount$11[rbp], eax - -; 73 : -; 74 : if (T->Flags & CODE_FLAG_DO_NOT_DIVIDE) - - 00364 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$13[rbp] - 0036b 8b 40 18 mov eax, DWORD PTR [rax+24] - 0036e 83 e0 08 and eax, 8 - 00371 85 c0 test eax, eax - 00373 74 13 je SHORT $LN18@ObfObfusca - -; 75 : { -; 76 : T = T->Next; - - 00375 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$13[rbp] - 0037c 48 8b 00 mov rax, QWORD PTR [rax] - 0037f 48 89 85 08 01 - 00 00 mov QWORD PTR T$13[rbp], rax - -; 77 : continue; - - 00386 eb 81 jmp SHORT $LN5@ObfObfusca -$LN18@ObfObfusca: - -; 78 : } -; 79 : -; 80 : if (CurrentCount >= TargetCount) - - 00388 8b 85 a4 00 00 - 00 mov eax, DWORD PTR TargetCount$10[rbp] - 0038e 39 85 c4 00 00 - 00 cmp DWORD PTR CurrentCount$11[rbp], eax - 00394 0f 82 ed 01 00 - 00 jb $LN19@ObfObfusca - -; 81 : { -; 82 : if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) - - 0039a 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 003a1 8b 00 mov eax, DWORD PTR [rax] - 003a3 39 85 10 04 00 - 00 cmp DWORD PTR Depth$[rbp], eax - 003a9 0f 82 40 01 00 - 00 jb $LN20@ObfObfusca - 003af ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 003b5 99 cdq - 003b6 b9 64 00 00 00 mov ecx, 100 ; 00000064H - 003bb f7 f9 idiv ecx - 003bd 8b c2 mov eax, edx - 003bf 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 003c6 0f b6 49 08 movzx ecx, BYTE PTR [rcx+8] - 003ca 3b c1 cmp eax, ecx - 003cc 0f 8f 1d 01 00 - 00 jg $LN20@ObfObfusca - 003d2 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 003d9 8b 40 04 mov eax, DWORD PTR [rax+4] - 003dc 39 85 c4 00 00 - 00 cmp DWORD PTR CurrentCount$11[rbp], eax - 003e2 0f 87 07 01 00 - 00 ja $LN20@ObfObfusca - -; 83 : { -; 84 : NATIVE_CODE_BLOCK NotTaken, Taken; - - 003e8 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] - 003ef e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 003f4 90 npad 1 - 003f5 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$15[rbp] - 003fc e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 00401 90 npad 1 - -; 85 : ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); - - 00402 4c 8d 8d 78 01 - 00 00 lea r9, QWORD PTR Taken$15[rbp] - 00409 4c 8d 85 28 01 - 00 00 lea r8, QWORD PTR NotTaken$14[rbp] - 00410 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$13[rbp] - 00417 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] - 0041e e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches - -; 86 : ObfObfuscate1(Obf, &NotTaken, Depth + 1); - - 00423 8b 85 10 04 00 - 00 mov eax, DWORD PTR Depth$[rbp] - 00429 ff c0 inc eax - 0042b 44 8b c0 mov r8d, eax - 0042e 48 8d 95 28 01 - 00 00 lea rdx, QWORD PTR NotTaken$14[rbp] - 00435 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 0043c e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first, COMDAT -; 87 : ObfObfuscate1(Obf, &Taken, Depth + 1); +; 1343 : constexpr _Ty1& _Get_first() noexcept { - 00441 8b 85 10 04 00 - 00 mov eax, DWORD PTR Depth$[rbp] - 00447 ff c0 inc eax - 00449 44 8b c0 mov r8d, eax - 0044c 48 8d 95 78 01 - 00 00 lea rdx, QWORD PTR Taken$15[rbp] - 00453 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 0045a e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] -; 88 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); +; 1345 : } - 0045f 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 00466 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 0046a e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 0046f 89 85 c4 03 00 - 00 mov DWORD PTR tv235[rbp], eax - 00475 48 8b 85 00 04 - 00 00 mov rax, QWORD PTR Obf$[rbp] - 0047c 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00480 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 00485 89 85 c8 03 00 - 00 mov DWORD PTR tv233[rbp], eax - 0048b 44 8b 8d c4 03 - 00 00 mov r9d, DWORD PTR tv235[rbp] - 00492 44 8b 85 c8 03 - 00 00 mov r8d, DWORD PTR tv233[rbp] - 00499 48 8d 95 78 01 - 00 00 lea rdx, QWORD PTR Taken$15[rbp] - 004a0 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] - 004a7 e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches - -; 89 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); - - 004ac 4c 8d 85 28 01 - 00 00 lea r8, QWORD PTR NotTaken$14[rbp] - 004b3 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$13[rbp] - 004ba 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] - 004c1 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock - -; 90 : T = NotTaken.End; - - 004c6 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR NotTaken$14[rbp+8] - 004cd 48 89 85 08 01 - 00 00 mov QWORD PTR T$13[rbp], rax - -; 91 : } - - 004d4 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$15[rbp] - 004db e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 004e0 90 npad 1 - 004e1 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] - 004e8 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 004ed eb 7d jmp SHORT $LN21@ObfObfusca -$LN20@ObfObfusca: - -; 92 : else -; 93 : { -; 94 : NATIVE_CODE_BLOCK TempBlock; - - 004ef 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$16[rbp] - 004f6 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 004fb 90 npad 1 - -; 95 : if (NcDeepCopyPartialBlock(NewBlockStart, T, &TempBlock)) - - 004fc 4c 8d 85 c8 01 - 00 00 lea r8, QWORD PTR TempBlock$16[rbp] - 00503 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$13[rbp] - 0050a 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] - 00511 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 00516 85 c0 test eax, eax - 00518 74 38 je SHORT $LN22@ObfObfusca - -; 96 : { -; 97 : ObfObfuscate1(Obf, &TempBlock, Depth + 1); - - 0051a 8b 85 10 04 00 - 00 mov eax, DWORD PTR Depth$[rbp] - 00520 ff c0 inc eax - 00522 44 8b c0 mov r8d, eax - 00525 48 8d 95 c8 01 - 00 00 lea rdx, QWORD PTR TempBlock$16[rbp] - 0052c 48 8b 8d 00 04 - 00 00 mov rcx, QWORD PTR Obf$[rbp] - 00533 e8 00 00 00 00 call ?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ; ObfObfuscate1 - -; 98 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &TempBlock); - - 00538 4c 8d 85 c8 01 - 00 00 lea r8, QWORD PTR TempBlock$16[rbp] - 0053f 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR T$13[rbp] - 00546 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR NewBlockStart$12[rbp] - 0054d e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock -$LN22@ObfObfusca: - -; 99 : } -; 100 : T = TempBlock.End; - - 00552 48 8b 85 d0 01 - 00 00 mov rax, QWORD PTR TempBlock$16[rbp+8] - 00559 48 89 85 08 01 - 00 00 mov QWORD PTR T$13[rbp], rax - -; 101 : } - - 00560 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$16[rbp] - 00567 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ -$LN21@ObfObfusca: - -; 102 : NewBlockStart = T->Next; - - 0056c 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$13[rbp] - 00573 48 8b 00 mov rax, QWORD PTR [rax] - 00576 48 89 85 e8 00 - 00 00 mov QWORD PTR NewBlockStart$12[rbp], rax - -; 103 : CurrentCount = 0; - - 0057d c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR CurrentCount$11[rbp], 0 -$LN19@ObfObfusca: - -; 104 : } -; 105 : T = T->Next; - - 00587 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR T$13[rbp] - 0058e 48 8b 00 mov rax, QWORD PTR [rax] - 00591 48 89 85 08 01 - 00 00 mov QWORD PTR T$13[rbp], rax - -; 106 : } - - 00598 e9 6c fd ff ff jmp $LN5@ObfObfusca -$LN1@ObfObfusca: - -; 107 : /*if (NewBlockStart && CurrentCount >= Obf->MinSizeForOpaqueBranch) -; 108 : { -; 109 : if (Depth >= Obf->MinDepthForRandomOpaqueBranch && (rand() % 100) <= Obf->OpaqueBranchChance && CurrentCount <= Obf->MinSizeForOpaqueBranch) -; 110 : { -; 111 : NATIVE_CODE_BLOCK NotTaken, Taken; -; 112 : ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); -; 113 : ObfObfuscate1(Obf, &NotTaken, Depth + 1); -; 114 : ObfObfuscate1(Obf, &Taken, Depth + 1); -; 115 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); -; 116 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); -; 117 : } -; 118 : else -; 119 : { -; 120 : NATIVE_CODE_BLOCK TempBlock; -; 121 : if (NcDeepCopyPartialBlock(NewBlockStart, Block->End, &TempBlock)) -; 122 : { -; 123 : ObfObfuscate1(Obf, &TempBlock, Depth + 1); -; 124 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &TempBlock); -; 125 : } -; 126 : } -; 127 : }*/ -; 128 : } -; 129 : -; 130 : -; 131 : -; 132 : -; 133 : -; 134 : } - - 0059d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 005a1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z$rtcFrameData - 005a8 e8 00 00 00 00 call _RTC_CheckStackVars - 005ad 48 8b 8d d0 03 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 005b4 48 33 cd xor rcx, rbp - 005b7 e8 00 00 00 00 call __security_check_cookie - 005bc 48 8d a5 e8 03 - 00 00 lea rsp, QWORD PTR [rbp+1000] - 005c3 5f pop rdi - 005c4 5d pop rbp - 005c5 c3 ret 0 -?ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z ENDP ; ObfObfuscate1 + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first _TEXT ENDS -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$0 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$1 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$15[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$1 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$2 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$16[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$2 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR NotTaken$14[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$1 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d 78 01 - 00 00 lea rcx, QWORD PTR Taken$15[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$1@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$1 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -InstructionCount$ = 4 -T$6 = 40 -RealNext$7 = 72 -PreOp$8 = 104 -PostOp$9 = 136 -TargetCount$10 = 164 -CurrentCount$11 = 196 -NewBlockStart$12 = 232 -T$13 = 264 -NotTaken$14 = 296 -Taken$15 = 376 -TempBlock$16 = 456 -$T17 = 920 -$T18 = 952 -tv235 = 964 -tv176 = 964 -tv233 = 968 -tv163 = 968 -tv158 = 968 -__$ArrayPad$ = 976 -Obf$ = 1024 -Block$ = 1032 -Depth$ = 1040 -?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `ObfObfuscate1'::`1'::dtor$2 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 48 8d 8d c8 01 - 00 00 lea rcx, QWORD PTR TempBlock$16[rbp] - 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$2@?0??ObfObfuscate1@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `ObfObfuscate1'::`1'::dtor$2 -text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ _TEXT SEGMENT this$ = 224 -__flags$ = 232 -??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT -$LN4: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec e8 00 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::vector,std::allocator > >::_Getal, COMDAT + +; 1735 : const _Alty& _Getal() const noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00023 8b 85 e8 00 00 - 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 30 00 00 00 mov edx, 48 ; 00000030H - 00035 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete -$LN2@scalar: - 00041 48 8b 85 e0 00 + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1736 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first + 00045 90 npad 1 + +; 1737 : } + + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 -??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::vector,std::allocator > >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ _TEXT SEGMENT this$ = 224 -??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ PROC ; std::vector,std::allocator > >::_Getal, COMDAT + +; 1731 : _Alty& _Getal() noexcept { + $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp @@ -2370,91 +7010,214 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b 85 e0 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@V?$_Vector_val@U?$_Simple_types@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@2@$00@std@@QEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::_Compressed_pair >,std::_Vector_val > >,1>::_Get_first + 00045 90 npad 1 + +; 1733 : } + + 00046 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 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 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ENDP ; std::vector,std::allocator > >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z _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 +_Lock$ = 4 +_Pnext$ = 40 +_Pnextptr$4 = 72 +__$ArrayPad$ = 280 +this$ = 320 +_First$ = 328 +_Last$ = 336 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z PROC ; std::vector,std::allocator > >::_Orphan_range, COMDAT + +; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range + +$LN9: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1713 : _Lockit _Lock(_LOCK_DEBUG); -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00051 ba 03 00 00 00 mov edx, 3 + 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005a ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z -; 1378 : return *this; +; 1714 : +; 1715 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; - 0001f 48 8b 85 e0 00 + 00060 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax +$LN2@Orphan_ran: -; 1379 : } +; 1716 : while (*_Pnext) { - 00026 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 -?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00076 48 83 38 00 cmp QWORD PTR [rax], 0 + 0007a 74 5c je SHORT $LN3@Orphan_ran + +; 1717 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; + + 0007c 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00087 48 89 45 48 mov QWORD PTR _Pnextptr$4[rbp], rax + +; 1718 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator + + 0008b 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00092 48 39 45 48 cmp QWORD PTR _Pnextptr$4[rbp], rax + 00096 72 0d jb SHORT $LN6@Orphan_ran + 00098 48 8b 45 48 mov rax, QWORD PTR _Pnextptr$4[rbp] + 0009c 48 39 85 50 01 + 00 00 cmp QWORD PTR _Last$[rbp], rax + 000a3 73 11 jae SHORT $LN4@Orphan_ran +$LN6@Orphan_ran: + +; 1719 : _Pnext = &(*_Pnext)->_Mynextiter; + + 000a5 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000a9 48 8b 00 mov rax, QWORD PTR [rax] + 000ac 48 83 c0 08 add rax, 8 + 000b0 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax + +; 1720 : } else { // orphan the iterator + + 000b4 eb 20 jmp SHORT $LN5@Orphan_ran +$LN4@Orphan_ran: + +; 1721 : (*_Pnext)->_Myproxy = nullptr; + + 000b6 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000ba 48 8b 00 mov rax, QWORD PTR [rax] + 000bd 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1722 : *_Pnext = (*_Pnext)->_Mynextiter; + + 000c4 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 000c8 48 8b 00 mov rax, QWORD PTR [rax] + 000cb 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$[rbp] + 000cf 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000d3 48 89 01 mov QWORD PTR [rcx], rax +$LN5@Orphan_ran: + +; 1723 : } +; 1724 : } + + 000d6 eb 9a jmp SHORT $LN2@Orphan_ran +$LN3@Orphan_ran: + +; 1725 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1726 : (void) _First; +; 1727 : (void) _Last; +; 1728 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1729 : } + + 000d8 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 000dc ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 000e2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e6 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z$rtcFrameData + 000ed e8 00 00 00 00 call _RTC_CheckStackVars + 000f2 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000f9 48 33 cd xor rcx, rbp + 000fc e8 00 00 00 00 call __security_check_cookie + 00101 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00108 5f pop rdi + 00109 5d pop rbp + 0010a c3 ret 0 +?_Orphan_range@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ENDP ; std::vector,std::allocator > >::_Orphan_range _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ _TEXT SEGMENT -this$ = 224 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT +?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ PROC ; std::vector,std::allocator > >::_Xlength, COMDAT -; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { +; 1703 : [[noreturn]] static void _Xlength() { $LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1818 : return _Mypair._Get_first(); +; 1704 : _Xlength_error("vector too long"); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b c8 mov rcx, rax - 00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ + 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error +$LN2@Xlength: -; 1819 : } +; 1705 : } - 0002e 48 8d a5 c8 00 + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00035 5f pop rdi - 00036 5d pop rbp - 00037 c3 ret 0 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +?_Xlength@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@CAXXZ ENDP ; std::vector,std::allocator > >::_Xlength _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z _TEXT SEGMENT _My_data$ = 8 _Myfirst$ = 40 @@ -2464,136 +7227,268 @@ tv90 = 312 tv88 = 320 tv86 = 328 this$ = 368 -?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT +_Newvec$ = 376 +_Newsize$ = 384 +_Newcapacity$ = 392 +?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z PROC ; std::vector,std::allocator > >::_Change_array, COMDAT -; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage +; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { $LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 78 01 + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1756 : auto& _My_data = _Mypair._Myval2; - - 0001f 48 8b 85 70 01 + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1667 : // orphan all iterators, discard old array, acquire new array +; 1668 : auto& _My_data = _Mypair._Myval2; + + 00045 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1757 : pointer& _Myfirst = _My_data._Myfirst; +; 1669 : pointer& _Myfirst = _My_data._Myfirst; - 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0002e 48 83 c0 08 add rax, 8 - 00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 08 add rax, 8 + 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1758 : pointer& _Mylast = _My_data._Mylast; +; 1670 : pointer& _Mylast = _My_data._Mylast; - 00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0003a 48 83 c0 10 add rax, 16 - 0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00060 48 83 c0 10 add rax, 16 + 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1759 : pointer& _Myend = _My_data._Myend; +; 1671 : pointer& _Myend = _My_data._Myend; - 00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00046 48 83 c0 18 add rax, 24 - 0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00068 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0006c 48 83 c0 18 add rax, 24 + 00070 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1760 : -; 1761 : _My_data._Orphan_all(); +; 1672 : +; 1673 : _My_data._Orphan_all(); - 0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 00074 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00078 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1762 : -; 1763 : if (_Myfirst) { // destroy and deallocate old array +; 1674 : +; 1675 : if (_Myfirst) { // destroy and deallocate old array - 00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0005b 48 83 38 00 cmp QWORD PTR [rax], 0 - 0005f 0f 84 92 00 00 - 00 je $LN2@Tidy + 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00081 48 83 38 00 cmp QWORD PTR [rax], 0 + 00085 74 71 je SHORT $LN2@Change_arr -; 1764 : _Destroy(_Myfirst, _Mylast); +; 1676 : _Destroy(_Myfirst, _Mylast); - 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00069 4c 8b 00 mov r8, QWORD PTR [rax] - 0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00070 48 8b 10 mov rdx, QWORD PTR [rax] - 00073 48 8b 8d 70 01 + 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0008b 4c 8b 00 mov r8, QWORD PTR [rax] + 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00092 48 8b 10 mov rdx, QWORD PTR [rax] + 00095 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 0009c e8 00 00 00 00 call ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ; std::vector,std::allocator > >::_Destroy -; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0007f 48 8b 8d 70 01 + 000a1 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0008b 48 89 85 38 01 + 000a8 e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 000ad 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0009d 48 8b 00 mov rax, QWORD PTR [rax] - 000a0 48 2b c1 sub rax, rcx - 000a3 48 c1 f8 02 sar rax, 2 - 000a7 48 89 85 40 01 + 000b4 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000b8 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000bc 48 8b 09 mov rcx, QWORD PTR [rcx] + 000bf 48 8b 00 mov rax, QWORD PTR [rax] + 000c2 48 2b c1 sub rax, rcx + 000c5 48 c1 f8 04 sar rax, 4 + 000c9 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000b2 48 8b 00 mov rax, QWORD PTR [rax] - 000b5 48 89 85 48 01 + 000d0 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000d4 48 8b 00 mov rax, QWORD PTR [rax] + 000d7 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000bc 4c 8b 85 40 01 + 000de 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000c3 48 8b 95 48 01 + 000e5 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000ca 48 8b 8d 38 01 + 000ec 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate - -; 1766 : -; 1767 : _Myfirst = nullptr; - - 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000da 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 - -; 1768 : _Mylast = nullptr; - - 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000e5 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 000f3 e8 00 00 00 00 call ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ; std::allocator >::deallocate +$LN2@Change_arr: + +; 1678 : } +; 1679 : +; 1680 : _Myfirst = _Newvec; + + 000f8 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000fc 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00103 48 89 08 mov QWORD PTR [rax], rcx + +; 1681 : _Mylast = _Newvec + _Newsize; + + 00106 48 6b 85 80 01 + 00 00 10 imul rax, QWORD PTR _Newsize$[rbp], 16 + 0010e 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00115 48 03 c8 add rcx, rax + 00118 48 8b c1 mov rax, rcx + 0011b 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] + 0011f 48 89 01 mov QWORD PTR [rcx], rax + +; 1682 : _Myend = _Newvec + _Newcapacity; + + 00122 48 6b 85 88 01 + 00 00 10 imul rax, QWORD PTR _Newcapacity$[rbp], 16 + 0012a 48 8b 8d 78 01 + 00 00 mov rcx, QWORD PTR _Newvec$[rbp] + 00131 48 03 c8 add rcx, rax + 00134 48 8b c1 mov rax, rcx + 00137 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] + 0013b 48 89 01 mov QWORD PTR [rcx], rax + +; 1683 : } + + 0013e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00145 5f pop rdi + 00146 5d pop rbp + 00147 c3 ret 0 +?_Change_array@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K1@Z ENDP ; std::vector,std::allocator > >::_Change_array +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z +_TEXT SEGMENT +_Oldcapacity$ = 8 +_Geometric$ = 40 +tv67 = 248 +this$ = 288 +_Newsize$ = 296 +?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z PROC ; std::vector,std::allocator > >::_Calculate_growth, COMDAT -; 1769 : _Myend = nullptr; +; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { - 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: +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1616 : // given _Oldcapacity and _Newsize, calculate geometric growth +; 1617 : const size_type _Oldcapacity = capacity(); + + 0003b 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00042 e8 00 00 00 00 call ?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::capacity + 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax -; 1770 : } -; 1771 : } +; 1618 : +; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { - 000f7 48 8d a5 58 01 - 00 00 lea rsp, QWORD PTR [rbp+344] - 000fe 5f pop rdi - 000ff 5d pop rbp - 00100 c3 ret 0 -?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy + 0004b 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00052 e8 00 00 00 00 call ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ; std::vector,std::allocator > >::max_size + 00057 48 89 85 f8 00 + 00 00 mov QWORD PTR tv67[rbp], rax + 0005e 33 d2 xor edx, edx + 00060 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 00064 b9 02 00 00 00 mov ecx, 2 + 00069 48 f7 f1 div rcx + 0006c 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv67[rbp] + 00073 48 2b c8 sub rcx, rax + 00076 48 8b c1 mov rax, rcx + 00079 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax + 0007d 76 09 jbe SHORT $LN2@Calculate_ + +; 1620 : return _Newsize; // geometric growth would overflow + + 0007f 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 00086 eb 36 jmp SHORT $LN1@Calculate_ +$LN2@Calculate_: + +; 1621 : } +; 1622 : +; 1623 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; + + 00088 33 d2 xor edx, edx + 0008a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0008e b9 02 00 00 00 mov ecx, 2 + 00093 48 f7 f1 div rcx + 00096 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] + 0009a 48 03 c8 add rcx, rax + 0009d 48 8b c1 mov rax, rcx + 000a0 48 89 45 28 mov QWORD PTR _Geometric$[rbp], rax + +; 1624 : +; 1625 : if (_Geometric < _Newsize) { + + 000a4 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 000ab 48 39 45 28 cmp QWORD PTR _Geometric$[rbp], rax + 000af 73 09 jae SHORT $LN3@Calculate_ + +; 1626 : return _Newsize; // geometric growth would be insufficient + + 000b1 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 000b8 eb 04 jmp SHORT $LN1@Calculate_ +$LN3@Calculate_: + +; 1627 : } +; 1628 : +; 1629 : return _Geometric; // geometric growth is sufficient + + 000ba 48 8b 45 28 mov rax, QWORD PTR _Geometric$[rbp] +$LN1@Calculate_: + +; 1630 : } + + 000be 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 +?_Calculate_growth@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBA_K_K@Z ENDP ; std::vector,std::allocator > >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z _TEXT SEGMENT this$ = 224 _First$ = 232 _Last$ = 240 -?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT +?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z PROC ; std::vector,std::allocator > >::_Destroy, COMDAT -; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2604,128 +7499,417 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@YAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Destroy_range > > + +; 1613 : } + + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@0@Z ENDP ; std::vector,std::allocator > >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z +_TEXT SEGMENT +$T1 = 196 +this$ = 256 +_First$ = 264 +_Last$ = 272 +_Dest$ = 280 +?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z PROC ; std::vector,std::allocator > >::_Umove_if_noexcept, COMDAT + +; 1605 : void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { + +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00022 48 8b fc mov rdi, rsp + 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1606 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator +; 1607 : _Umove_if_noexcept1(_First, _Last, _Dest, + + 00045 48 8d 85 c4 00 + 00 00 lea rax, QWORD PTR $T1[rbp] + 0004c 48 8b f8 mov rdi, rax + 0004f 33 c0 xor eax, eax + 00051 b9 01 00 00 00 mov ecx, 1 + 00056 f3 aa rep stosb + 00058 0f b6 85 c4 00 + 00 00 movzx eax, BYTE PTR $T1[rbp] + 0005f 88 44 24 20 mov BYTE PTR [rsp+32], al + 00063 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR _Dest$[rbp] + 0006a 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 00071 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00078 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007f e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z ; std::vector,std::allocator > >::_Umove_if_noexcept1 + +; 1608 : bool_constant, negation>>>{}); +; 1609 : } + + 00084 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +?_Umove_if_noexcept@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00@Z ENDP ; std::vector,std::allocator > >::_Umove_if_noexcept +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +__formal$ = 256 +?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z PROC ; std::vector,std::allocator > >::_Umove_if_noexcept1, COMDAT -; 1679 : // destroy [_First, _Last) using allocator -; 1680 : _Destroy_range(_First, _Last, _Getal()); +; 1595 : void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { - 00029 48 8b 8d e0 00 +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1596 : // move [_First, _Last) to raw _Dest, using allocator +; 1597 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); + + 00045 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00035 4c 8b c0 mov r8, rax - 00038 48 8b 95 f0 00 + 0004c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00051 4c 8b c8 mov r9, rax + 00054 4c 8b 85 f8 00 + 00 00 mov r8, QWORD PTR _Dest$[rbp] + 0005b 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d e8 00 + 00062 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Uninitialized_move *,std::allocator > > -; 1681 : } +; 1598 : } - 0004b 48 8d a5 c8 00 + 0006e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00052 5f pop rdi - 00053 5d pop rbp - 00054 c3 ret 0 -?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 +?_Umove_if_noexcept1@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAXPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@00U?$integral_constant@_N$00@2@@Z ENDP ; std::vector,std::allocator > >::_Umove_if_noexcept1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z _TEXT SEGMENT -_Alproxy$ = 8 -$S1$ = 36 -$T4 = 260 -__$ArrayPad$ = 280 -this$ = 320 -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z PROC ; std::vector,std::allocator > >::_Umove, COMDAT + +; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator + +$LN3: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1592 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); + + 00045 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004c e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAAEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00051 4c 8b c8 mov r9, rax + 00054 4c 8b 85 f8 00 + 00 00 mov r8, QWORD PTR _Dest$[rbp] + 0005b 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00062 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@YAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@0@QEAU10@0PEAU10@AEAV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@0@@Z ; std::_Uninitialized_move *,std::allocator > > + +; 1593 : } + + 0006e 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 +?_Umove@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@PEAU32@00@Z ENDP ; std::vector,std::allocator > >::_Umove +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +_TEXT SEGMENT +_My_data$ = 8 +this$ = 256 +?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ PROC ; std::vector,std::allocator > >::capacity, COMDAT -; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { +; 1492 : _NODISCARD size_type capacity() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 1a 00 00 00 mov ecx, 26 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 18 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 712 : _Tidy(); +; 1493 : auto& _My_data = _Mypair._Myval2; - 00049 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1494 : return static_cast(_My_data._Myend - _My_data._Myfirst); + + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004d 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00051 48 2b c1 sub rax, rcx + 00054 48 c1 f8 04 sar rax, 4 + +; 1495 : } + + 00058 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 c3 ret 0 +?capacity@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ENDP ; std::vector,std::allocator > >::capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ +_TEXT SEGMENT +$T1 = 200 +$T2 = 232 +this$ = 288 +?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ PROC ; std::vector,std::allocator > >::max_size, COMDAT -; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 1487 : _NODISCARD size_type max_size() const noexcept { - 00055 48 8b 8d 40 01 +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1488 : return (_STD min)( + + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 0003d e8 00 00 00 00 call ?_Getal@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@AEBAAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@XZ ; std::vector,std::allocator > >::_Getal + 00042 48 8b c8 mov rcx, rax + 00045 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z ; std::_Default_allocator_traits > >::max_size + 0004a 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00051 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 00056 48 89 85 e8 00 + 00 00 mov QWORD PTR $T2[rbp], rax + 0005d 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00064 48 8d 8d e8 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 0006b e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 00070 48 8b 00 mov rax, QWORD PTR [rax] -; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1490 : } - 00075 48 c7 85 04 01 - 00 00 00 00 00 - 00 mov QWORD PTR $T4[rbp], 0 - 00080 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00087 48 8d 95 04 01 - 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008e 48 8b c8 mov rcx, rax - 00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00096 48 8b d0 mov rdx, rax - 00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + 00073 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c c3 ret 0 +?max_size@?$vector@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@std@@QEBA_KXZ ENDP ; std::vector,std::allocator > >::max_size +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z +_TEXT SEGMENT +__formal$ = 224 +?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z PROC ; std::_Default_allocator_traits > >::max_size, COMDAT -; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 717 : } +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { - 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData - 000ad e8 00 00 00 00 call _RTC_CheckStackVars - 000b2 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b9 48 33 cd xor rcx, rbp - 000bc e8 00 00 00 00 call __security_check_cookie - 000c1 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000c8 5f pop rdi - 000c9 5d pop rbp - 000ca c3 ret 0 -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 703 : return static_cast(-1) / sizeof(value_type); + + 00036 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + +; 704 : } + + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +?max_size@?$_Default_allocator_traits@V?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@@std@@SA_KAEBV?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@2@@Z ENDP ; std::_Default_allocator_traits > >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z PROC ; std::allocator >::allocate, COMDAT + +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + +; 808 : } + + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +?allocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAPEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ENDP ; std::allocator >::allocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z _TEXT SEGMENT this$ = 224 _Ptr$ = 232 _Count$ = 240 -?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT +?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z PROC ; std::allocator >::deallocate, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2736,32 +7920,37 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 834 : // no overflow check on the following multiply; we assume _Allocate did that check -; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00029 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Count$[rbp] - 00030 48 c1 e0 02 shl rax, 2 - 00034 48 8b d0 mov rdx, rax - 00037 48 8b 8d e8 00 + 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 6b 85 f0 00 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 836 : } +; 804 : } - 00043 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 -?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 +?deallocate@?$allocator@U?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@std@@@std@@QEAAXQEAU?$pair@P6AHPEAU_NATIVE_CODE_LINK@@PEAEPEAX@ZPEAX@2@_K@Z ENDP ; std::allocator >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -2772,7 +7961,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2784,141 +7973,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -2929,7 +8124,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2941,141 +8136,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3086,7 +8287,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3097,98 +8298,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00029 48 8b 8d 40 01 + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -3205,73 +8412,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3290,7 +8503,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3301,644 +8514,1304 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT + +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { + +$LN7: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it + + 00047 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00052 74 6b je SHORT $LN5@Orphan_all + +; 1208 : _Lockit _Lock(_LOCK_DEBUG); + + 00054 ba 03 00 00 00 mov edx, 3 + 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { + + 00063 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 83 c0 08 add rax, 8 + 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax + 00075 eb 12 jmp SHORT $LN4@Orphan_all +$LN2@Orphan_all: + 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] + 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00086 48 89 01 mov QWORD PTR [rcx], rax +$LN4@Orphan_all: + 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00091 74 10 je SHORT $LN3@Orphan_all + +; 1211 : (*_Pnext)->_Myproxy = nullptr; + + 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1212 : } + + 000a1 eb d4 jmp SHORT $LN2@Orphan_all +$LN3@Orphan_all: + +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; + + 000a3 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + +; 1215 : } + + 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000b9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN5@Orphan_all: + +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } + + 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData + 000ca e8 00 00 00 00 call _RTC_CheckStackVars + 000cf 90 npad 1 + 000d0 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d7 48 33 cd xor rcx, rbp + 000da e8 00 00 00 00 call __security_check_cookie + 000df 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e6 5f pop rdi + 000e7 5d pop rbp + 000e8 c3 ret 0 +?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +_TEXT SEGMENT +_Ptr_user$ = 8 +_Ptr_container$ = 40 +_Min_back_shift$ = 72 +_Back_shift$ = 104 +_Ptr$ = 352 +_Bytes$ = 360 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT + +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { + +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 8b fc mov rdi, rsp + 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; + + 0003b 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00050 48 89 01 mov QWORD PTR [rcx], rax + +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); + + 00053 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; + + 00061 b8 08 00 00 00 mov eax, 8 + 00066 48 6b c0 ff imul rax, rax, -1 + 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax +$LN4@Adjust_man: + +; 138 : +; 139 : // If the following asserts, it likely means that we are performing +; 140 : // an aligned delete on memory coming from an unaligned allocation. +; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); + + 00076 b8 08 00 00 00 mov eax, 8 + 0007b 48 6b c0 fe imul rax, rax, -2 + 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00083 48 ba fa fa fa + fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH + 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 00091 75 02 jne SHORT $LN14@Adjust_man + 00093 eb 77 jmp SHORT $LN15@Adjust_man +$LN14@Adjust_man: +$LN7@Adjust_man: + 00095 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 0009b 83 c0 09 add eax, 9 + 0009e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 000b6 45 33 c9 xor r9d, r9d + 000b9 44 8b c0 mov r8d, eax + 000bc 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000c3 b9 02 00 00 00 mov ecx, 2 + 000c8 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 000ce 83 f8 01 cmp eax, 1 + 000d1 75 03 jne SHORT $LN19@Adjust_man + 000d3 cc int 3 + 000d4 33 c0 xor eax, eax +$LN19@Adjust_man: + 000d6 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 000dc 83 c0 09 add eax, 9 + 000df 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000e8 44 8b c8 mov r9d, eax + 000eb 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000f2 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ + 000f9 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 00100 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 75 89 jne SHORT $LN7@Adjust_man +$LN15@Adjust_man: + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff + ff jne $LN4@Adjust_man + +; 142 : +; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 144 : // in range [_Min_back_shift, _Non_user_size] +; 145 : #ifdef _DEBUG +; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); + + 00116 48 c7 45 48 10 + 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 + +; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 149 : #endif // _DEBUG +; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; + + 0011e 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00129 48 8b 00 mov rax, QWORD PTR [rax] + 0012c 48 2b c1 sub rax, rcx + 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax +$LN10@Adjust_man: + +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); + + 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00138 72 09 jb SHORT $LN16@Adjust_man + 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 0013f 77 02 ja SHORT $LN16@Adjust_man + 00141 eb 77 jmp SHORT $LN17@Adjust_man +$LN16@Adjust_man: +$LN13@Adjust_man: + 00143 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 00149 83 c0 13 add eax, 19 + 0014c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00164 45 33 c9 xor r9d, r9d + 00167 44 8b c0 mov r8d, eax + 0016a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00171 b9 02 00 00 00 mov ecx, 2 + 00176 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 0017c 83 f8 01 cmp eax, 1 + 0017f 75 03 jne SHORT $LN20@Adjust_man + 00181 cc int 3 + 00182 33 c0 xor eax, eax +$LN20@Adjust_man: + 00184 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 0018a 83 c0 13 add eax, 19 + 0018d 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 00196 44 8b c8 mov r9d, eax + 00199 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 001a0 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ + 001a7 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 001ae ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 75 89 jne SHORT $LN13@Adjust_man +$LN17@Adjust_man: + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff + ff jne $LN10@Adjust_man + +; 152 : _Ptr = reinterpret_cast(_Ptr_container); + + 001c4 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx + +; 153 : } + + 001d2 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 001d9 5f pop rdi + 001da 5d pop rbp + 001db c3 ret 0 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z +_TEXT SEGMENT +_Bytes$ = 224 +?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z PROC ; std::_Default_allocate_traits::_Allocate, COMDAT + +; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 77 : return ::operator new(_Bytes); + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + +; 78 : } + + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ENDP ; std::_Default_allocate_traits::_Allocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception +; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ +_TEXT SEGMENT +$T1 = 200 +?_Throw_bad_array_new_length@std@@YAXXZ PROC ; std::_Throw_bad_array_new_length, COMDAT + +; 320 : [[noreturn]] inline void _Throw_bad_array_new_length() { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E4152856_exception + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 321 : _THROW(bad_array_new_length{}); + + 0002a 48 8d 8d c8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 00031 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length + 00036 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ + 0003d 48 8d 8d c8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 00044 e8 00 00 00 00 call _CxxThrowException +$LN2@Throw_bad_: + +; 322 : } + + 00049 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 +?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_Gbad_array_new_length@std@@UEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_Gbad_array_new_length@std@@UEAAPEAXI@Z PROC ; std::bad_array_new_length::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0bad_array_new_length@std@@QEAA@AEBV01@@Z +_TEXT SEGMENT +this$ = 224 +__that$ = 232 +??0bad_array_new_length@std@@QEAA@AEBV01@@Z PROC ; std::bad_array_new_length::bad_array_new_length, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +??0bad_array_new_length@std@@QEAA@AEBV01@@Z ENDP ; std::bad_array_new_length::bad_array_new_length +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1bad_array_new_length@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1bad_array_new_length@std@@UEAA@XZ PROC ; std::bad_array_new_length::~bad_array_new_length, COMDAT +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00036 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +??1bad_array_new_length@std@@UEAA@XZ ENDP ; std::bad_array_new_length::~bad_array_new_length +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0bad_array_new_length@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0bad_array_new_length@std@@QEAA@XZ PROC ; std::bad_array_new_length::bad_array_new_length, COMDAT + +; 141 : { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 140 : : bad_alloc("bad array new length") + + 00036 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ + 0003d 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + +; 141 : { + + 00049 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00050 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ + 00057 48 89 08 mov QWORD PTR [rax], rcx + +; 142 : } + + 0005a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00061 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +??0bad_array_new_length@std@@QEAA@XZ ENDP ; std::bad_array_new_length::bad_array_new_length +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_Gbad_alloc@std@@UEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_Gbad_alloc@std@@UEAAPEAXI@Z PROC ; std::bad_alloc::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0bad_alloc@std@@QEAA@AEBV01@@Z _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT - -; 1095 : void _Orphan_all_locked() noexcept { - +this$ = 224 +__that$ = 232 +??0bad_alloc@std@@QEAA@AEBV01@@Z PROC ; std::bad_alloc::bad_alloc, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1bad_alloc@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1bad_alloc@std@@UEAA@XZ PROC ; std::bad_alloc::~bad_alloc, COMDAT $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00036 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +??1bad_alloc@std@@UEAA@XZ ENDP ; std::bad_alloc::~bad_alloc +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z +_TEXT SEGMENT +this$ = 224 +_Message$ = 232 +??0bad_alloc@std@@AEAA@QEBD@Z PROC ; std::bad_alloc::bad_alloc, COMDAT -; 1096 : _Lockit _Lock(_LOCK_DEBUG); +; 130 : { - 00049 ba 03 00 00 00 mov edx, 3 - 0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00052 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 129 : : exception(_Message, 1) + + 0003b 41 b8 01 00 00 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Message$[rbp] + 00048 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception -; 1097 : _Orphan_all_unlocked(); +; 130 : { - 00058 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked + 00054 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ + 00062 48 89 08 mov QWORD PTR [rax], rcx -; 1098 : } +; 131 : } - 00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00068 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00072 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData - 00079 e8 00 00 00 00 call _RTC_CheckStackVars - 0007e 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00085 48 33 cd xor rcx, rbp - 00088 e8 00 00 00 00 call __security_check_cookie - 0008d 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00094 5f pop rdi - 00095 5d pop rbp - 00096 c3 ret 0 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked + 00065 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 +??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +; COMDAT ??_Gexception@std@@UEAAPEAXI@Z _TEXT SEGMENT -_Pnext$1 = 8 -this$ = 256 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT +this$ = 224 +__flags$ = 232 +??_Gexception@std@@UEAAPEAXI@Z PROC ; std::exception::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0003a 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 18 00 00 00 mov edx, 24 + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_Gexception@std@@UEAAPEAXI@Z ENDP ; std::exception::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ?what@exception@std@@UEBAPEBDXZ +_TEXT SEGMENT +tv69 = 192 +this$ = 240 +?what@exception@std@@UEBAPEBDXZ PROC ; std::exception::what, COMDAT -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 94 : { -$LN6: +$LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H + 00007 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 - - 0001f 48 8b 85 00 01 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 95 : return _Data._What ? _Data._What : "Unknown exception"; + + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 83 c0 08 add rax, 8 - 0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax - 00031 eb 12 jmp SHORT $LN4@Orphan_all -$LN2@Orphan_all: - 00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp] - 0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00042 48 89 01 mov QWORD PTR [rcx], rax -$LN4@Orphan_all: - 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00049 48 83 38 00 cmp QWORD PTR [rax], 0 - 0004d 74 10 je SHORT $LN3@Orphan_all - -; 1222 : _Pnext->_Myproxy = nullptr; - - 0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 - -; 1223 : } - - 0005d eb d4 jmp SHORT $LN2@Orphan_all -$LN3@Orphan_all: - -; 1224 : _Myproxy->_Myfirstiter = nullptr; - - 0005f 48 8b 85 00 01 + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 14 je SHORT $LN3@what + 00044 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 00 mov rax, QWORD PTR [rax] - 00069 48 c7 40 08 00 - 00 00 00 mov QWORD PTR [rax+8], 0 - -; 1225 : } - - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 00056 eb 0e jmp SHORT $LN4@what +$LN3@what: + 00058 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ + 0005f 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax +$LN4@what: + 00066 48 8b 85 c0 00 + 00 00 mov rax, QWORD PTR tv69[rbp] + +; 96 : } + + 0006d 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 +?what@exception@std@@UEBAPEBDXZ ENDP ; std::exception::what _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +??1exception@std@@UEAA@XZ PROC ; std::exception::~exception, COMDAT -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { +; 89 : { -$LN4: +$LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ + 00044 48 89 08 mov QWORD PTR [rax], rcx -; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1229 : if (_Myproxy) { // proxy allocated, drain it +; 90 : __std_exception_destroy(&_Data); - 0001f 48 8b 85 e0 00 + 00047 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: + 0004e 48 83 c0 08 add rax, 8 + 00052 48 8b c8 mov rcx, rax + 00055 e8 00 00 00 00 call __std_exception_destroy + 0005a 90 npad 1 -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 91 : } - 00038 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003f 5f pop rdi - 00040 5d pop rbp - 00041 c3 ret 0 -?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 +??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT -_Ptr_user$ = 8 -_Ptr_container$ = 40 -_Min_back_shift$ = 72 -_Back_shift$ = 104 -_Ptr$ = 352 -_Bytes$ = 360 -?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT +this$ = 224 +_Other$ = 232 +??0exception@std@@QEAA@AEBV01@@Z PROC ; std::exception::exception, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 72 : { -$LN21: +$LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec 78 01 - 00 00 sub rsp, 376 ; 00000178H - 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ + 00049 48 89 08 mov QWORD PTR [rax], rcx -; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 155 : _Bytes += _Non_user_size; +; 71 : : _Data() - 00024 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 0002b 48 8b 00 mov rax, QWORD PTR [rax] - 0002e 48 83 c0 2f add rax, 47 ; 0000002fH - 00032 48 8b 8d 68 01 - 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00039 48 89 01 mov QWORD PTR [rcx], rax + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 83 c0 08 add rax, 8 + 00057 48 8b f8 mov rdi, rax + 0005a 33 c0 xor eax, eax + 0005c b9 10 00 00 00 mov ecx, 16 + 00061 f3 aa rep stosb -; 156 : -; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 73 : __std_exception_copy(&_Other._Data, &_Data); - 0003c 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00043 48 8b 00 mov rax, QWORD PTR [rax] - 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00063 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Other$[rbp] + 00075 48 83 c1 08 add rcx, 8 + 00079 48 8b d0 mov rdx, rax + 0007c e8 00 00 00 00 call __std_exception_copy -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 74 : } - 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: + 00081 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00088 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 c3 ret 0 +??0exception@std@@QEAA@AEBV01@@Z ENDP ; std::exception::exception +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0exception@std@@QEAA@QEBDH@Z +_TEXT SEGMENT +this$ = 224 +_Message$ = 232 +__formal$ = 240 +??0exception@std@@QEAA@QEBDH@Z PROC ; std::exception::exception, COMDAT -; 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"); +; 66 : { - 0005f b8 08 00 00 00 mov eax, 8 - 00064 48 6b c0 fe imul rax, rax, -2 - 00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006c 48 ba fa fa fa - fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 0007a 75 02 jne SHORT $LN14@Adjust_man - 0007c eb 77 jmp SHORT $LN15@Adjust_man -$LN14@Adjust_man: -$LN7@Adjust_man: - 0007e 8b 05 00 00 00 - 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00084 83 c0 09 add eax, 9 - 00087 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00093 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0009f 45 33 c9 xor r9d, r9d - 000a2 44 8b c0 mov r8d, eax - 000a5 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000ac b9 02 00 00 00 mov ecx, 2 - 000b1 ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 000b7 83 f8 01 cmp eax, 1 - 000ba 75 03 jne SHORT $LN19@Adjust_man - 000bc cc int 3 - 000bd 33 c0 xor eax, eax -$LN19@Adjust_man: - 000bf 8b 05 00 00 00 - 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000c5 83 c0 09 add eax, 9 - 000c8 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000d1 44 8b c8 mov r9d, eax - 000d4 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000db 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 000e2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 000e9 ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 000ef 33 c0 xor eax, eax - 000f1 85 c0 test eax, eax - 000f3 75 89 jne SHORT $LN7@Adjust_man -$LN15@Adjust_man: - 000f5 33 c0 xor eax, eax - 000f7 85 c0 test eax, eax - 000f9 0f 85 60 ff ff - ff jne $LN4@Adjust_man +$LN3: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ + 0004e 48 89 08 mov QWORD PTR [rax], rcx -; 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*); +; 65 : : _Data() - 000ff 48 c7 45 48 10 - 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 + 00051 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 48 83 c0 08 add rax, 8 + 0005c 48 8b f8 mov rdi, rax + 0005f 33 c0 xor eax, eax + 00061 b9 10 00 00 00 mov ecx, 16 + 00066 f3 aa rep stosb -; 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; +; 67 : _Data._What = _Message; - 00107 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00112 48 8b 00 mov rax, QWORD PTR [rax] - 00115 48 2b c1 sub rax, rcx - 00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax -$LN10@Adjust_man: + 00068 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006f 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Message$[rbp] + 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 68 : } - 0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00121 72 09 jb SHORT $LN16@Adjust_man - 00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 00128 77 02 ja SHORT $LN16@Adjust_man - 0012a eb 77 jmp SHORT $LN17@Adjust_man -$LN16@Adjust_man: -$LN13@Adjust_man: - 0012c 8b 05 00 00 00 - 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00132 83 c0 13 add eax, 19 - 00135 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00141 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0014d 45 33 c9 xor r9d, r9d - 00150 44 8b c0 mov r8d, eax - 00153 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0015a b9 02 00 00 00 mov ecx, 2 - 0015f ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 00165 83 f8 01 cmp eax, 1 - 00168 75 03 jne SHORT $LN20@Adjust_man - 0016a cc int 3 - 0016b 33 c0 xor eax, eax -$LN20@Adjust_man: - 0016d 8b 05 00 00 00 - 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00173 83 c0 13 add eax, 19 - 00176 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0017f 44 8b c8 mov r9d, eax - 00182 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00189 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ - 00190 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ - 00197 ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 0019d 33 c0 xor eax, eax - 0019f 85 c0 test eax, eax - 001a1 75 89 jne SHORT $LN13@Adjust_man -$LN17@Adjust_man: - 001a3 33 c0 xor eax, eax - 001a5 85 c0 test eax, eax - 001a7 0f 85 6f ff ff - ff jne $LN10@Adjust_man + 0007a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00081 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00088 5f pop rdi + 00089 5d pop rbp + 0008a c3 ret 0 +??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\limits +; COMDAT ?max@?$numeric_limits@_J@std@@SA_JXZ +_TEXT SEGMENT +?max@?$numeric_limits@_J@std@@SA_JXZ PROC ; std::numeric_limits<__int64>::max, COMDAT -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 645 : _NODISCARD static constexpr long long(max)() noexcept { - 001ad 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001b8 48 89 08 mov QWORD PTR [rax], rcx +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F2870A2C_limits + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : } +; 646 : return LLONG_MAX; - 001bb 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 001c2 5f pop rdi - 001c3 5d pop rbp - 001c4 c3 ret 0 -?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned + 0002a 48 b8 ff ff ff + ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH + +; 647 : } + + 00034 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 +?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h @@ -3960,213 +9833,83 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h -; COMDAT printf -_TEXT SEGMENT -_Result$ = 4 -_ArgList$ = 40 -tv77 = 280 -tv75 = 288 -__$ArrayPad$ = 296 -_Format$ = 336 -printf PROC ; COMDAT - -; 956 : { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000f 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec 58 01 - 00 00 sub rsp, 344 ; 00000158H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00027 b9 1e 00 00 00 mov ecx, 30 - 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00031 f3 ab rep stosd - 00033 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0003b 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 957 : int _Result; -; 958 : va_list _ArgList; -; 959 : __crt_va_start(_ArgList, _Format); - - 00058 48 8d 85 58 01 - 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax - -; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - - 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00067 48 89 85 18 01 - 00 00 mov QWORD PTR tv77[rbp], rax - 0006e b9 01 00 00 00 mov ecx, 1 - 00073 ff 15 00 00 00 - 00 call QWORD PTR __imp___acrt_iob_func - 00079 48 89 85 20 01 - 00 00 mov QWORD PTR tv75[rbp], rax - 00080 4c 8b 8d 18 01 - 00 00 mov r9, QWORD PTR tv77[rbp] - 00087 45 33 c0 xor r8d, r8d - 0008a 48 8b 95 50 01 - 00 00 mov rdx, QWORD PTR _Format$[rbp] - 00091 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR tv75[rbp] - 00098 e8 00 00 00 00 call _vfprintf_l - 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax - -; 961 : __crt_va_end(_ArgList); - - 000a0 48 c7 45 28 00 - 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 - -; 962 : return _Result; - - 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] - -; 963 : } - - 000ab 8b f8 mov edi, eax - 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b8 e8 00 00 00 00 call _RTC_CheckStackVars - 000bd 8b c7 mov eax, edi - 000bf 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c6 48 33 cd xor rcx, rbp - 000c9 e8 00 00 00 00 call __security_check_cookie - 000ce 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 -printf ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h -; COMDAT _vfprintf_l -_TEXT SEGMENT -_Stream$ = 224 -_Format$ = 232 -_Locale$ = 240 -_ArgList$ = 248 -_vfprintf_l PROC ; COMDAT - -; 644 : { - -$LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00014 55 push rbp - 00015 57 push rdi - 00016 48 81 ec f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - - 0002e e8 00 00 00 00 call __local_stdio_printf_options - 00033 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0003f 4c 8b 8d f0 00 - 00 00 mov r9, QWORD PTR _Locale$[rbp] - 00046 4c 8b 85 e8 00 - 00 00 mov r8, QWORD PTR _Format$[rbp] - 0004d 48 8b 95 e0 00 - 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 - 00 call QWORD PTR __imp___stdio_common_vfprintf - -; 646 : } - - 0005d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00064 5f pop rdi - 00065 5d pop rbp - 00066 c3 ret 0 -_vfprintf_l ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h -; COMDAT __local_stdio_printf_options +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h +; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT -__local_stdio_printf_options PROC ; COMDAT +_Size$ = 224 +_Where$ = 232 +??2@YAPEAX_KPEAX@Z PROC ; operator new, COMDAT -; 90 : { +; 167 : { $LN3: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec e8 00 + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 91 : static unsigned __int64 _OptionsStorage; -; 92 : return &_OptionsStorage; +; 168 : (void)_Size; +; 169 : return _Where; - 0001b 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage + 0003b 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Where$[rbp] -; 93 : } +; 170 : } - 00022 48 8d a5 c8 00 + 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -__local_stdio_printf_options ENDP + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -4183,18 +9926,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -4209,18 +9959,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -4235,18 +9992,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -4259,14 +10023,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A4C33DB6_Obfuscator@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod index 7ee68fc..2a986b3 100644 --- a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod +++ b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__A8BC9087_OpaqueBranching@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__BCD1AF07_OpaqueBranching@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -102,9 +101,9 @@ PUBLIC ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLO PUBLIC ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches PUBLIC ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -145,91 +144,91 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+184 + DD imagerel xed_relbr+182 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+184 + DD imagerel xed_inst1+207 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD imagerel $LN20 - DD imagerel $LN20+260 + DD imagerel $LN20+272 DD imagerel $unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+617 + DD imagerel $LN11+615 DD imagerel $unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -241,7 +240,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+591 + DD imagerel $LN11+589 DD imagerel $unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -253,13 +252,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD imagerel $LN5 - DD imagerel $LN5+144 + DD imagerel $LN5+167 DD imagerel $unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD imagerel $LN13 - DD imagerel $LN13+477 + DD imagerel $LN13+500 DD imagerel $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z pdata ENDS ; COMDAT pdata @@ -277,7 +276,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN15 - DD imagerel $LN15+474 + DD imagerel $LN15+497 DD imagerel $unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -298,39 +297,29 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025051d01H +$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025053401H DD 0118231dH DD 070110031H DD 05010H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4HA DD 031001H @@ -348,7 +337,7 @@ xdata SEGMENT $ip2state$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 0aH DB 00H DB 00H - DB 'u', 03H + DB 0d1H, 03H DB 02H DB 08aH DB 00H @@ -373,7 +362,7 @@ $cppxdata$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025052211H +$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025053911H DD 011d2322H DD 070160039H DD 05015H @@ -382,21 +371,11 @@ $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025052211 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025052201H +$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025053901H DD 011d2322H DD 07016001fH DD 05015H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 039H - DW 0235H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H @@ -408,7 +387,7 @@ xdata SEGMENT $ip2state$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 0adH, 04H + DB 0a5H, 04H DB 02H DB 0a6H DB 00H @@ -427,7 +406,7 @@ $cppxdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035064019H +$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H DD 01123317H DD 0700b00e0H DD 05009600aH @@ -535,16 +514,6 @@ CONST SEGMENT DD 00H DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 039H - DW 024fH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H @@ -556,7 +525,7 @@ xdata SEGMENT $ip2state$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 015H, 05H + DB 0dH, 05H DB 02H DB 0a6H DB 00H @@ -575,7 +544,7 @@ $cppxdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035064019H +$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H DD 01123317H DD 0700b00e4H DD 05009600aH @@ -685,33 +654,28 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025050f01H +$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025051e01H DD 010a230fH DD 07003001fH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025062301H +$unwind$xed_inst1 DD 025063a01H DD 011e2323H DD 07017001cH DD 050156016H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 040H - DB 09eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_relbr DD 025064719H +$unwind$xed_relbr DD 025064519H DD 0118231dH DD 070110026H DD 0500f6010H @@ -733,40 +697,35 @@ xed_relbr$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -811,38 +770,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -852,7 +863,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -877,217 +888,223 @@ $LN15: 00011 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8b fc mov rdi, rsp + 00020 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 a8 + 01 00 00 mov rcx, QWORD PTR [rsp+424] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 117 : OpaqueBranchBlock->Start->Prev = Start->Prev; - 00029 48 8b 85 90 01 + 00040 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00030 48 8b 00 mov rax, QWORD PTR [rax] - 00033 48 8b 8d 80 01 + 00047 48 8b 00 mov rax, QWORD PTR [rax] + 0004a 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 0003a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0003e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00051 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00055 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 118 : OpaqueBranchBlock->End->Next = End->Next; - 00042 48 8b 85 90 01 + 00059 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00049 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004d 48 8b 8d 88 01 + 00060 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00064 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR End$[rbp] - 00054 48 8b 09 mov rcx, QWORD PTR [rcx] - 00057 48 89 08 mov QWORD PTR [rax], rcx + 0006b 48 8b 09 mov rcx, QWORD PTR [rcx] + 0006e 48 89 08 mov QWORD PTR [rax], rcx ; 119 : ; 120 : if (Start->Prev) - 0005a 48 8b 85 80 01 + 00071 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00061 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00066 74 18 je SHORT $LN8@ObfInsertO + 00078 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0007d 74 18 je SHORT $LN8@ObfInsertO ; 121 : Start->Prev->Next = OpaqueBranchBlock->Start; - 00068 48 8b 85 80 01 + 0007f 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0006f 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00073 48 8b 8d 90 01 + 00086 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0008a 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 0007a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0007d 48 89 08 mov QWORD PTR [rax], rcx + 00091 48 8b 09 mov rcx, QWORD PTR [rcx] + 00094 48 89 08 mov QWORD PTR [rax], rcx $LN8@ObfInsertO: ; 122 : if (End->Next) - 00080 48 8b 85 88 01 + 00097 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 00087 48 83 38 00 cmp QWORD PTR [rax], 0 - 0008b 74 19 je SHORT $LN9@ObfInsertO + 0009e 48 83 38 00 cmp QWORD PTR [rax], 0 + 000a2 74 19 je SHORT $LN9@ObfInsertO ; 123 : End->Next->Prev = OpaqueBranchBlock->End; - 0008d 48 8b 85 88 01 + 000a4 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 00094 48 8b 00 mov rax, QWORD PTR [rax] - 00097 48 8b 8d 90 01 + 000ab 48 8b 00 mov rax, QWORD PTR [rax] + 000ae 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 0009e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000a2 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000b5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN9@ObfInsertO: ; 124 : ; 125 : if (Start->Block->Start == Start) - 000a6 48 8b 85 80 01 + 000bd 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 000ad 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000b1 48 8b 8d 80 01 + 000c4 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000c8 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 000b8 48 39 08 cmp QWORD PTR [rax], rcx - 000bb 75 18 jne SHORT $LN10@ObfInsertO + 000cf 48 39 08 cmp QWORD PTR [rax], rcx + 000d2 75 18 jne SHORT $LN10@ObfInsertO ; 126 : Start->Block->Start = OpaqueBranchBlock->Start; - 000bd 48 8b 85 80 01 + 000d4 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 000c4 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000c8 48 8b 8d 90 01 + 000db 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000df 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 000cf 48 8b 09 mov rcx, QWORD PTR [rcx] - 000d2 48 89 08 mov QWORD PTR [rax], rcx + 000e6 48 8b 09 mov rcx, QWORD PTR [rcx] + 000e9 48 89 08 mov QWORD PTR [rax], rcx $LN10@ObfInsertO: ; 127 : ; 128 : if (Start->Block->End == End) - 000d5 48 8b 85 80 01 + 000ec 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 000dc 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000e0 48 8b 8d 88 01 + 000f3 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000f7 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR End$[rbp] - 000e7 48 39 48 08 cmp QWORD PTR [rax+8], rcx - 000eb 75 1a jne SHORT $LN11@ObfInsertO + 000fe 48 39 48 08 cmp QWORD PTR [rax+8], rcx + 00102 75 1a jne SHORT $LN11@ObfInsertO ; 129 : Start->Block->End = OpaqueBranchBlock->End; - 000ed 48 8b 85 80 01 + 00104 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 000f4 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000f8 48 8b 8d 90 01 + 0010b 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0010f 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 000ff 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00103 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00116 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0011a 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN11@ObfInsertO: ; 130 : ; 131 : //Update group for the current isntructions ; 132 : for (PNATIVE_CODE_LINK T = OpaqueBranchBlock->Start; T && T != OpaqueBranchBlock->End->Next; T = T->Next) - 00107 48 8b 85 90 01 + 0011e 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 0010e 48 8b 00 mov rax, QWORD PTR [rax] - 00111 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00115 eb 0b jmp SHORT $LN4@ObfInsertO + 00125 48 8b 00 mov rax, QWORD PTR [rax] + 00128 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0012c eb 0b jmp SHORT $LN4@ObfInsertO $LN2@ObfInsertO: - 00117 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0011b 48 8b 00 mov rax, QWORD PTR [rax] - 0011e 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0012e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00132 48 8b 00 mov rax, QWORD PTR [rax] + 00135 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ObfInsertO: - 00122 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00127 74 29 je SHORT $LN3@ObfInsertO - 00129 48 8b 85 90 01 + 00139 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0013e 74 29 je SHORT $LN3@ObfInsertO + 00140 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00130 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00134 48 8b 00 mov rax, QWORD PTR [rax] - 00137 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0013b 74 15 je SHORT $LN3@ObfInsertO + 00147 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0014b 48 8b 00 mov rax, QWORD PTR [rax] + 0014e 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00152 74 15 je SHORT $LN3@ObfInsertO ; 133 : T->Block = Start->Block; - 0013d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00141 48 8b 8d 80 01 + 00154 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00158 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 00148 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 0014c 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00150 eb c5 jmp SHORT $LN2@ObfInsertO + 0015f 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00163 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00167 eb c5 jmp SHORT $LN2@ObfInsertO $LN3@ObfInsertO: ; 134 : ; 135 : PNATIVE_CODE_LINK EndBlock = End->Next; - 00152 48 8b 85 88 01 + 00169 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 00159 48 8b 00 mov rax, QWORD PTR [rax] - 0015c 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax + 00170 48 8b 00 mov rax, QWORD PTR [rax] + 00173 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax ; 136 : for (PNATIVE_CODE_LINK T = Start; T && T != EndBlock;) - 00160 48 8b 85 80 01 + 00177 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00167 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 0017e 48 89 45 48 mov QWORD PTR T$2[rbp], rax $LN5@ObfInsertO: - 0016b 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 - 00170 74 59 je SHORT $LN6@ObfInsertO - 00172 48 8b 45 28 mov rax, QWORD PTR EndBlock$[rbp] - 00176 48 39 45 48 cmp QWORD PTR T$2[rbp], rax - 0017a 74 4f je SHORT $LN6@ObfInsertO + 00182 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 00187 74 59 je SHORT $LN6@ObfInsertO + 00189 48 8b 45 28 mov rax, QWORD PTR EndBlock$[rbp] + 0018d 48 39 45 48 cmp QWORD PTR T$2[rbp], rax + 00191 74 4f je SHORT $LN6@ObfInsertO ; 137 : { ; 138 : PNATIVE_CODE_LINK RealNext = T->Next; - 0017c 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 00180 48 8b 00 mov rax, QWORD PTR [rax] - 00183 48 89 45 68 mov QWORD PTR RealNext$3[rbp], rax + 00193 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 00197 48 8b 00 mov rax, QWORD PTR [rax] + 0019a 48 89 45 68 mov QWORD PTR RealNext$3[rbp], rax ; 139 : delete T; - 00187 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 0018b 48 89 85 48 01 + 0019e 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 001a2 48 89 85 48 01 00 00 mov QWORD PTR $T4[rbp], rax - 00192 48 83 bd 48 01 + 001a9 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 0019a 74 1a je SHORT $LN13@ObfInsertO - 0019c ba 01 00 00 00 mov edx, 1 - 001a1 48 8b 8d 48 01 + 001b1 74 1a je SHORT $LN13@ObfInsertO + 001b3 ba 01 00 00 00 mov edx, 1 + 001b8 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 001a8 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001ad 48 89 85 58 01 + 001bf e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001c4 48 89 85 58 01 00 00 mov QWORD PTR tv140[rbp], rax - 001b4 eb 0b jmp SHORT $LN14@ObfInsertO + 001cb eb 0b jmp SHORT $LN14@ObfInsertO $LN13@ObfInsertO: - 001b6 48 c7 85 58 01 + 001cd 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv140[rbp], 0 $LN14@ObfInsertO: ; 140 : T = RealNext; - 001c1 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] - 001c5 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 001d8 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] + 001dc 48 89 45 48 mov QWORD PTR T$2[rbp], rax ; 141 : } - 001c9 eb a0 jmp SHORT $LN5@ObfInsertO + 001e0 eb a0 jmp SHORT $LN5@ObfInsertO $LN6@ObfInsertO: ; 142 : return TRUE; - 001cb b8 01 00 00 00 mov eax, 1 + 001e2 b8 01 00 00 00 mov eax, 1 ; 143 : } - 001d0 48 8d a5 68 01 + 001e7 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 001d7 5f pop rdi - 001d8 5d pop rbp - 001d9 c3 ret 0 + 001ee 5f pop rdi + 001ef 5d pop rbp + 001f0 c3 ret 0 ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ObfInsertOpaqueBranchBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z _TEXT SEGMENT Jcc$ = 8 @@ -1118,187 +1135,193 @@ $LN13: 00016 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 72 00 00 00 mov ecx, 114 ; 00000072H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 e8 + 01 00 00 mov rcx, QWORD PTR [rsp+488] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 94 : PNATIVE_CODE_LINK Jcc = ObfGenRandomJcc(JccLabel); - 0002e ba 20 00 00 00 mov edx, 32 ; 00000020H - 00033 8b 8d d0 01 00 + 00045 ba 20 00 00 00 mov edx, 32 ; 00000020H + 0004a 8b 8d d0 01 00 00 mov ecx, DWORD PTR JccLabel$[rbp] - 00039 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc - 0003e 48 89 45 08 mov QWORD PTR Jcc$[rbp], rax + 00050 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc + 00055 48 89 45 08 mov QWORD PTR Jcc$[rbp], rax ; 95 : if (!Jcc) - 00042 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 - 00047 75 07 jne SHORT $LN2@ObfCombine + 00059 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 + 0005e 75 07 jne SHORT $LN2@ObfCombine ; 96 : return FALSE; - 00049 33 c0 xor eax, eax - 0004b e9 83 01 00 00 jmp $LN1@ObfCombine + 00060 33 c0 xor eax, eax + 00062 e9 83 01 00 00 jmp $LN1@ObfCombine $LN2@ObfCombine: ; 97 : PNATIVE_CODE_LINK Jmp = ObfGenJmpToLabel(JmpLabel); - 00050 ba 20 00 00 00 mov edx, 32 ; 00000020H - 00055 8b 8d d8 01 00 + 00067 ba 20 00 00 00 mov edx, 32 ; 00000020H + 0006c 8b 8d d8 01 00 00 mov ecx, DWORD PTR JmpLabel$[rbp] - 0005b e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel - 00060 48 89 45 28 mov QWORD PTR Jmp$[rbp], rax + 00072 e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel + 00077 48 89 45 28 mov QWORD PTR Jmp$[rbp], rax ; 98 : if (!Jmp) - 00064 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 - 00069 75 41 jne SHORT $LN3@ObfCombine + 0007b 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 + 00080 75 41 jne SHORT $LN3@ObfCombine ; 99 : { ; 100 : delete Jcc; - 0006b 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] - 0006f 48 89 85 08 01 + 00082 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] + 00086 48 89 85 08 01 00 00 mov QWORD PTR $T1[rbp], rax - 00076 48 83 bd 08 01 + 0008d 48 83 bd 08 01 00 00 00 cmp QWORD PTR $T1[rbp], 0 - 0007e 74 1a je SHORT $LN5@ObfCombine - 00080 ba 01 00 00 00 mov edx, 1 - 00085 48 8b 8d 08 01 + 00095 74 1a je SHORT $LN5@ObfCombine + 00097 ba 01 00 00 00 mov edx, 1 + 0009c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR $T1[rbp] - 0008c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00091 48 89 85 98 01 + 000a3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000a8 48 89 85 98 01 00 00 mov QWORD PTR tv76[rbp], rax - 00098 eb 0b jmp SHORT $LN6@ObfCombine + 000af eb 0b jmp SHORT $LN6@ObfCombine $LN5@ObfCombine: - 0009a 48 c7 85 98 01 + 000b1 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN6@ObfCombine: ; 101 : return FALSE; - 000a5 33 c0 xor eax, eax - 000a7 e9 27 01 00 00 jmp $LN1@ObfCombine + 000bc 33 c0 xor eax, eax + 000be e9 27 01 00 00 jmp $LN1@ObfCombine $LN3@ObfCombine: ; 102 : } ; 103 : ; 104 : NcPrependToBlock(NotTaken, Jcc); - 000ac 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] - 000b0 48 8b 8d c0 01 + 000c3 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] + 000c7 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000b7 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 000ce e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 105 : NcAppendToBlock(NotTaken, Jmp); - 000bc 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] - 000c0 48 8b 8d c0 01 + 000d3 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] + 000d7 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000c7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000de e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 106 : ; 107 : NcPrependToBlock(Taken, new NATIVE_CODE_LINK(JccLabel, Taken)); - 000cc b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000d1 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000d6 48 89 85 48 01 + 000e3 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 000e8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000ed 48 89 85 48 01 00 00 mov QWORD PTR $T3[rbp], rax - 000dd 48 83 bd 48 01 + 000f4 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 000e5 74 22 je SHORT $LN7@ObfCombine - 000e7 4c 8b 85 c8 01 + 000fc 74 22 je SHORT $LN7@ObfCombine + 000fe 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 000ee 8b 95 d0 01 00 + 00105 8b 95 d0 01 00 00 mov edx, DWORD PTR JccLabel$[rbp] - 000f4 48 8b 8d 48 01 + 0010b 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 000fb e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00100 48 89 85 98 01 + 00112 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00117 48 89 85 98 01 00 00 mov QWORD PTR tv94[rbp], rax - 00107 eb 0b jmp SHORT $LN8@ObfCombine + 0011e eb 0b jmp SHORT $LN8@ObfCombine $LN7@ObfCombine: - 00109 48 c7 85 98 01 + 00120 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv94[rbp], 0 $LN8@ObfCombine: - 00114 48 8b 85 98 01 + 0012b 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv94[rbp] - 0011b 48 89 85 28 01 + 00132 48 89 85 28 01 00 00 mov QWORD PTR $T2[rbp], rax - 00122 48 8b 95 28 01 + 00139 48 8b 95 28 01 00 00 mov rdx, QWORD PTR $T2[rbp] - 00129 48 8b 8d c8 01 + 00140 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 00130 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 00147 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 108 : NcAppendToBlock(Taken, new NATIVE_CODE_LINK(JmpLabel, Taken)); - 00135 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0013a e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0013f 48 89 85 88 01 + 0014c b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00151 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00156 48 89 85 88 01 00 00 mov QWORD PTR $T5[rbp], rax - 00146 48 83 bd 88 01 + 0015d 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0014e 74 22 je SHORT $LN9@ObfCombine - 00150 4c 8b 85 c8 01 + 00165 74 22 je SHORT $LN9@ObfCombine + 00167 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 00157 8b 95 d8 01 00 + 0016e 8b 95 d8 01 00 00 mov edx, DWORD PTR JmpLabel$[rbp] - 0015d 48 8b 8d 88 01 + 00174 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00164 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00169 48 89 85 98 01 + 0017b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00180 48 89 85 98 01 00 00 mov QWORD PTR tv141[rbp], rax - 00170 eb 0b jmp SHORT $LN10@ObfCombine + 00187 eb 0b jmp SHORT $LN10@ObfCombine $LN9@ObfCombine: - 00172 48 c7 85 98 01 + 00189 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv141[rbp], 0 $LN10@ObfCombine: - 0017d 48 8b 85 98 01 + 00194 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv141[rbp] - 00184 48 89 85 68 01 + 0019b 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 0018b 48 8b 95 68 01 + 001a2 48 8b 95 68 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 00192 48 8b 8d c8 01 + 001a9 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 00199 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001b0 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 109 : ; 110 : NcInsertBlockAfter(NotTaken->End, Taken, FALSE); - 0019e 45 33 c0 xor r8d, r8d - 001a1 48 8b 95 c8 01 + 001b5 45 33 c0 xor r8d, r8d + 001b8 48 8b 95 c8 01 00 00 mov rdx, QWORD PTR Taken$[rbp] - 001a8 48 8b 85 c0 01 + 001bf 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001af 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 001b3 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + 001c6 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 001ca e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter ; 111 : NotTaken->End = Taken->End; - 001b8 48 8b 85 c0 01 + 001cf 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001bf 48 8b 8d c8 01 + 001d6 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 001c6 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 001ca 48 89 48 08 mov QWORD PTR [rax+8], rcx + 001dd 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 001e1 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 112 : return TRUE; - 001ce b8 01 00 00 00 mov eax, 1 + 001e5 b8 01 00 00 00 mov eax, 1 $LN1@ObfCombine: ; 113 : } - 001d3 48 8d a5 a8 01 + 001ea 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001da 5f pop rdi - 001db 5d pop rbp - 001dc c3 ret 0 + 001f1 5f pop rdi + 001f2 5d pop rbp + 001f3 c3 ret 0 ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ENDP ; ObfCombineOpaqueBranches _TEXT ENDS ; COMDAT text$x @@ -1324,7 +1347,7 @@ JmpLabel$ = 472 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T3[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1357,7 +1380,7 @@ JmpLabel$ = 472 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1391,7 +1414,7 @@ JmpLabel$ = 472 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T3[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1425,7 +1448,7 @@ JmpLabel$ = 472 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1436,7 +1459,7 @@ JmpLabel$ = 472 ?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4HA ENDP ; `ObfCombineOpaqueBranches'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z _TEXT SEGMENT tv74 = 192 @@ -1458,51 +1481,57 @@ $LN5: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8b fc mov rdi, rsp + 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 89 : return (NcDeepCopyPartialBlock(Start, End, Taken) && !NcDeepCopyPartialBlock(Start, End, NotTaken)); - 0002e 4c 8b 85 08 01 + 00045 4c 8b 85 08 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 00035 48 8b 95 f8 00 + 0004c 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 0003c 48 8b 8d f0 00 + 00053 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 00043 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 00048 85 c0 test eax, eax - 0004a 74 2a je SHORT $LN3@ObfCreateO - 0004c 4c 8b 85 00 01 + 0005a e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 0005f 85 c0 test eax, eax + 00061 74 2a je SHORT $LN3@ObfCreateO + 00063 4c 8b 85 00 01 00 00 mov r8, QWORD PTR NotTaken$[rbp] - 00053 48 8b 95 f8 00 + 0006a 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 0005a 48 8b 8d f0 00 + 00071 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 00061 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 00066 85 c0 test eax, eax - 00068 75 0c jne SHORT $LN3@ObfCreateO - 0006a c7 85 c0 00 00 + 00078 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 0007d 85 c0 test eax, eax + 0007f 75 0c jne SHORT $LN3@ObfCreateO + 00081 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv74[rbp], 1 - 00074 eb 0a jmp SHORT $LN4@ObfCreateO + 0008b eb 0a jmp SHORT $LN4@ObfCreateO $LN3@ObfCreateO: - 00076 c7 85 c0 00 00 + 0008d c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv74[rbp], 0 $LN4@ObfCreateO: - 00080 8b 85 c0 00 00 + 00097 8b 85 c0 00 00 00 mov eax, DWORD PTR tv74[rbp] ; 90 : } - 00086 48 8d a5 d8 00 + 0009d 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0008d 5f pop rdi - 0008e 5d pop rbp - 0008f c3 ret 0 + 000a4 5f pop rdi + 000a5 5d pop rbp + 000a6 c3 ret 0 ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ENDP ; ObfCreateOpaqueBranches _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1535,30 +1564,30 @@ $LN11: 0000b 48 81 ec 00 07 00 00 sub rsp, 1792 ; 00000700H 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00017 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0001c b9 24 01 00 00 mov ecx, 292 ; 00000124H - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 8b 8c 24 28 07 + 00017 48 8b fc mov rdi, rsp + 0001a b9 c0 01 00 00 mov ecx, 448 ; 000001c0H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 8b 8c 24 28 07 00 00 mov ecx, DWORD PTR [rsp+1832] - 0002f 48 8b 05 00 00 + 0002d 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 c0 06 + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 c0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 58 : XED_STATE MachineState; ; 59 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004c c7 45 08 01 00 + 0004a c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 60 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00053 c7 45 0c 08 00 + 00051 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 61 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1568,204 +1597,204 @@ $LN11: ; 65 : ; 66 : XedInst1(&EncoderInstruction, MachineState, XED_ICLASS_JMP, DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 0005a 44 8b 85 f8 06 + 00058 44 8b 85 f8 06 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 00061 33 d2 xor edx, edx - 00063 48 8d 8d c8 05 + 0005f 33 d2 xor edx, edx + 00061 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 0006a e8 00 00 00 00 call xed_relbr - 0006f 48 8d 8d 78 05 + 00068 e8 00 00 00 00 call xed_relbr + 0006d 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00076 48 8b f9 mov rdi, rcx - 00079 48 8b f0 mov rsi, rax - 0007c b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00081 f3 a4 rep movsb - 00083 48 8d 85 80 06 + 00074 48 8b f9 mov rdi, rcx + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 48 8d 85 80 06 00 00 lea rax, QWORD PTR $T13[rbp] - 0008a 48 8d 8d 78 05 + 00088 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00091 48 8b f8 mov rdi, rax - 00094 48 8b f1 mov rsi, rcx - 00097 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009c f3 a4 rep movsb - 0009e 48 8d 85 80 06 + 0008f 48 8b f8 mov rdi, rax + 00092 48 8b f1 mov rsi, rcx + 00095 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009a f3 a4 rep movsb + 0009c 48 8d 85 80 06 00 00 lea rax, QWORD PTR $T13[rbp] - 000a5 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000aa 44 8b 8d f8 06 + 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000a8 44 8b 8d f8 06 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000b1 41 b8 3c 01 00 + 000af 41 b8 3c 01 00 00 mov r8d, 316 ; 0000013cH - 000b7 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] - 000bb 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000bf e8 00 00 00 00 call xed_inst1 + 000b5 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] + 000b9 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000bd e8 00 00 00 00 call xed_inst1 ; 67 : ; 68 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000c4 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000c8 48 8d 8d f0 01 + 000c2 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000c6 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000cf e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000cd e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 69 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000d4 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000d8 48 8d 8d f0 01 + 000d2 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000d6 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000df e8 00 00 00 00 call xed_convert_to_encoder_request - 000e4 85 c0 test eax, eax - 000e6 75 07 jne SHORT $LN2@ObfGenJmpT + 000dd e8 00 00 00 00 call xed_convert_to_encoder_request + 000e2 85 c0 test eax, eax + 000e4 75 07 jne SHORT $LN2@ObfGenJmpT ; 70 : return NULL; - 000e8 33 c0 xor eax, eax - 000ea e9 30 01 00 00 jmp $LN1@ObfGenJmpT + 000e6 33 c0 xor eax, eax + 000e8 e9 30 01 00 00 jmp $LN1@ObfGenJmpT $LN2@ObfGenJmpT: ; 71 : ; 72 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 000ef 4c 8d 8d f4 02 + 000ed 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 000f6 41 b8 0f 00 00 + 000f4 41 b8 0f 00 00 00 mov r8d, 15 - 000fc 48 8d 95 c8 02 + 000fa 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 00103 48 8d 8d f0 01 + 00101 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 0010a e8 00 00 00 00 call xed_encode - 0010f 85 c0 test eax, eax - 00111 74 07 je SHORT $LN3@ObfGenJmpT + 00108 e8 00 00 00 00 call xed_encode + 0010d 85 c0 test eax, eax + 0010f 74 07 je SHORT $LN3@ObfGenJmpT ; 73 : return NULL; - 00113 33 c0 xor eax, eax - 00115 e9 05 01 00 00 jmp $LN1@ObfGenJmpT + 00111 33 c0 xor eax, eax + 00113 e9 05 01 00 00 jmp $LN1@ObfGenJmpT $LN3@ObfGenJmpT: ; 74 : ; 75 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); - 0011a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0011f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00124 48 89 85 38 06 + 00118 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 0011d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00122 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 0012b 48 83 bd 38 06 + 00129 48 83 bd 38 06 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00133 74 30 je SHORT $LN6@ObfGenJmpT - 00135 c7 44 24 20 00 + 00131 74 30 je SHORT $LN6@ObfGenJmpT + 00133 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0013d 44 8b 8d f4 02 + 0013b 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 00144 4c 8d 85 c8 02 + 00142 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 0014b ba 04 00 00 00 mov edx, 4 - 00150 48 8b 8d 38 06 + 00149 ba 04 00 00 00 mov edx, 4 + 0014e 48 8b 8d 38 06 00 00 mov rcx, QWORD PTR $T11[rbp] - 00157 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0015c 48 89 85 b8 06 + 00155 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0015a 48 89 85 b8 06 00 00 mov QWORD PTR tv133[rbp], rax - 00163 eb 0b jmp SHORT $LN7@ObfGenJmpT + 00161 eb 0b jmp SHORT $LN7@ObfGenJmpT $LN6@ObfGenJmpT: - 00165 48 c7 85 b8 06 + 00163 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv133[rbp], 0 $LN7@ObfGenJmpT: - 00170 48 8b 85 b8 06 + 0016e 48 8b 85 b8 06 00 00 mov rax, QWORD PTR tv133[rbp] - 00177 48 89 85 18 06 + 00175 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 0017e 48 8b 85 18 06 + 0017c 48 8b 85 18 06 00 00 mov rax, QWORD PTR $T10[rbp] - 00185 48 89 85 18 03 + 00183 48 89 85 18 03 00 00 mov QWORD PTR Link$[rbp], rax ; 76 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) - 0018c 48 8b 85 18 03 + 0018a 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00193 48 83 c0 30 add rax, 48 ; 00000030H - 00197 48 8b 8d 18 03 + 00191 48 83 c0 30 add rax, 48 ; 00000030H + 00195 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0019e 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001a2 48 8b 8d 18 03 + 0019c 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001a0 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001a9 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 001ad 48 8b c8 mov rcx, rax - 001b0 e8 00 00 00 00 call xed_decode - 001b5 85 c0 test eax, eax - 001b7 74 41 je SHORT $LN4@ObfGenJmpT + 001a7 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001ab 48 8b c8 mov rcx, rax + 001ae e8 00 00 00 00 call xed_decode + 001b3 85 c0 test eax, eax + 001b5 74 41 je SHORT $LN4@ObfGenJmpT ; 77 : { ; 78 : delete Link; - 001b9 48 8b 85 18 03 + 001b7 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001c0 48 89 85 58 06 + 001be 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 001c7 48 83 bd 58 06 + 001c5 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 001cf 74 1a je SHORT $LN8@ObfGenJmpT - 001d1 ba 01 00 00 00 mov edx, 1 - 001d6 48 8b 8d 58 06 + 001cd 74 1a je SHORT $LN8@ObfGenJmpT + 001cf ba 01 00 00 00 mov edx, 1 + 001d4 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 001dd e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001e2 48 89 85 b8 06 + 001db e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001e0 48 89 85 b8 06 00 00 mov QWORD PTR tv145[rbp], rax - 001e9 eb 0b jmp SHORT $LN9@ObfGenJmpT + 001e7 eb 0b jmp SHORT $LN9@ObfGenJmpT $LN8@ObfGenJmpT: - 001eb 48 c7 85 b8 06 + 001e9 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv145[rbp], 0 $LN9@ObfGenJmpT: ; 79 : return NULL; - 001f6 33 c0 xor eax, eax - 001f8 eb 25 jmp SHORT $LN1@ObfGenJmpT + 001f4 33 c0 xor eax, eax + 001f6 eb 25 jmp SHORT $LN1@ObfGenJmpT $LN4@ObfGenJmpT: ; 80 : } ; 81 : Link->Label = LabelId; - 001fa 48 8b 85 18 03 + 001f8 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00201 8b 8d f0 06 00 + 001ff 8b 8d f0 06 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00207 89 48 1c mov DWORD PTR [rax+28], ecx + 00205 89 48 1c mov DWORD PTR [rax+28], ecx ; 82 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 0020a 48 8b 85 18 03 + 00208 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00211 c7 40 18 06 00 + 0020f c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 83 : ; 84 : return Link; - 00218 48 8b 85 18 03 + 00216 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenJmpT: ; 85 : } - 0021f 48 8b f8 mov rdi, rax - 00222 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00226 48 8d 15 00 00 + 0021d 48 8b f8 mov rdi, rax + 00220 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00224 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 0022d e8 00 00 00 00 call _RTC_CheckStackVars - 00232 48 8b c7 mov rax, rdi - 00235 48 8b 8d c0 06 + 0022b e8 00 00 00 00 call _RTC_CheckStackVars + 00230 48 8b c7 mov rax, rdi + 00233 48 8b 8d c0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0023c 48 33 cd xor rcx, rbp - 0023f e8 00 00 00 00 call __security_check_cookie - 00244 48 8d a5 d0 06 + 0023a 48 33 cd xor rcx, rbp + 0023d e8 00 00 00 00 call __security_check_cookie + 00242 48 8d a5 d0 06 00 00 lea rsp, QWORD PTR [rbp+1744] - 0024b 5f pop rdi - 0024c 5e pop rsi - 0024d 5d pop rbp - 0024e c3 ret 0 + 00249 5f pop rdi + 0024a 5e pop rsi + 0024b 5d pop rbp + 0024c c3 ret 0 ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenJmpToLabel _TEXT ENDS ; COMDAT text$x @@ -1794,7 +1823,7 @@ DisplacementWidth$ = 1784 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 06 00 00 mov rcx, QWORD PTR $T11[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1831,7 +1860,7 @@ DisplacementWidth$ = 1784 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 06 00 00 mov rcx, QWORD PTR $T11[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1842,7 +1871,7 @@ DisplacementWidth$ = 1784 ?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenJmpToLabel'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1877,30 +1906,30 @@ $LN11: 0000b 48 81 ec 20 07 00 00 sub rsp, 1824 ; 00000720H 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00017 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 0001c b9 2c 01 00 00 mov ecx, 300 ; 0000012cH - 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00026 f3 ab rep stosd - 00028 8b 8c 24 48 07 + 00017 48 8b fc mov rdi, rsp + 0001a b9 c8 01 00 00 mov ecx, 456 ; 000001c8H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 8b 8c 24 48 07 00 00 mov ecx, DWORD PTR [rsp+1864] - 0002f 48 8b 05 00 00 + 0002d 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 e0 06 + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 e0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 27 : XED_STATE MachineState; ; 28 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004c c7 45 08 01 00 + 0004a c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 29 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00053 c7 45 0c 08 00 + 00051 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 30 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1910,211 +1939,211 @@ $LN11: ; 34 : ; 35 : XedInst1(&EncoderInstruction, MachineState, ObfGetRandomJccClass(), DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 0005a 44 8b 85 18 07 + 00058 44 8b 85 18 07 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 00061 33 d2 xor edx, edx - 00063 48 8d 8d c8 05 + 0005f 33 d2 xor edx, edx + 00061 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 0006a e8 00 00 00 00 call xed_relbr - 0006f 48 8d 8d 78 05 + 00068 e8 00 00 00 00 call xed_relbr + 0006d 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00076 48 8b f9 mov rdi, rcx - 00079 48 8b f0 mov rsi, rax - 0007c b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00081 f3 a4 rep movsb - 00083 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass - 00088 89 85 d4 06 00 + 00074 48 8b f9 mov rdi, rcx + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass + 00086 89 85 d4 06 00 00 mov DWORD PTR tv77[rbp], eax - 0008e 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] - 00092 48 89 85 18 06 + 0008c 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] + 00090 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 00099 48 8d 85 a0 06 + 00097 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 000a0 48 8d 8d 78 05 + 0009e 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 000a7 48 8b f8 mov rdi, rax - 000aa 48 8b f1 mov rsi, rcx - 000ad b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b2 f3 a4 rep movsb - 000b4 48 8d 85 a0 06 + 000a5 48 8b f8 mov rdi, rax + 000a8 48 8b f1 mov rsi, rcx + 000ab b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b0 f3 a4 rep movsb + 000b2 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 000bb 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000c0 44 8b 8d 18 07 + 000b9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000be 44 8b 8d 18 07 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000c7 44 8b 85 d4 06 + 000c5 44 8b 85 d4 06 00 00 mov r8d, DWORD PTR tv77[rbp] - 000ce 48 8b 95 18 06 + 000cc 48 8b 95 18 06 00 00 mov rdx, QWORD PTR $T10[rbp] - 000d5 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000d9 e8 00 00 00 00 call xed_inst1 + 000d3 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000d7 e8 00 00 00 00 call xed_inst1 ; 36 : ; 37 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000de 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000e2 48 8d 8d f0 01 + 000dc 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000e0 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000e9 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000e7 e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 38 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000ee 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000f2 48 8d 8d f0 01 + 000ec 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000f0 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000f9 e8 00 00 00 00 call xed_convert_to_encoder_request - 000fe 85 c0 test eax, eax - 00100 75 07 jne SHORT $LN2@ObfGenRand + 000f7 e8 00 00 00 00 call xed_convert_to_encoder_request + 000fc 85 c0 test eax, eax + 000fe 75 07 jne SHORT $LN2@ObfGenRand ; 39 : return NULL; - 00102 33 c0 xor eax, eax - 00104 e9 30 01 00 00 jmp $LN1@ObfGenRand + 00100 33 c0 xor eax, eax + 00102 e9 30 01 00 00 jmp $LN1@ObfGenRand $LN2@ObfGenRand: ; 40 : ; 41 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 00109 4c 8d 8d f4 02 + 00107 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 00110 41 b8 0f 00 00 + 0010e 41 b8 0f 00 00 00 mov r8d, 15 - 00116 48 8d 95 c8 02 + 00114 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 0011d 48 8d 8d f0 01 + 0011b 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 00124 e8 00 00 00 00 call xed_encode - 00129 85 c0 test eax, eax - 0012b 74 07 je SHORT $LN3@ObfGenRand + 00122 e8 00 00 00 00 call xed_encode + 00127 85 c0 test eax, eax + 00129 74 07 je SHORT $LN3@ObfGenRand ; 42 : return NULL; - 0012d 33 c0 xor eax, eax - 0012f e9 05 01 00 00 jmp $LN1@ObfGenRand + 0012b 33 c0 xor eax, eax + 0012d e9 05 01 00 00 jmp $LN1@ObfGenRand $LN3@ObfGenRand: ; 43 : ; 44 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); - 00134 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00139 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0013e 48 89 85 58 06 + 00132 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00137 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0013c 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 00145 48 83 bd 58 06 + 00143 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 0014d 74 30 je SHORT $LN6@ObfGenRand - 0014f c7 44 24 20 00 + 0014b 74 30 je SHORT $LN6@ObfGenRand + 0014d c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00157 44 8b 8d f4 02 + 00155 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 0015e 4c 8d 85 c8 02 + 0015c 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 00165 ba 04 00 00 00 mov edx, 4 - 0016a 48 8b 8d 58 06 + 00163 ba 04 00 00 00 mov edx, 4 + 00168 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 00171 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00176 48 89 85 d8 06 + 0016f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00174 48 89 85 d8 06 00 00 mov QWORD PTR tv137[rbp], rax - 0017d eb 0b jmp SHORT $LN7@ObfGenRand + 0017b eb 0b jmp SHORT $LN7@ObfGenRand $LN6@ObfGenRand: - 0017f 48 c7 85 d8 06 + 0017d 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv137[rbp], 0 $LN7@ObfGenRand: - 0018a 48 8b 85 d8 06 + 00188 48 8b 85 d8 06 00 00 mov rax, QWORD PTR tv137[rbp] - 00191 48 89 85 38 06 + 0018f 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 00198 48 8b 85 38 06 + 00196 48 8b 85 38 06 00 00 mov rax, QWORD PTR $T11[rbp] - 0019f 48 89 85 18 03 + 0019d 48 89 85 18 03 00 00 mov QWORD PTR Link$[rbp], rax ; 45 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) - 001a6 48 8b 85 18 03 + 001a4 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001ad 48 83 c0 30 add rax, 48 ; 00000030H - 001b1 48 8b 8d 18 03 + 001ab 48 83 c0 30 add rax, 48 ; 00000030H + 001af 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001b8 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001bc 48 8b 8d 18 03 + 001b6 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001ba 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001c3 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 001c7 48 8b c8 mov rcx, rax - 001ca e8 00 00 00 00 call xed_decode - 001cf 85 c0 test eax, eax - 001d1 74 41 je SHORT $LN4@ObfGenRand + 001c1 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001c5 48 8b c8 mov rcx, rax + 001c8 e8 00 00 00 00 call xed_decode + 001cd 85 c0 test eax, eax + 001cf 74 41 je SHORT $LN4@ObfGenRand ; 46 : { ; 47 : delete Link; - 001d3 48 8b 85 18 03 + 001d1 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001da 48 89 85 78 06 + 001d8 48 89 85 78 06 00 00 mov QWORD PTR $T13[rbp], rax - 001e1 48 83 bd 78 06 + 001df 48 83 bd 78 06 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e9 74 1a je SHORT $LN8@ObfGenRand - 001eb ba 01 00 00 00 mov edx, 1 - 001f0 48 8b 8d 78 06 + 001e7 74 1a je SHORT $LN8@ObfGenRand + 001e9 ba 01 00 00 00 mov edx, 1 + 001ee 48 8b 8d 78 06 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f7 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001fc 48 89 85 d8 06 + 001f5 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001fa 48 89 85 d8 06 00 00 mov QWORD PTR tv149[rbp], rax - 00203 eb 0b jmp SHORT $LN9@ObfGenRand + 00201 eb 0b jmp SHORT $LN9@ObfGenRand $LN8@ObfGenRand: - 00205 48 c7 85 d8 06 + 00203 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv149[rbp], 0 $LN9@ObfGenRand: ; 48 : return NULL; - 00210 33 c0 xor eax, eax - 00212 eb 25 jmp SHORT $LN1@ObfGenRand + 0020e 33 c0 xor eax, eax + 00210 eb 25 jmp SHORT $LN1@ObfGenRand $LN4@ObfGenRand: ; 49 : } ; 50 : Link->Label = LabelId; - 00214 48 8b 85 18 03 + 00212 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0021b 8b 8d 10 07 00 + 00219 8b 8d 10 07 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00221 89 48 1c mov DWORD PTR [rax+28], ecx + 0021f 89 48 1c mov DWORD PTR [rax+28], ecx ; 51 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 00224 48 8b 85 18 03 + 00222 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0022b c7 40 18 06 00 + 00229 c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 52 : ; 53 : return Link; - 00232 48 8b 85 18 03 + 00230 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenRand: ; 54 : } - 00239 48 8b f8 mov rdi, rax - 0023c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00240 48 8d 15 00 00 + 00237 48 8b f8 mov rdi, rax + 0023a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0023e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 00247 e8 00 00 00 00 call _RTC_CheckStackVars - 0024c 48 8b c7 mov rax, rdi - 0024f 48 8b 8d e0 06 + 00245 e8 00 00 00 00 call _RTC_CheckStackVars + 0024a 48 8b c7 mov rax, rdi + 0024d 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00256 48 33 cd xor rcx, rbp - 00259 e8 00 00 00 00 call __security_check_cookie - 0025e 48 8d a5 f0 06 + 00254 48 33 cd xor rcx, rbp + 00257 e8 00 00 00 00 call __security_check_cookie + 0025c 48 8d a5 f0 06 00 00 lea rsp, QWORD PTR [rbp+1776] - 00265 5f pop rdi - 00266 5e pop rsi - 00267 5d pop rbp - 00268 c3 ret 0 + 00263 5f pop rdi + 00264 5e pop rsi + 00265 5d pop rbp + 00266 c3 ret 0 ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenRandomJcc _TEXT ENDS ; COMDAT text$x @@ -2145,7 +2174,7 @@ DisplacementWidth$ = 1816 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -2184,7 +2213,7 @@ DisplacementWidth$ = 1816 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -2195,7 +2224,7 @@ DisplacementWidth$ = 1816 ?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenRandomJcc'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ _TEXT SEGMENT tv66 = 192 @@ -2209,148 +2238,151 @@ $LN20: 00003 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : switch (rand() % 14) - 0001b ff 15 00 00 00 + 0002a ff 15 00 00 00 00 call QWORD PTR __imp_rand - 00021 99 cdq - 00022 b9 0e 00 00 00 mov ecx, 14 - 00027 f7 f9 idiv ecx - 00029 8b c2 mov eax, edx - 0002b 89 85 c0 00 00 + 00030 99 cdq + 00031 b9 0e 00 00 00 mov ecx, 14 + 00036 f7 f9 idiv ecx + 00038 8b c2 mov eax, edx + 0003a 89 85 c0 00 00 00 mov DWORD PTR tv66[rbp], eax - 00031 83 bd c0 00 00 + 00040 83 bd c0 00 00 00 0e cmp DWORD PTR tv66[rbp], 14 - 00038 77 7c ja SHORT $LN2@ObfGetRand - 0003a 48 63 85 c0 00 + 00047 77 7c ja SHORT $LN2@ObfGetRand + 00049 48 63 85 c0 00 00 00 movsxd rax, DWORD PTR tv66[rbp] - 00041 48 8d 0d 00 00 + 00050 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase - 00048 8b 84 81 00 00 + 00057 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN19@ObfGetRand[rcx+rax*4] - 0004f 48 03 c1 add rax, rcx - 00052 ff e0 jmp rax + 0005e 48 03 c1 add rax, rcx + 00061 ff e0 jmp rax $LN4@ObfGetRand: ; 6 : { ; 7 : case 0: return XED_ICLASS_JL; - 00054 b8 3a 01 00 00 mov eax, 314 ; 0000013aH - 00059 eb 60 jmp SHORT $LN1@ObfGetRand + 00063 b8 3a 01 00 00 mov eax, 314 ; 0000013aH + 00068 eb 60 jmp SHORT $LN1@ObfGetRand $LN5@ObfGetRand: ; 8 : case 1: return XED_ICLASS_JLE; - 0005b b8 3b 01 00 00 mov eax, 315 ; 0000013bH - 00060 eb 59 jmp SHORT $LN1@ObfGetRand + 0006a b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 0006f eb 59 jmp SHORT $LN1@ObfGetRand $LN6@ObfGetRand: ; 9 : case 2: return XED_ICLASS_JNB; - 00062 b8 3e 01 00 00 mov eax, 318 ; 0000013eH - 00067 eb 52 jmp SHORT $LN1@ObfGetRand + 00071 b8 3e 01 00 00 mov eax, 318 ; 0000013eH + 00076 eb 52 jmp SHORT $LN1@ObfGetRand $LN7@ObfGetRand: ; 10 : case 3: return XED_ICLASS_JNBE; - 00069 b8 3f 01 00 00 mov eax, 319 ; 0000013fH - 0006e eb 4b jmp SHORT $LN1@ObfGetRand + 00078 b8 3f 01 00 00 mov eax, 319 ; 0000013fH + 0007d eb 4b jmp SHORT $LN1@ObfGetRand $LN8@ObfGetRand: ; 11 : case 4: return XED_ICLASS_JNL; - 00070 b8 40 01 00 00 mov eax, 320 ; 00000140H - 00075 eb 44 jmp SHORT $LN1@ObfGetRand + 0007f b8 40 01 00 00 mov eax, 320 ; 00000140H + 00084 eb 44 jmp SHORT $LN1@ObfGetRand $LN9@ObfGetRand: ; 12 : case 5: return XED_ICLASS_JNLE; - 00077 b8 41 01 00 00 mov eax, 321 ; 00000141H - 0007c eb 3d jmp SHORT $LN1@ObfGetRand + 00086 b8 41 01 00 00 mov eax, 321 ; 00000141H + 0008b eb 3d jmp SHORT $LN1@ObfGetRand $LN10@ObfGetRand: ; 13 : case 6: return XED_ICLASS_JNO; - 0007e b8 42 01 00 00 mov eax, 322 ; 00000142H - 00083 eb 36 jmp SHORT $LN1@ObfGetRand + 0008d b8 42 01 00 00 mov eax, 322 ; 00000142H + 00092 eb 36 jmp SHORT $LN1@ObfGetRand $LN11@ObfGetRand: ; 14 : case 7: return XED_ICLASS_JNP; - 00085 b8 43 01 00 00 mov eax, 323 ; 00000143H - 0008a eb 2f jmp SHORT $LN1@ObfGetRand + 00094 b8 43 01 00 00 mov eax, 323 ; 00000143H + 00099 eb 2f jmp SHORT $LN1@ObfGetRand $LN12@ObfGetRand: ; 15 : case 8: return XED_ICLASS_JNS; - 0008c b8 44 01 00 00 mov eax, 324 ; 00000144H - 00091 eb 28 jmp SHORT $LN1@ObfGetRand + 0009b b8 44 01 00 00 mov eax, 324 ; 00000144H + 000a0 eb 28 jmp SHORT $LN1@ObfGetRand $LN13@ObfGetRand: ; 16 : case 9: return XED_ICLASS_JNZ; - 00093 b8 45 01 00 00 mov eax, 325 ; 00000145H - 00098 eb 21 jmp SHORT $LN1@ObfGetRand + 000a2 b8 45 01 00 00 mov eax, 325 ; 00000145H + 000a7 eb 21 jmp SHORT $LN1@ObfGetRand $LN14@ObfGetRand: ; 17 : case 10: return XED_ICLASS_JO; - 0009a b8 46 01 00 00 mov eax, 326 ; 00000146H - 0009f eb 1a jmp SHORT $LN1@ObfGetRand + 000a9 b8 46 01 00 00 mov eax, 326 ; 00000146H + 000ae eb 1a jmp SHORT $LN1@ObfGetRand $LN15@ObfGetRand: ; 18 : case 11: return XED_ICLASS_JP; - 000a1 b8 47 01 00 00 mov eax, 327 ; 00000147H - 000a6 eb 13 jmp SHORT $LN1@ObfGetRand + 000b0 b8 47 01 00 00 mov eax, 327 ; 00000147H + 000b5 eb 13 jmp SHORT $LN1@ObfGetRand $LN16@ObfGetRand: ; 19 : case 13: return XED_ICLASS_JS; - 000a8 b8 49 01 00 00 mov eax, 329 ; 00000149H - 000ad eb 0c jmp SHORT $LN1@ObfGetRand + 000b7 b8 49 01 00 00 mov eax, 329 ; 00000149H + 000bc eb 0c jmp SHORT $LN1@ObfGetRand $LN17@ObfGetRand: ; 20 : case 14: return XED_ICLASS_JZ; - 000af b8 4a 01 00 00 mov eax, 330 ; 0000014aH - 000b4 eb 05 jmp SHORT $LN1@ObfGetRand + 000be b8 4a 01 00 00 mov eax, 330 ; 0000014aH + 000c3 eb 05 jmp SHORT $LN1@ObfGetRand $LN2@ObfGetRand: ; 21 : } ; 22 : return XED_ICLASS_JLE; - 000b6 b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 000c5 b8 3b 01 00 00 mov eax, 315 ; 0000013bH $LN1@ObfGetRand: ; 23 : } - 000bb 48 8d a5 d8 00 + 000ca 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 - 000c5 0f 1f 00 npad 3 + 000d1 5f pop rdi + 000d2 5d pop rbp + 000d3 c3 ret 0 $LN19@ObfGetRand: - 000c8 00 00 00 00 DD $LN4@ObfGetRand - 000cc 00 00 00 00 DD $LN5@ObfGetRand - 000d0 00 00 00 00 DD $LN6@ObfGetRand - 000d4 00 00 00 00 DD $LN7@ObfGetRand - 000d8 00 00 00 00 DD $LN8@ObfGetRand - 000dc 00 00 00 00 DD $LN9@ObfGetRand - 000e0 00 00 00 00 DD $LN10@ObfGetRand - 000e4 00 00 00 00 DD $LN11@ObfGetRand - 000e8 00 00 00 00 DD $LN12@ObfGetRand - 000ec 00 00 00 00 DD $LN13@ObfGetRand - 000f0 00 00 00 00 DD $LN14@ObfGetRand - 000f4 00 00 00 00 DD $LN15@ObfGetRand - 000f8 00 00 00 00 DD $LN2@ObfGetRand - 000fc 00 00 00 00 DD $LN16@ObfGetRand - 00100 00 00 00 00 DD $LN17@ObfGetRand + 000d4 00 00 00 00 DD $LN4@ObfGetRand + 000d8 00 00 00 00 DD $LN5@ObfGetRand + 000dc 00 00 00 00 DD $LN6@ObfGetRand + 000e0 00 00 00 00 DD $LN7@ObfGetRand + 000e4 00 00 00 00 DD $LN8@ObfGetRand + 000e8 00 00 00 00 DD $LN9@ObfGetRand + 000ec 00 00 00 00 DD $LN10@ObfGetRand + 000f0 00 00 00 00 DD $LN11@ObfGetRand + 000f4 00 00 00 00 DD $LN12@ObfGetRand + 000f8 00 00 00 00 DD $LN13@ObfGetRand + 000fc 00 00 00 00 DD $LN14@ObfGetRand + 00100 00 00 00 00 DD $LN15@ObfGetRand + 00104 00 00 00 00 DD $LN2@ObfGetRand + 00108 00 00 00 00 DD $LN16@ObfGetRand + 0010c 00 00 00 00 DD $LN17@ObfGetRand ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ENDP ; ObfGetRandomJccClass _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2367,30 +2399,36 @@ $LN4: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b 8d e0 00 + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00035 48 8b 8d e0 00 + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 11 je SHORT $LN2@scalar + 00047 ba 10 01 00 00 mov edx, 272 ; 00000110H + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -2412,80 +2450,86 @@ xed_inst1 PROC ; COMDAT 00017 48 81 ec e0 00 00 00 sub rsp, 224 ; 000000e0H 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00023 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h - 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b fc mov rdi, rsp + 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H + 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00030 f3 ab rep stosd + 00032 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0003a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h + 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 0002f 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00036 48 8b 8d e8 00 + 0004d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 0003d 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00040 48 8b 85 e0 00 + 00057 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00047 8b 8d f0 00 00 + 0005e 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 0004d 89 48 08 mov DWORD PTR [rax+8], ecx + 00064 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00050 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00057 8b 8d f8 00 00 + 0006e 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 0005d 89 48 0c mov DWORD PTR [rax+12], ecx + 00074 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00060 48 8b 85 e0 00 + 00077 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00067 c7 40 10 00 00 + 0007e c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 0006e 48 8b 85 e0 00 + 00085 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00075 c7 40 14 00 00 + 0008c c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 0007c b8 30 00 00 00 mov eax, 48 ; 00000030H - 00081 48 6b c0 00 imul rax, rax, 0 - 00085 48 8b 8d e0 00 + 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H + 00098 48 6b c0 00 imul rax, rax, 0 + 0009c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR inst$[rbp] - 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 00091 48 8b b5 00 01 + 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 000a8 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009d f3 a4 rep movsb + 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b4 f3 a4 rep movsb ; 498 : inst->noperands = 1; - 0009f 48 8b 85 e0 00 + 000b6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000a6 c7 40 18 01 00 + 000bd c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000ad 48 8d a5 c0 00 + 000c4 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000cb 5f pop rdi + 000cc 5e pop rsi + 000cd 5d pop rbp + 000ce c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -2506,72 +2550,72 @@ xed_relbr PROC ; COMDAT 00011 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00022 b9 14 00 00 00 mov ecx, 20 - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 08 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00053 c7 45 08 01 00 + 00051 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 0005a 8b 85 38 01 00 + 00058 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax + 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00063 8b 85 40 01 00 + 00061 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 00070 48 8b bd 30 01 + 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 0006e 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 00077 48 8b f0 mov rsi, rax - 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007f f3 a4 rep movsb - 00081 48 8b 85 30 01 + 00075 48 8b f0 mov rsi, rax + 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007d f3 a4 rep movsb + 0007f 48 8b 85 30 01 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00088 48 8b f8 mov rdi, rax - 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008f 48 8d 15 00 00 + 00086 48 8b f8 mov rdi, rax + 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00096 e8 00 00 00 00 call _RTC_CheckStackVars - 0009b 48 8b c7 mov rax, rdi - 0009e 48 8b 8d 08 01 + 00094 e8 00 00 00 00 call _RTC_CheckStackVars + 00099 48 8b c7 mov rax, rdi + 0009c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a5 48 33 cd xor rcx, rbp - 000a8 e8 00 00 00 00 call __security_check_cookie - 000ad 48 8d a5 10 01 + 000a3 48 33 cd xor rcx, rbp + 000a6 e8 00 00 00 00 call __security_check_cookie + 000ab 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000b2 5f pop rdi + 000b3 5e pop rsi + 000b4 5d pop rbp + 000b5 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -2582,7 +2626,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2594,141 +2638,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -2739,7 +2789,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2751,141 +2801,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -2896,7 +2952,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2907,98 +2963,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -3015,73 +3077,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3100,7 +3168,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3111,251 +3179,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -3378,34 +3446,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3422,18 +3496,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3448,18 +3529,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -3474,18 +3562,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -3498,14 +3593,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipAndInst.cod b/CodeVirtualizer/x64/Debug/RipAndInst.cod index abd52da..75b17e6 100644 --- a/CodeVirtualizer/x64/Debug/RipAndInst.cod +++ b/CodeVirtualizer/x64/Debug/RipAndInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__4D8C5412_RipAndInst@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__FA14AA08_RipAndInst@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,9 @@ PUBLIC ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRela PUBLIC ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW PUBLIC ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -123,6 +122,7 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+379 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+375 DD imagerel $unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+368 + DD imagerel $LN6+366 DD imagerel $unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0157H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,7 @@ $cppxdata$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0160H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,7 @@ $cppxdata$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0162H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -412,7 +382,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '-', 02H + DB '%', 02H DB 02H DB 09eH DB 00H @@ -431,7 +401,7 @@ $cppxdata$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -604,125 +621,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 a8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00056 c6 45 05 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H - 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00054 c6 45 05 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H + 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00078 48 89 85 28 01 + 0006c b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00076 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0009b ba 0c 00 00 00 mov edx, 12 - 000a0 48 8b 8d 28 01 + 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00099 ba 0c 00 00 00 mov edx, 12 + 0009e 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000ac 48 89 85 38 01 + 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000aa 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d9 b8 01 00 00 00 mov eax, 1 - 000de 48 6b c0 02 imul rax, rax, 2 - 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000ea 8b 95 78 01 00 + 000d7 b8 01 00 00 00 mov eax, 1 + 000dc 48 6b c0 02 imul rax, rax, 2 + 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e8 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f3 b8 01 00 00 00 mov eax, 1 - 000f8 48 6b c0 06 imul rax, rax, 6 - 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00104 0f b6 95 80 01 + 000f1 b8 01 00 00 00 mov eax, 1 + 000f6 48 6b c0 06 imul rax, rax, 6 + 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00102 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00112 48 83 c0 30 add rax, 48 ; 00000030H - 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00126 48 8b c8 mov rcx, rax - 00129 e8 00 00 00 00 call xed_decode + 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00110 48 83 c0 30 add rax, 48 ; 00000030H + 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00124 48 8b c8 mov rcx, rax + 00127 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00132 48 8b 8d 70 01 + 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00130 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013e b8 01 00 00 00 mov eax, 1 + 0013c b8 01 00 00 00 mov eax, 1 ; 37 : } - 00143 8b f8 mov edi, eax - 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00149 48 8d 15 00 00 + 00141 8b f8 mov edi, eax + 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00147 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00150 e8 00 00 00 00 call _RTC_CheckStackVars - 00155 8b c7 mov eax, edi - 00157 48 8b 8d 40 01 + 0014e e8 00 00 00 00 call _RTC_CheckStackVars + 00153 8b c7 mov eax, edi + 00155 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015e 48 33 cd xor rcx, rbp - 00161 e8 00 00 00 00 call __security_check_cookie - 00166 48 8d a5 58 01 + 0015c 48 33 cd xor rcx, rbp + 0015f e8 00 00 00 00 call __security_check_cookie + 00164 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016d 5f pop rdi - 0016e 5d pop rbp - 0016f c3 ret 0 + 0016b 5f pop rdi + 0016c 5d pop rbp + 0016d c3 ret 0 ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndB _TEXT ENDS ; COMDAT text$x @@ -743,7 +760,7 @@ Value$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -772,7 +789,7 @@ Value$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -783,7 +800,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -808,127 +825,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00056 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H - 0005a c6 45 0a 25 mov BYTE PTR RawData$[rbp+2], 37 ; 00000025H - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00054 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H + 00058 c6 45 0a 25 mov BYTE PTR RawData$[rbp+2], 37 ; 00000025H + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00080 48 89 85 38 01 + 00074 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0007e 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a3 ba 0c 00 00 00 mov edx, 12 - 000a8 48 8b 8d 38 01 + 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a1 ba 0c 00 00 00 mov edx, 12 + 000a6 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b4 48 89 85 48 01 + 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b2 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000e1 b8 01 00 00 00 mov eax, 1 - 000e6 48 6b c0 03 imul rax, rax, 3 - 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f2 8b 95 88 01 00 + 000df b8 01 00 00 00 mov eax, 1 + 000e4 48 6b c0 03 imul rax, rax, 3 + 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f0 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000fb b8 01 00 00 00 mov eax, 1 - 00100 48 6b c0 07 imul rax, rax, 7 - 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010c 0f b7 95 90 01 + 000f9 b8 01 00 00 00 mov eax, 1 + 000fe 48 6b c0 07 imul rax, rax, 7 + 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010a 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00119 48 83 c0 30 add rax, 48 ; 00000030H + 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012d 48 8b c8 mov rcx, rax + 00130 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00139 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00145 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014a 8b f8 mov edi, eax + 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00150 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 00157 e8 00 00 00 00 call _RTC_CheckStackVars + 0015c 8b c7 mov eax, edi + 0015e 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00165 48 33 cd xor rcx, rbp + 00168 e8 00 00 00 00 call __security_check_cookie + 0016d 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00174 5f pop rdi + 00175 5d pop rbp + 00176 c3 ret 0 ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndW _TEXT ENDS ; COMDAT text$x @@ -949,7 +966,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -978,7 +995,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -989,7 +1006,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1014,128 +1031,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00056 c6 45 09 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H - 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00054 c6 45 09 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H + 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00084 48 89 85 38 01 + 00078 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00082 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a7 ba 0c 00 00 00 mov edx, 12 - 000ac 48 8b 8d 38 01 + 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a5 ba 0c 00 00 00 mov edx, 12 + 000aa 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b8 48 89 85 48 01 + 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b6 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e5 b8 01 00 00 00 mov eax, 1 - 000ea 48 6b c0 02 imul rax, rax, 2 - 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f6 8b 95 88 01 00 + 000e3 b8 01 00 00 00 mov eax, 1 + 000e8 48 6b c0 02 imul rax, rax, 2 + 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f4 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000ff b8 01 00 00 00 mov eax, 1 - 00104 48 6b c0 06 imul rax, rax, 6 - 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00110 8b 95 90 01 00 + 000fd b8 01 00 00 00 mov eax, 1 + 00102 48 6b c0 06 imul rax, rax, 6 + 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010e 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00116 89 14 08 mov DWORD PTR [rax+rcx], edx + 00114 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011d 48 83 c0 30 add rax, 48 ; 00000030H - 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00131 48 8b c8 mov rcx, rax - 00134 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013d 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00149 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014e 8b f8 mov edi, eax - 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00154 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0015b e8 00 00 00 00 call _RTC_CheckStackVars - 00160 8b c7 mov eax, edi - 00162 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00169 48 33 cd xor rcx, rbp - 0016c e8 00 00 00 00 call __security_check_cookie - 00171 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00178 5f pop rdi - 00179 5d pop rbp - 0017a c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndD _TEXT ENDS ; COMDAT text$x @@ -1156,7 +1173,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1185,7 +1202,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1196,7 +1213,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1207,7 +1224,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1219,141 +1236,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1364,7 +1387,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1376,141 +1399,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1521,7 +1550,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1532,98 +1561,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1640,73 +1675,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1725,7 +1766,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1736,251 +1777,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2003,34 +2044,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2047,18 +2094,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2073,18 +2127,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2099,18 +2160,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2123,14 +2191,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipMovInst.cod b/CodeVirtualizer/x64/Debug/RipMovInst.cod index 5e96e34..965d0a6 100644 --- a/CodeVirtualizer/x64/Debug/RipMovInst.cod +++ b/CodeVirtualizer/x64/Debug/RipMovInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__2A62C71C_RipMovInst@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__9DFA3906_RipMovInst@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,9 @@ PUBLIC ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipR PUBLIC ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW PUBLIC ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -123,6 +122,7 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+391 + DD imagerel $LN6+389 DD imagerel $unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+387 + DD imagerel $LN6+385 DD imagerel $unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+371 + DD imagerel $LN6+369 DD imagerel $unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 015aH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,7 @@ $cppxdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H +$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 016aH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,7 @@ $cppxdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H +$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 016eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -412,7 +382,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB '-', 02H + DB '%', 02H DB 02H DB 09eH DB 00H @@ -431,7 +401,7 @@ $cppxdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H +$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 4 @@ -604,126 +621,126 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 a8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H - 00056 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 - 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00050 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H + 00054 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 + 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00078 48 89 85 28 01 + 0006c b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00076 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0009b ba 0c 00 00 00 mov edx, 12 - 000a0 48 8b 8d 28 01 + 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00099 ba 0c 00 00 00 mov edx, 12 + 0009e 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000ac 48 89 85 38 01 + 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000aa 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d9 b8 01 00 00 00 mov eax, 1 - 000de 48 6b c0 02 imul rax, rax, 2 - 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000ea 8b 95 78 01 00 + 000d7 b8 01 00 00 00 mov eax, 1 + 000dc 48 6b c0 02 imul rax, rax, 2 + 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e8 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : Link->RawData[6] = *Data; - 000f3 b8 01 00 00 00 mov eax, 1 - 000f8 48 6b c0 06 imul rax, rax, 6 - 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00104 48 8b 95 80 01 + 000f1 b8 01 00 00 00 mov eax, 1 + 000f6 48 6b c0 06 imul rax, rax, 6 + 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00102 48 8b 95 80 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 0010b 0f b6 12 movzx edx, BYTE PTR [rdx] - 0010e 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 0f b6 12 movzx edx, BYTE PTR [rdx] + 0010c 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00111 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00115 48 83 c0 30 add rax, 48 ; 00000030H - 00119 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 0011d 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00121 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00125 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00129 48 8b c8 mov rcx, rax - 0012c e8 00 00 00 00 call xed_decode + 0010f 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00113 48 83 c0 30 add rax, 48 ; 00000030H + 00117 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011f 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00123 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00127 48 8b c8 mov rcx, rax + 0012a e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 00131 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00135 48 8b 8d 70 01 + 0012f 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00133 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0013c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0013a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 00141 b8 01 00 00 00 mov eax, 1 + 0013f b8 01 00 00 00 mov eax, 1 ; 37 : } - 00146 8b f8 mov edi, eax - 00148 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0014c 48 8d 15 00 00 + 00144 8b f8 mov edi, eax + 00146 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0014a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00153 e8 00 00 00 00 call _RTC_CheckStackVars - 00158 8b c7 mov eax, edi - 0015a 48 8b 8d 40 01 + 00151 e8 00 00 00 00 call _RTC_CheckStackVars + 00156 8b c7 mov eax, edi + 00158 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00161 48 33 cd xor rcx, rbp - 00164 e8 00 00 00 00 call __security_check_cookie - 00169 48 8d a5 58 01 + 0015f 48 33 cd xor rcx, rbp + 00162 e8 00 00 00 00 call __security_check_cookie + 00167 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00170 5f pop rdi - 00171 5d pop rbp - 00172 c3 ret 0 + 0016e 5f pop rdi + 0016f 5d pop rbp + 00170 c3 ret 0 ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovB _TEXT ENDS ; COMDAT text$x @@ -744,7 +761,7 @@ Data$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -773,7 +790,7 @@ Data$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -784,7 +801,7 @@ Data$ = 384 ?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -809,130 +826,130 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00056 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H - 0005a c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00054 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H + 00058 c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00080 48 89 85 38 01 + 00074 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0007e 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a3 ba 0c 00 00 00 mov edx, 12 - 000a8 48 8b 8d 38 01 + 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a1 ba 0c 00 00 00 mov edx, 12 + 000a6 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b4 48 89 85 48 01 + 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b2 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000e1 b8 01 00 00 00 mov eax, 1 - 000e6 48 6b c0 03 imul rax, rax, 3 - 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f2 8b 95 88 01 00 + 000df b8 01 00 00 00 mov eax, 1 + 000e4 48 6b c0 03 imul rax, rax, 3 + 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f0 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : RtlCopyMemory(&Link->RawData[7], Data, 2); - 000fb b8 01 00 00 00 mov eax, 1 - 00100 48 6b c0 07 imul rax, rax, 7 - 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00108 48 03 41 20 add rax, QWORD PTR [rcx+32] - 0010c 41 b8 02 00 00 + 000f9 b8 01 00 00 00 mov eax, 1 + 000fe 48 6b c0 07 imul rax, rax, 7 + 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00106 48 03 41 20 add rax, QWORD PTR [rcx+32] + 0010a 41 b8 02 00 00 00 mov r8d, 2 - 00112 48 8b 95 90 01 + 00110 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 00119 48 8b c8 mov rcx, rax - 0011c e8 00 00 00 00 call memcpy + 00117 48 8b c8 mov rcx, rax + 0011a e8 00 00 00 00 call memcpy ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00121 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00125 48 83 c0 30 add rax, 48 ; 00000030H - 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012d 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00131 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00135 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00139 48 8b c8 mov rcx, rax - 0013c e8 00 00 00 00 call xed_decode + 0011f 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00123 48 83 c0 30 add rax, 48 ; 00000030H + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0012f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00133 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00137 48 8b c8 mov rcx, rax + 0013a e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00141 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00145 48 8b 8d 80 01 + 0013f 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00143 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00151 b8 01 00 00 00 mov eax, 1 + 0014f b8 01 00 00 00 mov eax, 1 ; 25 : } - 00156 8b f8 mov edi, eax - 00158 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0015c 48 8d 15 00 00 + 00154 8b f8 mov edi, eax + 00156 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0015a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00163 e8 00 00 00 00 call _RTC_CheckStackVars - 00168 8b c7 mov eax, edi - 0016a 48 8b 8d 50 01 + 00161 e8 00 00 00 00 call _RTC_CheckStackVars + 00166 8b c7 mov eax, edi + 00168 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00171 48 33 cd xor rcx, rbp - 00174 e8 00 00 00 00 call __security_check_cookie - 00179 48 8d a5 68 01 + 0016f 48 33 cd xor rcx, rbp + 00172 e8 00 00 00 00 call __security_check_cookie + 00177 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00180 5f pop rdi - 00181 5d pop rbp - 00182 c3 ret 0 + 0017e 5f pop rdi + 0017f 5d pop rbp + 00180 c3 ret 0 ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovW _TEXT ENDS ; COMDAT text$x @@ -953,7 +970,7 @@ Data$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -982,7 +999,7 @@ Data$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -993,7 +1010,7 @@ Data$ = 400 ?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -1018,131 +1035,131 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H - 00056 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 - 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00050 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H + 00054 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 + 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00084 48 89 85 38 01 + 00078 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00082 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a7 ba 0c 00 00 00 mov edx, 12 - 000ac 48 8b 8d 38 01 + 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a5 ba 0c 00 00 00 mov edx, 12 + 000aa 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b8 48 89 85 48 01 + 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b6 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e5 b8 01 00 00 00 mov eax, 1 - 000ea 48 6b c0 02 imul rax, rax, 2 - 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f6 8b 95 88 01 00 + 000e3 b8 01 00 00 00 mov eax, 1 + 000e8 48 6b c0 02 imul rax, rax, 2 + 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f4 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : RtlCopyMemory(&Link->RawData[6], Data, 4); - 000ff b8 01 00 00 00 mov eax, 1 - 00104 48 6b c0 06 imul rax, rax, 6 - 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010c 48 03 41 20 add rax, QWORD PTR [rcx+32] - 00110 41 b8 04 00 00 + 000fd b8 01 00 00 00 mov eax, 1 + 00102 48 6b c0 06 imul rax, rax, 6 + 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010a 48 03 41 20 add rax, QWORD PTR [rcx+32] + 0010e 41 b8 04 00 00 00 mov r8d, 4 - 00116 48 8b 95 90 01 + 00114 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 0011d 48 8b c8 mov rcx, rax - 00120 e8 00 00 00 00 call memcpy + 0011b 48 8b c8 mov rcx, rax + 0011e e8 00 00 00 00 call memcpy ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00125 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00129 48 83 c0 30 add rax, 48 ; 00000030H - 0012d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00131 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00135 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00139 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0013d 48 8b c8 mov rcx, rax - 00140 e8 00 00 00 00 call xed_decode + 00123 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00127 48 83 c0 30 add rax, 48 ; 00000030H + 0012b 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012f 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00133 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00137 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0013b 48 8b c8 mov rcx, rax + 0013e e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00145 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00149 48 8b 8d 80 01 + 00143 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00147 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00150 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014e e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00155 b8 01 00 00 00 mov eax, 1 + 00153 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0015a 8b f8 mov edi, eax - 0015c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00160 48 8d 15 00 00 + 00158 8b f8 mov edi, eax + 0015a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0015e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00167 e8 00 00 00 00 call _RTC_CheckStackVars - 0016c 8b c7 mov eax, edi - 0016e 48 8b 8d 50 01 + 00165 e8 00 00 00 00 call _RTC_CheckStackVars + 0016a 8b c7 mov eax, edi + 0016c 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00175 48 33 cd xor rcx, rbp - 00178 e8 00 00 00 00 call __security_check_cookie - 0017d 48 8d a5 68 01 + 00173 48 33 cd xor rcx, rbp + 00176 e8 00 00 00 00 call __security_check_cookie + 0017b 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00184 5f pop rdi - 00185 5d pop rbp - 00186 c3 ret 0 + 00182 5f pop rdi + 00183 5d pop rbp + 00184 c3 ret 0 ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovD _TEXT ENDS ; COMDAT text$x @@ -1163,7 +1180,7 @@ Data$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1192,7 +1209,7 @@ Data$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1203,7 +1220,7 @@ Data$ = 400 ?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1214,7 +1231,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1226,141 +1243,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1371,7 +1394,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1383,141 +1406,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1528,7 +1557,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1539,98 +1568,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1647,73 +1682,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1732,7 +1773,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1743,251 +1784,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2010,34 +2051,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2054,18 +2101,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2080,18 +2134,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2106,18 +2167,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2130,14 +2198,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipOrInst.cod b/CodeVirtualizer/x64/Debug/RipOrInst.cod index 3a73c8e..32dab91 100644 --- a/CodeVirtualizer/x64/Debug/RipOrInst.cod +++ b/CodeVirtualizer/x64/Debug/RipOrInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__B214C6C1_RipOrInst@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__97B6E7BF_RipOrInst@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,9 @@ PUBLIC ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelat PUBLIC ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW PUBLIC ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -123,6 +122,7 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+379 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+375 DD imagerel $unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+368 + DD imagerel $LN6+366 DD imagerel $unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0157H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,7 @@ $cppxdata$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0160H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,7 @@ $cppxdata$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0162H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -412,7 +382,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '-', 02H + DB '%', 02H DB 02H DB 09eH DB 00H @@ -431,7 +401,7 @@ $cppxdata$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -604,125 +621,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 a8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00056 c6 45 05 0d mov BYTE PTR RawData$[rbp+1], 13 - 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00054 c6 45 05 0d mov BYTE PTR RawData$[rbp+1], 13 + 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00078 48 89 85 28 01 + 0006c b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00076 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0009b ba 0c 00 00 00 mov edx, 12 - 000a0 48 8b 8d 28 01 + 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00099 ba 0c 00 00 00 mov edx, 12 + 0009e 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000ac 48 89 85 38 01 + 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000aa 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d9 b8 01 00 00 00 mov eax, 1 - 000de 48 6b c0 02 imul rax, rax, 2 - 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000ea 8b 95 78 01 00 + 000d7 b8 01 00 00 00 mov eax, 1 + 000dc 48 6b c0 02 imul rax, rax, 2 + 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e8 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f3 b8 01 00 00 00 mov eax, 1 - 000f8 48 6b c0 06 imul rax, rax, 6 - 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00104 0f b6 95 80 01 + 000f1 b8 01 00 00 00 mov eax, 1 + 000f6 48 6b c0 06 imul rax, rax, 6 + 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00102 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00112 48 83 c0 30 add rax, 48 ; 00000030H - 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00126 48 8b c8 mov rcx, rax - 00129 e8 00 00 00 00 call xed_decode + 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00110 48 83 c0 30 add rax, 48 ; 00000030H + 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00124 48 8b c8 mov rcx, rax + 00127 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00132 48 8b 8d 70 01 + 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00130 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013e b8 01 00 00 00 mov eax, 1 + 0013c b8 01 00 00 00 mov eax, 1 ; 37 : } - 00143 8b f8 mov edi, eax - 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00149 48 8d 15 00 00 + 00141 8b f8 mov edi, eax + 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00147 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00150 e8 00 00 00 00 call _RTC_CheckStackVars - 00155 8b c7 mov eax, edi - 00157 48 8b 8d 40 01 + 0014e e8 00 00 00 00 call _RTC_CheckStackVars + 00153 8b c7 mov eax, edi + 00155 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015e 48 33 cd xor rcx, rbp - 00161 e8 00 00 00 00 call __security_check_cookie - 00166 48 8d a5 58 01 + 0015c 48 33 cd xor rcx, rbp + 0015f e8 00 00 00 00 call __security_check_cookie + 00164 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016d 5f pop rdi - 0016e 5d pop rbp - 0016f c3 ret 0 + 0016b 5f pop rdi + 0016c 5d pop rbp + 0016d c3 ret 0 ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrB _TEXT ENDS ; COMDAT text$x @@ -743,7 +760,7 @@ Value$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -772,7 +789,7 @@ Value$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -783,7 +800,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -808,127 +825,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00056 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H - 0005a c6 45 0a 0d mov BYTE PTR RawData$[rbp+2], 13 - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00054 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H + 00058 c6 45 0a 0d mov BYTE PTR RawData$[rbp+2], 13 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00080 48 89 85 38 01 + 00074 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0007e 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a3 ba 0c 00 00 00 mov edx, 12 - 000a8 48 8b 8d 38 01 + 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a1 ba 0c 00 00 00 mov edx, 12 + 000a6 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b4 48 89 85 48 01 + 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b2 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000e1 b8 01 00 00 00 mov eax, 1 - 000e6 48 6b c0 03 imul rax, rax, 3 - 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f2 8b 95 88 01 00 + 000df b8 01 00 00 00 mov eax, 1 + 000e4 48 6b c0 03 imul rax, rax, 3 + 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f0 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000fb b8 01 00 00 00 mov eax, 1 - 00100 48 6b c0 07 imul rax, rax, 7 - 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010c 0f b7 95 90 01 + 000f9 b8 01 00 00 00 mov eax, 1 + 000fe 48 6b c0 07 imul rax, rax, 7 + 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010a 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00119 48 83 c0 30 add rax, 48 ; 00000030H + 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012d 48 8b c8 mov rcx, rax + 00130 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00139 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00145 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014a 8b f8 mov edi, eax + 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00150 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 00157 e8 00 00 00 00 call _RTC_CheckStackVars + 0015c 8b c7 mov eax, edi + 0015e 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00165 48 33 cd xor rcx, rbp + 00168 e8 00 00 00 00 call __security_check_cookie + 0016d 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00174 5f pop rdi + 00175 5d pop rbp + 00176 c3 ret 0 ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrW _TEXT ENDS ; COMDAT text$x @@ -949,7 +966,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -978,7 +995,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -989,7 +1006,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1014,128 +1031,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00056 c6 45 09 0d mov BYTE PTR RawData$[rbp+1], 13 - 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00054 c6 45 09 0d mov BYTE PTR RawData$[rbp+1], 13 + 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00084 48 89 85 38 01 + 00078 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00082 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a7 ba 0c 00 00 00 mov edx, 12 - 000ac 48 8b 8d 38 01 + 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a5 ba 0c 00 00 00 mov edx, 12 + 000aa 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b8 48 89 85 48 01 + 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b6 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e5 b8 01 00 00 00 mov eax, 1 - 000ea 48 6b c0 02 imul rax, rax, 2 - 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f6 8b 95 88 01 00 + 000e3 b8 01 00 00 00 mov eax, 1 + 000e8 48 6b c0 02 imul rax, rax, 2 + 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f4 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000ff b8 01 00 00 00 mov eax, 1 - 00104 48 6b c0 06 imul rax, rax, 6 - 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00110 8b 95 90 01 00 + 000fd b8 01 00 00 00 mov eax, 1 + 00102 48 6b c0 06 imul rax, rax, 6 + 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010e 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00116 89 14 08 mov DWORD PTR [rax+rcx], edx + 00114 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011d 48 83 c0 30 add rax, 48 ; 00000030H - 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00131 48 8b c8 mov rcx, rax - 00134 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013d 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00149 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014e 8b f8 mov edi, eax - 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00154 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0015b e8 00 00 00 00 call _RTC_CheckStackVars - 00160 8b c7 mov eax, edi - 00162 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00169 48 33 cd xor rcx, rbp - 0016c e8 00 00 00 00 call __security_check_cookie - 00171 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00178 5f pop rdi - 00179 5d pop rbp - 0017a c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrD _TEXT ENDS ; COMDAT text$x @@ -1156,7 +1173,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1185,7 +1202,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1196,7 +1213,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1207,7 +1224,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1219,141 +1236,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1364,7 +1387,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1376,141 +1399,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1521,7 +1550,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1532,98 +1561,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1640,73 +1675,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1725,7 +1766,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1736,251 +1777,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2003,34 +2044,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2047,18 +2094,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2073,18 +2127,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2099,18 +2160,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2123,14 +2191,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipXorInst.cod b/CodeVirtualizer/x64/Debug/RipXorInst.cod index 49c9b4d..4048997 100644 --- a/CodeVirtualizer/x64/Debug/RipXorInst.cod +++ b/CodeVirtualizer/x64/Debug/RipXorInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__A82FFE99_RipXorInst@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__1FB70083_RipXorInst@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,9 @@ PUBLIC ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRela PUBLIC ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW PUBLIC ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN ??2@YAPEAX_K@Z:PROC ; operator new @@ -123,6 +122,7 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+379 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+375 DD imagerel $unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+368 + DD imagerel $LN6+366 DD imagerel $unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0157H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,7 @@ $cppxdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0160H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,7 @@ $cppxdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 00H - DB 05H -voltbl ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 03fH - DW 0162H -voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -412,7 +382,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '-', 02H + DB '%', 02H DB 02H DB 09eH DB 00H @@ -431,7 +401,7 @@ $cppxdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H +$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -604,125 +621,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 a8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00056 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H - 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00054 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00078 48 89 85 28 01 + 0006c b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00076 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0009b ba 0c 00 00 00 mov edx, 12 - 000a0 48 8b 8d 28 01 + 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00099 ba 0c 00 00 00 mov edx, 12 + 0009e 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000ac 48 89 85 38 01 + 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000aa 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d9 b8 01 00 00 00 mov eax, 1 - 000de 48 6b c0 02 imul rax, rax, 2 - 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000ea 8b 95 78 01 00 + 000d7 b8 01 00 00 00 mov eax, 1 + 000dc 48 6b c0 02 imul rax, rax, 2 + 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e8 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f3 b8 01 00 00 00 mov eax, 1 - 000f8 48 6b c0 06 imul rax, rax, 6 - 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00104 0f b6 95 80 01 + 000f1 b8 01 00 00 00 mov eax, 1 + 000f6 48 6b c0 06 imul rax, rax, 6 + 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00102 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00112 48 83 c0 30 add rax, 48 ; 00000030H - 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00126 48 8b c8 mov rcx, rax - 00129 e8 00 00 00 00 call xed_decode + 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00110 48 83 c0 30 add rax, 48 ; 00000030H + 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00124 48 8b c8 mov rcx, rax + 00127 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00132 48 8b 8d 70 01 + 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00130 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013e b8 01 00 00 00 mov eax, 1 + 0013c b8 01 00 00 00 mov eax, 1 ; 37 : } - 00143 8b f8 mov edi, eax - 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00149 48 8d 15 00 00 + 00141 8b f8 mov edi, eax + 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00147 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00150 e8 00 00 00 00 call _RTC_CheckStackVars - 00155 8b c7 mov eax, edi - 00157 48 8b 8d 40 01 + 0014e e8 00 00 00 00 call _RTC_CheckStackVars + 00153 8b c7 mov eax, edi + 00155 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015e 48 33 cd xor rcx, rbp - 00161 e8 00 00 00 00 call __security_check_cookie - 00166 48 8d a5 58 01 + 0015c 48 33 cd xor rcx, rbp + 0015f e8 00 00 00 00 call __security_check_cookie + 00164 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016d 5f pop rdi - 0016e 5d pop rbp - 0016f c3 ret 0 + 0016b 5f pop rdi + 0016c 5d pop rbp + 0016d c3 ret 0 ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorB _TEXT ENDS ; COMDAT text$x @@ -743,7 +760,7 @@ Value$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -772,7 +789,7 @@ Value$ = 384 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -783,7 +800,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -808,127 +825,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00056 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H - 0005a c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00054 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H + 00058 c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00080 48 89 85 38 01 + 00074 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0007e 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a3 ba 0c 00 00 00 mov edx, 12 - 000a8 48 8b 8d 38 01 + 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a1 ba 0c 00 00 00 mov edx, 12 + 000a6 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b4 48 89 85 48 01 + 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b2 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000e1 b8 01 00 00 00 mov eax, 1 - 000e6 48 6b c0 03 imul rax, rax, 3 - 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f2 8b 95 88 01 00 + 000df b8 01 00 00 00 mov eax, 1 + 000e4 48 6b c0 03 imul rax, rax, 3 + 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f0 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000fb b8 01 00 00 00 mov eax, 1 - 00100 48 6b c0 07 imul rax, rax, 7 - 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010c 0f b7 95 90 01 + 000f9 b8 01 00 00 00 mov eax, 1 + 000fe 48 6b c0 07 imul rax, rax, 7 + 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010a 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00119 48 83 c0 30 add rax, 48 ; 00000030H + 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012d 48 8b c8 mov rcx, rax + 00130 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00139 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00145 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014a 8b f8 mov edi, eax + 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00150 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 00157 e8 00 00 00 00 call _RTC_CheckStackVars + 0015c 8b c7 mov eax, edi + 0015e 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00165 48 33 cd xor rcx, rbp + 00168 e8 00 00 00 00 call __security_check_cookie + 0016d 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00174 5f pop rdi + 00175 5d pop rbp + 00176 c3 ret 0 ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorW _TEXT ENDS ; COMDAT text$x @@ -949,7 +966,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -978,7 +995,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -989,7 +1006,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1014,128 +1031,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 b8 + 0001c 48 8b fc mov rdi, rsp + 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00056 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H - 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00054 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00084 48 89 85 38 01 + 00078 b9 10 01 00 00 mov ecx, 272 ; 00000110H + 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00082 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a7 ba 0c 00 00 00 mov edx, 12 - 000ac 48 8b 8d 38 01 + 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a5 ba 0c 00 00 00 mov edx, 12 + 000aa 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b8 48 89 85 48 01 + 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b6 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e5 b8 01 00 00 00 mov eax, 1 - 000ea 48 6b c0 02 imul rax, rax, 2 - 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f6 8b 95 88 01 00 + 000e3 b8 01 00 00 00 mov eax, 1 + 000e8 48 6b c0 02 imul rax, rax, 2 + 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f4 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000ff b8 01 00 00 00 mov eax, 1 - 00104 48 6b c0 06 imul rax, rax, 6 - 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00110 8b 95 90 01 00 + 000fd b8 01 00 00 00 mov eax, 1 + 00102 48 6b c0 06 imul rax, rax, 6 + 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010e 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00116 89 14 08 mov DWORD PTR [rax+rcx], edx + 00114 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011d 48 83 c0 30 add rax, 48 ; 00000030H - 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00131 48 8b c8 mov rcx, rax - 00134 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013d 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00149 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014e 8b f8 mov edi, eax - 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00154 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0015b e8 00 00 00 00 call _RTC_CheckStackVars - 00160 8b c7 mov eax, edi - 00162 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00169 48 33 cd xor rcx, rbp - 0016c e8 00 00 00 00 call __security_check_cookie - 00171 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00178 5f pop rdi - 00179 5d pop rbp - 0017a c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorD _TEXT ENDS ; COMDAT text$x @@ -1156,7 +1173,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1185,7 +1202,7 @@ Value$ = 400 0000b 57 push rdi 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H 00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48] - 00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00014 ba 10 01 00 00 mov edx, 272 ; 00000110H 00019 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete @@ -1196,7 +1213,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1207,7 +1224,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1219,141 +1236,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -1364,7 +1387,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1376,141 +1399,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1521,7 +1550,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1532,98 +1561,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1640,73 +1675,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1725,7 +1766,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1736,251 +1777,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2003,34 +2044,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2047,18 +2094,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2073,18 +2127,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2099,18 +2160,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2123,14 +2191,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/VirtualMachine.cod b/CodeVirtualizer/x64/Debug/VirtualMachine.cod index 8ddcd2c..cec3ca3 100644 --- a/CodeVirtualizer/x64/Debug/VirtualMachine.cod +++ b/CodeVirtualizer/x64/Debug/VirtualMachine.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__927DDB6F_VirtualMachine@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__FE1E1473_VirtualMachine@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +96,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?VmEmitVmEnter@@YAPEAEPEAK@Z ; VmEmitVmEnter PUBLIC ?VmEmitVmExit@@YAPEAEPEAK@Z ; VmEmitVmExit PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -117,79 +116,80 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmEnter@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+43 + DD imagerel $LN3+66 DD imagerel $unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmExit@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+43 + DD imagerel $LN3+66 DD imagerel $unwind$?VmEmitVmExit@@YAPEAEPEAK@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,72 +210,67 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025051301H +$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025051301H +$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -320,38 +315,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -361,7 +408,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmExit@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -376,25 +423,31 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 10 : return NULL; - 0001f 33 c0 xor eax, eax + 00036 33 c0 xor eax, eax ; 11 : } - 00021 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00028 5f pop rdi - 00029 5d pop rbp - 0002a c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?VmEmitVmExit@@YAPEAEPEAK@Z ENDP ; VmEmitVmExit _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmEnter@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -409,25 +462,31 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 6 : return NULL; - 0001f 33 c0 xor eax, eax + 00036 33 c0 xor eax, eax ; 7 : } - 00021 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00028 5f pop rdi - 00029 5d pop rbp - 0002a c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?VmEmitVmEnter@@YAPEAEPEAK@Z ENDP ; VmEmitVmEnter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -438,7 +497,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -450,141 +509,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -595,7 +660,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -607,141 +672,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -752,7 +823,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -763,98 +834,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -871,73 +948,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -956,7 +1039,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -967,251 +1050,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1234,34 +1317,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1278,18 +1367,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1304,18 +1400,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1330,18 +1433,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1354,14 +1464,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Virtualizer.cod b/CodeVirtualizer/x64/Debug/Virtualizer.cod index 2eeb0d6..fdee2fa 100644 --- a/CodeVirtualizer/x64/Debug/Virtualizer.cod +++ b/CodeVirtualizer/x64/Debug/Virtualizer.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__BBE970CC_Virtualizer@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__463C1148_Virtualizer@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +96,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst PUBLIC ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; ViValidateNativeCodeBlock PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -117,79 +116,80 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+69 DD imagerel $unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+119 + DD imagerel $LN7+142 DD imagerel $unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,72 +210,67 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H +$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -320,38 +315,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -361,7 +408,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -377,66 +424,72 @@ $LN7: 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 9 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 0002d eb 0b jmp SHORT $LN4@ViValidate + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00044 eb 0b jmp SHORT $LN4@ViValidate $LN2@ViValidate: - 0002f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00033 48 8b 00 mov rax, QWORD PTR [rax] - 00036 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ViValidate: - 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0003f 74 27 je SHORT $LN3@ViValidate - 00041 48 8b 85 00 01 + 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00056 74 27 je SHORT $LN3@ViValidate + 00058 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00048 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004c 48 8b 00 mov rax, QWORD PTR [rax] - 0004f 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00053 74 13 je SHORT $LN3@ViValidate + 0005f 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00063 48 8b 00 mov rax, QWORD PTR [rax] + 00066 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0006a 74 13 je SHORT $LN3@ViValidate ; 10 : { ; 11 : if (!ViCanHandleInst(T)) - 00055 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] - 00059 e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst - 0005e 85 c0 test eax, eax - 00060 75 04 jne SHORT $LN5@ViValidate + 0006c 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00070 e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst + 00075 85 c0 test eax, eax + 00077 75 04 jne SHORT $LN5@ViValidate ; 12 : return FALSE; - 00062 33 c0 xor eax, eax - 00064 eb 07 jmp SHORT $LN1@ViValidate + 00079 33 c0 xor eax, eax + 0007b eb 07 jmp SHORT $LN1@ViValidate $LN5@ViValidate: ; 13 : } - 00066 eb c7 jmp SHORT $LN2@ViValidate + 0007d eb c7 jmp SHORT $LN2@ViValidate $LN3@ViValidate: ; 14 : return TRUE; - 00068 b8 01 00 00 00 mov eax, 1 + 0007f b8 01 00 00 00 mov eax, 1 $LN1@ViValidate: ; 15 : } - 0006d 48 8d a5 e8 00 + 00084 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ViValidateNativeCodeBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -451,25 +504,31 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : return TRUE; - 0001f b8 01 00 00 00 mov eax, 1 + 00036 b8 01 00 00 00 mov eax, 1 ; 6 : } - 00024 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; ViCanHandleInst _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -480,7 +539,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -492,141 +551,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -637,7 +702,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -649,141 +714,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -794,7 +865,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -805,98 +876,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -913,73 +990,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -998,7 +1081,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1009,251 +1092,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1276,34 +1359,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1320,18 +1409,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1346,18 +1442,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1372,18 +1475,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1396,14 +1506,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/VmCode.cod b/CodeVirtualizer/x64/Debug/VmCode.cod index 1041f49..ce1c7a5 100644 --- a/CodeVirtualizer/x64/Debug/VmCode.cod +++ b/CodeVirtualizer/x64/Debug/VmCode.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,48 +33,47 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8238DD11_VmCode@h DB 01H -__D8D4E86A_VmCode@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__FA675702_VmCode@h DB 01H +__B456BB99_VmCode@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -89,9 +88,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK PUBLIC ??0_VM_CODE_LINK@@QEAA@K@Z ; _VM_CODE_LINK::_VM_CODE_LINK PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -109,79 +108,80 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_VM_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+134 + DD imagerel $LN3+157 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_VM_CODE_LINK@@QEAA@K@Z DD imagerel $LN3 - DD imagerel $LN3+94 + DD imagerel $LN3+117 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -202,72 +202,67 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025051701H +$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025051301H +$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -312,38 +307,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -353,7 +400,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@K@Z _TEXT SEGMENT this$ = 224 @@ -370,44 +417,50 @@ $LN3: 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : : _VM_CODE_LINK() - 00023 48 8b 8d e0 00 + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002a e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK + 00041 e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK ; 15 : Label = LabelId; - 0002f 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00036 8b 8d e8 00 00 + 0004d 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 0003c 89 48 14 mov DWORD PTR [rax+20], ecx + 00053 89 48 14 mov DWORD PTR [rax+20], ecx ; 16 : Flags = CODE_FLAG_IS_LABEL; - 0003f 48 8b 85 e0 00 + 00056 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00046 c7 40 10 01 00 + 0005d c7 40 10 01 00 00 00 mov DWORD PTR [rax+16], 1 ; 17 : } - 0004d 48 8b 85 e0 00 + 00064 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00054 48 8d a5 c8 00 + 0006b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 ??0_VM_CODE_LINK@@QEAA@K@Z ENDP ; _VM_CODE_LINK::_VM_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -422,62 +475,68 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : Flags = 0; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 c7 40 10 00 00 + 0003d c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 6 : Next = Prev = NULL; - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 c7 40 08 00 + 0004b 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0003c 48 8b 85 e0 00 + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 c7 00 00 00 + 0005a 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 7 : Label = 0; - 0004a 48 8b 85 e0 00 + 00061 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00051 c7 40 14 00 00 + 00068 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 8 : RawData = NULL; - 00058 48 8b 85 e0 00 + 0006f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 c7 40 18 00 + 00076 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 9 : RawDataSize = 0UL; - 00067 48 8b 85 e0 00 + 0007e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006e c7 40 20 00 00 + 00085 c7 40 20 00 00 00 00 mov DWORD PTR [rax+32], 0 ; 10 : } - 00075 48 8b 85 e0 00 + 0008c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0007c 48 8d a5 c8 00 + 00093 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00083 5f pop rdi - 00084 5d pop rbp - 00085 c3 ret 0 + 0009a 5f pop rdi + 0009b 5d pop rbp + 0009c c3 ret 0 ??0_VM_CODE_LINK@@QEAA@XZ ENDP ; _VM_CODE_LINK::_VM_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -488,7 +547,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -500,141 +559,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -645,7 +710,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -657,141 +722,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -802,7 +873,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -813,98 +884,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -921,73 +998,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1006,7 +1089,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1017,251 +1100,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1284,34 +1367,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1328,18 +1417,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1354,18 +1450,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1380,18 +1483,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1404,14 +1514,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/XedWrap.cod b/CodeVirtualizer/x64/Debug/XedWrap.cod index 5b174d2..86565e7 100644 --- a/CodeVirtualizer/x64/Debug/XedWrap.cod +++ b/CodeVirtualizer/x64/Debug/XedWrap.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,56 +33,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__6301E643_XedWrap@cpp DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__47D9C7B6_XedWrap@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -95,9 +94,9 @@ PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' EXTRN memcpy:PROC @@ -115,67 +114,68 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $LN5+379 DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -196,58 +196,53 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -292,38 +287,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -333,7 +380,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -344,7 +391,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -356,141 +403,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime ; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z _TEXT SEGMENT $T1 = 200 @@ -501,7 +554,7 @@ __formal$ = 312 _Lobj$ = 320 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -513,141 +566,147 @@ $LN5: 00012 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -658,7 +717,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -669,98 +728,104 @@ $LN7: 00011 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00029 48 8b 8d 40 01 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -777,73 +842,79 @@ $LN4: 00007 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -862,7 +933,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -873,251 +944,251 @@ $LN12: 00011 48 81 ec 38 02 00 00 sub rsp, 568 ; 00000238H 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1140,34 +1211,40 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1184,18 +1261,25 @@ $LN3: 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00029 48 8d a5 c8 00 + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1210,18 +1294,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1236,18 +1327,25 @@ $LN3: 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8d a5 c8 00 + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1260,14 +1358,21 @@ $LN3: 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0001f 48 8d a5 c8 00 + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END