From 71da702d2f2bf807d1f84350bbd157e399811e3b Mon Sep 17 00:00:00 2001 From: Iizerd Date: Tue, 12 Oct 2021 00:54:45 -0700 Subject: [PATCH] reformat jit --- CodeVirtualizer/Assembly.asm | 4 + CodeVirtualizer/Code.h | 9 +- CodeVirtualizer/CodeVirtualizer.vcxproj | 18 + .../CodeVirtualizer.vcxproj.filters | 21 + CodeVirtualizer/Jit.cpp | 446 + CodeVirtualizer/Jit.h | 51 + CodeVirtualizer/Main.cpp | 18 +- CodeVirtualizer/NativeCode.cpp | 5 +- CodeVirtualizer/RipAndInst.cpp | 38 + CodeVirtualizer/RipAndInst.h | 16 + CodeVirtualizer/RipMovInst.cpp | 159 +- CodeVirtualizer/RipMovInst.h | 23 +- CodeVirtualizer/RipOrInst.cpp | 38 + CodeVirtualizer/RipOrInst.h | 16 + CodeVirtualizer/RipXorInst.cpp | 297 +- CodeVirtualizer/RipXorInst.h | 40 +- CodeVirtualizer/Windas.h | 2 +- CodeVirtualizer/x64/Debug/Assembly.lst | 15 + CodeVirtualizer/x64/Debug/Jit.cod | 7876 ++++++ CodeVirtualizer/x64/Debug/Junk.cod | 1378 ++ CodeVirtualizer/x64/Debug/Main.cod | 2079 ++ CodeVirtualizer/x64/Debug/NativeCode.cod | 19742 ++++++++++++++++ CodeVirtualizer/x64/Debug/Nop.cod | 1833 ++ CodeVirtualizer/x64/Debug/Obfuscator.cod | 8 + CodeVirtualizer/x64/Debug/OpaqueBranching.cod | 9523 ++++++++ CodeVirtualizer/x64/Debug/RipMovInst.cod | 2484 ++ CodeVirtualizer/x64/Debug/RipXorInst.cod | 2205 ++ CodeVirtualizer/x64/Debug/VirtualMachine.cod | 1484 ++ CodeVirtualizer/x64/Debug/Virtualizer.cod | 1520 ++ CodeVirtualizer/x64/Debug/VmCode.cod | 1534 ++ CodeVirtualizer/x64/Debug/XedWrap.cod | 1378 ++ x64/Debug/CodeVirtualizer.ilk | Bin 2753428 -> 3232112 bytes 32 files changed, 53756 insertions(+), 504 deletions(-) create mode 100644 CodeVirtualizer/Assembly.asm create mode 100644 CodeVirtualizer/Jit.cpp create mode 100644 CodeVirtualizer/Jit.h create mode 100644 CodeVirtualizer/RipAndInst.cpp create mode 100644 CodeVirtualizer/RipAndInst.h create mode 100644 CodeVirtualizer/RipOrInst.cpp create mode 100644 CodeVirtualizer/RipOrInst.h create mode 100644 CodeVirtualizer/x64/Debug/Assembly.lst create mode 100644 CodeVirtualizer/x64/Debug/Jit.cod create mode 100644 CodeVirtualizer/x64/Debug/Junk.cod create mode 100644 CodeVirtualizer/x64/Debug/Main.cod create mode 100644 CodeVirtualizer/x64/Debug/NativeCode.cod create mode 100644 CodeVirtualizer/x64/Debug/Nop.cod create mode 100644 CodeVirtualizer/x64/Debug/Obfuscator.cod create mode 100644 CodeVirtualizer/x64/Debug/OpaqueBranching.cod create mode 100644 CodeVirtualizer/x64/Debug/RipMovInst.cod create mode 100644 CodeVirtualizer/x64/Debug/RipXorInst.cod create mode 100644 CodeVirtualizer/x64/Debug/VirtualMachine.cod create mode 100644 CodeVirtualizer/x64/Debug/Virtualizer.cod create mode 100644 CodeVirtualizer/x64/Debug/VmCode.cod create mode 100644 CodeVirtualizer/x64/Debug/XedWrap.cod diff --git a/CodeVirtualizer/Assembly.asm b/CodeVirtualizer/Assembly.asm new file mode 100644 index 0000000..92a1eb8 --- /dev/null +++ b/CodeVirtualizer/Assembly.asm @@ -0,0 +1,4 @@ +.CODE + + +END \ No newline at end of file diff --git a/CodeVirtualizer/Code.h b/CodeVirtualizer/Code.h index 0f2bb64..6c727e7 100644 --- a/CodeVirtualizer/Code.h +++ b/CodeVirtualizer/Code.h @@ -1,9 +1,10 @@ #ifndef __CODE_H #define __CODE_H -#define CODE_FLAG_IS_LABEL (1<<0) -#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_LABEL (1<<0) +#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) #endif \ No newline at end of file diff --git a/CodeVirtualizer/CodeVirtualizer.vcxproj b/CodeVirtualizer/CodeVirtualizer.vcxproj index 44635e7..ac559d0 100644 --- a/CodeVirtualizer/CodeVirtualizer.vcxproj +++ b/CodeVirtualizer/CodeVirtualizer.vcxproj @@ -56,6 +56,7 @@ + @@ -120,6 +121,7 @@ true stdcpp17 C:\%24Fanta\IntelXED\build\obj\wkit\include;%(AdditionalIncludeDirectories) + All Console @@ -127,6 +129,12 @@ C:\%24Fanta\IntelXED\build\obj\wkit\lib;%(AdditionalLibraryDirectories) xed.lib;%(AdditionalDependencies) + + true + + + $(IntDir)\%(filename).lst + @@ -149,13 +157,16 @@ + + + @@ -164,12 +175,15 @@ + + + @@ -177,7 +191,11 @@ + + + + \ No newline at end of file diff --git a/CodeVirtualizer/CodeVirtualizer.vcxproj.filters b/CodeVirtualizer/CodeVirtualizer.vcxproj.filters index 85be4c6..3f6f512 100644 --- a/CodeVirtualizer/CodeVirtualizer.vcxproj.filters +++ b/CodeVirtualizer/CodeVirtualizer.vcxproj.filters @@ -38,6 +38,15 @@ Obfuscator\Branching\OpaqueBranching + + Obfuscator\Jit + + + Obfuscator\Jit\RipAndInst + + + Obfuscator\Jit\RipOrInst + @@ -74,6 +83,15 @@ Obfuscator\Branching\OpaqueBranching + + Obfuscator\Jit + + + Obfuscator\Jit\RipAndInst + + + Obfuscator\Jit\RipOrInst + @@ -119,4 +137,7 @@ {9b60f523-bf84-4740-9ee6-b8f34a317078} + + + \ No newline at end of file diff --git a/CodeVirtualizer/Jit.cpp b/CodeVirtualizer/Jit.cpp new file mode 100644 index 0000000..52c325d --- /dev/null +++ b/CodeVirtualizer/Jit.cpp @@ -0,0 +1,446 @@ +#include "Jit.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, 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, RawData, 1); + XedDecode(&Link->XedInstruction, Link->RawData, 1); + NcAppendToBlock(Block, Link); + return TRUE; +} + +BOOL JitCheckFlagCollisions(CONST XED_FLAG_SET* FlagsRead, XED_FLAG_SET Ledger) +{ + return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) || + (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || + (FlagsRead->s.pf && FlagsRead->s.pf == Ledger.s.pf) || + (FlagsRead->s.of && FlagsRead->s.of == Ledger.s.of) || + (FlagsRead->s.cf && FlagsRead->s.cf == Ledger.s.cf) || + (FlagsRead->s.af && FlagsRead->s.af == Ledger.s.af) + ); +} + +VOID JitUpdateConFlagsLedger(CONST XED_FLAG_SET* FlagsWritten, XED_FLAG_SET* Ledger) +{ + if (FlagsWritten->s.zf) + Ledger->s.zf = FALSE; + if (FlagsWritten->s.sf) + Ledger->s.sf = FALSE; + if (FlagsWritten->s.pf) + Ledger->s.pf = FALSE; + if (FlagsWritten->s.of) + Ledger->s.of = FALSE; + if (FlagsWritten->s.cf) + Ledger->s.cf = FALSE; + if (FlagsWritten->s.af) + Ledger->s.af = FALSE; +} + +BOOL JitDoesInstOverriteConditionFlags(PNATIVE_CODE_LINK Link) +{ + CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction); + CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); + CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); + + return (FlagsWritten->s.zf && + FlagsWritten->s.sf && + FlagsWritten->s.pf && + FlagsWritten->s.of && + FlagsWritten->s.cf && + FlagsUndefined->s.af + ); +} + +BOOL JitAreFlagsClobberedBeforeUse(PNATIVE_CODE_LINK Link) +{ + XED_FLAG_SET Ledger; + Ledger.s.zf = TRUE; + Ledger.s.sf = TRUE; + Ledger.s.pf = TRUE; + Ledger.s.of = TRUE; + Ledger.s.cf = TRUE; + Ledger.s.af = TRUE; + + for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) + { + if (T->Flags & CODE_FLAG_IS_LABEL) + continue; + + CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); + CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags); + CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); + + if (JitCheckFlagCollisions(FlagsRead, Ledger)) + return FALSE; + + JitUpdateConFlagsLedger(FlagsWritten, &Ledger); + + if (Ledger.flat == 0) + return TRUE; + } + return FALSE; +} + +VOID JitMutateInstForXor(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData) +{ + ULONG FourByte = Link->RawDataSize / 4; + ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + PUCHAR Buffer = Link->RawData; + while (FourByte) + { + *(PULONG)Buffer ^= JitData->Data[2 - FourByte]; + Buffer += 4; + FourByte--; + } + + if (TwoByte) + { + *(PUSHORT)Buffer ^= (USHORT)JitData->Data[3]; + Buffer += 2; + } + + if (OneByte) + *(PUCHAR)Buffer ^= (UCHAR)JitData->Data[3]; + +} + +VOID JitMutateInstForOr(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData) +{ + +} + +VOID JitMutateInstForAnd(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData) +{ + +} + +PNATIVE_CODE_BLOCK JitEmitPreRipMov(PNATIVE_CODE_LINK Link, INT32 Delta) +{ + ULONG FourByte = Link->RawDataSize / 4; + ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + Block->Start = Block->End = new NATIVE_CODE_LINK; + PUCHAR DataOffset = Link->RawData; + ULONG Count = FourByte; + while (Count) + { + //Account for remaining MOVs + INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH)); + //Account for already MOVd instructions + RipDelta += ((FourByte - Count) * 4); + RipDelta += Delta; + //Add the actual instruction + printf("%p IS THE DATAOFFSET\n", DataOffset); + system("pause"); + if (!JitEmitRipRelativeMovD(Block, RipDelta, DataOffset)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + DataOffset += 4; + --Count; + } + + if (TwoByte) + { + INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH); + RipDelta += (FourByte * 4); + RipDelta += Delta; + if (!JitEmitRipRelativeMovW(Block, RipDelta, DataOffset)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + DataOffset += 2; + } + + if (OneByte) + { + INT32 RipDelta = 0; + RipDelta += (FourByte * 4) + (TwoByte * 2); + RipDelta += Delta; + if (!JitEmitRipRelativeMovB(Block, RipDelta, DataOffset)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + PNATIVE_CODE_LINK StartLink = Block->Start; + Block->Start = Block->Start->Next; + if (Block->Start) + Block->Start->Prev = NULL; + delete StartLink; + + return Block; +} + +PNATIVE_CODE_BLOCK JitEmitPostRipMov(PNATIVE_CODE_LINK Link, INT32 Delta) +{ + ULONG FourByte = Link->RawDataSize / 4; + ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + Block->Start = Block->End = new NATIVE_CODE_LINK; + ULONG ZeroValue = 0; + ULONG Count = FourByte; + while (Count) + { + INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); + RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH; + RipDelta *= (-1); + RipDelta += Delta; + if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + --Count; + } + + if (TwoByte) + { + INT32 RipDelta = Link->RawDataSize - (FourByte * 4); + RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); + RipDelta += WORD_MOV_INST_LENGTH; + RipDelta *= (-1); + RipDelta += Delta; + if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + if (OneByte) + { + INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); + RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); + RipDelta += WORD_MOV_INST_LENGTH; + RipDelta += BYTE_MOV_INST_LENGTH; + RipDelta *= (-1); + RipDelta += Delta; + if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + PNATIVE_CODE_LINK StartLink = Block->Start; + Block->Start = Block->Start->Next; + if (Block->Start) + Block->Start->Prev = NULL; + delete StartLink; + + return Block; +} + +BOOL JitiEmitWrapperD(ULONG OpType, PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + switch (OpType) + { + case JIT_BITWISE_XOR: return JitEmitRipRelativeXorD(Block, RipDelta, Value); + case JIT_BITWISE_AND: return JitEmitRipRelativeAndD(Block, RipDelta, Value); + case JIT_BITWISE_OR: return JitEmitRipRelativeOrD(Block, RipDelta, Value); + } +} +BOOL JitiEmitWrapperW(ULONG OpType, PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + switch (OpType) + { + case JIT_BITWISE_XOR: return JitEmitRipRelativeXorW(Block, RipDelta, Value); + case JIT_BITWISE_AND: return JitEmitRipRelativeAndW(Block, RipDelta, Value); + case JIT_BITWISE_OR: return JitEmitRipRelativeOrW(Block, RipDelta, Value); + } +} +BOOL JitiEmitWrapperB(ULONG OpType, PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + switch (OpType) + { + case JIT_BITWISE_XOR: return JitEmitRipRelativeXorB(Block, RipDelta, Value); + case JIT_BITWISE_AND: return JitEmitRipRelativeAndB(Block, RipDelta, Value); + case JIT_BITWISE_OR: return JitEmitRipRelativeOrB(Block, RipDelta, Value); + } +} + +PNATIVE_CODE_BLOCK JitEmitPreRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData, ULONG OpType, BOOL SaveFlags, INT32 Delta) +{ + ULONG FourByte = Link->RawDataSize / 4; + ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + if (!Block) + return NULL; + + if (SaveFlags && !JitEmitPushfqInst(Block)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + + ULONG Count = FourByte; + while (Count) + { + INT32 RipDelta = (((Count - 1) * DWORD_RIP_INST_LENGTH) + (TwoByte * WORD_RIP_INST_LENGTH) + (OneByte * BYTE_RIP_INST_LENGTH)); + if (SaveFlags) + RipDelta += 1; + RipDelta += ((FourByte - Count) * 4); + RipDelta += Delta; + if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + --Count; + } + + if (TwoByte) + { + INT32 RipDelta = (OneByte * BYTE_RIP_INST_LENGTH); + if (SaveFlags) + RipDelta += 1; + RipDelta += (FourByte * 4); + RipDelta += Delta; + if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + if (OneByte) + { + INT32 RipDelta = 0; + if (SaveFlags) + RipDelta += 1; + RipDelta += (FourByte * 4) + (TwoByte * 2); + RipDelta += Delta; + if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + if (SaveFlags && !JitEmitPopfqInst(Block)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + + return Block; +} + +PNATIVE_CODE_BLOCK JitEmitPostRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData, ULONG OpType, BOOL SaveFlags, INT32 Delta) +{ + ULONG FourByte = Link->RawDataSize / 4; + ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + if (!Block) + return NULL; + + if (SaveFlags && !JitEmitPushfqInst(Block)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + + ULONG Count = FourByte; + while (Count) + { + INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); + if (SaveFlags) + RipDelta += 1; + RipDelta += (FourByte - (Count - 1)) * DWORD_RIP_INST_LENGTH; + RipDelta *= (-1); + RipDelta += Delta; + if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + --Count; + } + + if (TwoByte) + { + INT32 RipDelta = Link->RawDataSize - (FourByte * 4); + if (SaveFlags) + RipDelta += 1; + RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); + RipDelta += WORD_RIP_INST_LENGTH; + RipDelta *= (-1); + RipDelta += Delta; + if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + if (OneByte) + { + INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); + if (SaveFlags) + RipDelta += 1; + RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); + RipDelta += WORD_RIP_INST_LENGTH; + RipDelta += BYTE_RIP_INST_LENGTH; + RipDelta *= (-1); + RipDelta += Delta; + if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + } + + if (SaveFlags && !JitEmitPopfqInst(Block)) + { + NcDeleteBlock(Block); + delete Block; + return NULL; + } + + return Block; +} diff --git a/CodeVirtualizer/Jit.h b/CodeVirtualizer/Jit.h new file mode 100644 index 0000000..b0496c2 --- /dev/null +++ b/CodeVirtualizer/Jit.h @@ -0,0 +1,51 @@ +#ifndef __JIT_H +#define __JIT_H + +#include "Windas.h" +#include "XedWrap.h" +#include "NativeCode.h" + +#define DWORD_RIP_INST_LENGTH 10 +#define WORD_RIP_INST_LENGTH 9 +#define BYTE_RIP_INST_LENGTH 7 + +#define DWORD_MOV_INST_LENGTH 10 +#define WORD_MOV_INST_LENGTH 9 +#define BYTE_MOV_INST_LENGTH 7 + +#define JIT_BITWISE_XOR 0 +#define JIT_BITWISE_AND 1 +#define JIT_BITWISE_OR 2 + +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); + +BOOL JitDoesInstOverriteConditionFlags(PNATIVE_CODE_LINK Link); + +BOOL JitAreFlagsClobberedBeforeUse(PNATIVE_CODE_LINK Link); + +VOID JitMutateInstForXor(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData); + +VOID JitMutateInstForOr(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData); + +VOID JitMutateInstForAnd(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData); + +PNATIVE_CODE_BLOCK JitEmitPreRipMov(PNATIVE_CODE_LINK Link, INT32 Delta = 0); + +PNATIVE_CODE_BLOCK JitEmitPostRipMov(PNATIVE_CODE_LINK Link, INT32 Delta = 0); + +PNATIVE_CODE_BLOCK JitEmitPreRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData, ULONG OpType, BOOL SaveFlags = TRUE, INT32 Delta = 0); + +PNATIVE_CODE_BLOCK JitEmitPostRipBitwiseOp(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData, ULONG OpType, BOOL SaveFlags = TRUE, INT32 Delta = 0); + +#endif \ No newline at end of file diff --git a/CodeVirtualizer/Main.cpp b/CodeVirtualizer/Main.cpp index 412c68e..311263f 100644 --- a/CodeVirtualizer/Main.cpp +++ b/CodeVirtualizer/Main.cpp @@ -7,8 +7,9 @@ #include "RipXorInst.h" #include "RipMovInst.h" #include "OpaqueBranching.h" +#include "Jit.h" -UCHAR TestBuffer[]{ +UCHAR TestBuffer[] = { 0x48, 0x33, 0xC0, 0x48, 0x33, 0xC0, 0xEB, 0x0E, @@ -30,32 +31,31 @@ ULONG TestBufferSize = sizeof(TestBuffer); int main() { XedTablesInit(); - srand(time(NULL)); + /*srand(time(NULL)); NATIVE_CODE_BLOCK Block; NcDisassemble(&Block, TestBuffer, TestBufferSize); PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); NcDebugPrint(OpaqueBranch); - system("pause"); + system("pause");*/ - /*NATIVE_CODE_LINK T; + NATIVE_CODE_LINK T; T.RawDataSize = 10; T.RawData = new UCHAR[10]; memset(T.RawData, 0xAA, 10); - XOR_INST_DATA Data; - RtlSecureZeroMemory(&Data, sizeof(XOR_INST_DATA)); - PNATIVE_CODE_BLOCK NewBlock = ObfEmitPreMovForInst(&T); + JIT_BITWISE_DATA Data; + RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); + PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); if (NewBlock) { printf("\n"); NcDebugPrint(NewBlock); printf("\n"); NcPrintBlockCode(NewBlock); - }*/ - //PNATIVE_CODE_LINK temp = new NATIVE_CODE_LINK("Hello"); + } system("pause"); } \ No newline at end of file diff --git a/CodeVirtualizer/NativeCode.cpp b/CodeVirtualizer/NativeCode.cpp index 4f1351b..6c2a787 100644 --- a/CodeVirtualizer/NativeCode.cpp +++ b/CodeVirtualizer/NativeCode.cpp @@ -383,7 +383,10 @@ PVOID NcAssemble(PNATIVE_CODE_BLOCK Block) VOID NcDeleteBlock(PNATIVE_CODE_BLOCK Block) { - for (PNATIVE_CODE_LINK T = Block->Start; T;) + if (!Block->Start || !Block->End) + return; + + for (PNATIVE_CODE_LINK T = Block->Start; T != Block->End->Next;) { PNATIVE_CODE_LINK Next = T->Next; delete T; diff --git a/CodeVirtualizer/RipAndInst.cpp b/CodeVirtualizer/RipAndInst.cpp new file mode 100644 index 0000000..f546fdf --- /dev/null +++ b/CodeVirtualizer/RipAndInst.cpp @@ -0,0 +1,38 @@ +#include "RipAndInst.h" + +BOOL JitEmitRipRelativeAndD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + UCHAR RawData[] = { 0x81, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + *(PULONG)&Link->RawData[6] = Value; + XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + NcAppendToBlock(Block, Link); + return TRUE; +} + +BOOL JitEmitRipRelativeAndW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + UCHAR RawData[] = { 0x66, 0x83, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[3] = RipDelta; + *(PUSHORT)&Link->RawData[7] = (USHORT)Value; + XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + NcAppendToBlock(Block, Link); + return TRUE; +} + +BOOL JitEmitRipRelativeAndB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + UCHAR RawData[] = { 0x80, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; + XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + NcAppendToBlock(Block, Link); + return TRUE; +} + diff --git a/CodeVirtualizer/RipAndInst.h b/CodeVirtualizer/RipAndInst.h new file mode 100644 index 0000000..af6c515 --- /dev/null +++ b/CodeVirtualizer/RipAndInst.h @@ -0,0 +1,16 @@ +#ifndef __RIP_AND_INST_H +#define __RIP_AND_INST_H + +#include "Windas.h" +#include "XedWrap.h" +#include "NativeCode.h" + +BOOL JitEmitRipRelativeAndD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); + +BOOL JitEmitRipRelativeAndW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); + +BOOL JitEmitRipRelativeAndB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); + + + +#endif diff --git a/CodeVirtualizer/RipMovInst.cpp b/CodeVirtualizer/RipMovInst.cpp index 84f714f..fbae370 100644 --- a/CodeVirtualizer/RipMovInst.cpp +++ b/CodeVirtualizer/RipMovInst.cpp @@ -1,173 +1,38 @@ #include "RipMovInst.h" - -BOOL ObfEmitRipRelativeMovD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data) +BOOL JitEmitRipRelativeMovD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data) { UCHAR RawData[] = { 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); - *(PINT32)&Link->RawData[DWORD_MOV_INST_RIP_OFFSET] = RipDelta; - memcpy(&Link->RawData[DWORD_MOV_INST_MOV_OFFSET], Data, 4); + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + memcpy(&Link->RawData[6], Data, 4); printf("%p memes\n", Link); XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); NcAppendToBlock(Block, Link); return TRUE; } -BOOL ObfEmitRipRelativeMovW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data) +BOOL JitEmitRipRelativeMovW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data) { UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); - *(PINT32)&Link->RawData[WORD_MOV_INST_RIP_OFFSET] = RipDelta; - memcpy(&Link->RawData[WORD_MOV_INST_MOV_OFFSET], Data, 2); + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[3] = RipDelta; + memcpy(&Link->RawData[7], Data, 2); XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); NcAppendToBlock(Block, Link); return TRUE; } -BOOL ObfEmitRipRelativeMovB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data) +BOOL JitEmitRipRelativeMovB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data) { UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); - *(PINT32)&Link->RawData[BYTE_MOV_INST_RIP_OFFSET] = RipDelta; - Link->RawData[BYTE_MOV_INST_MOV_OFFSET] = *Data; + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + Link->RawData[6] = *Data; XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); NcAppendToBlock(Block, Link); return TRUE; } - -PNATIVE_CODE_BLOCK ObfEmitPreMovForInst(PNATIVE_CODE_LINK Link, INT32 DeltaToInst) -{ - ULONG FourByte = Link->RawDataSize / 4; - ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - - PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - - Block->Start = Block->End = new NATIVE_CODE_LINK; - PUCHAR DataOffset = Link->RawData; - ULONG Count = FourByte; - while (Count) - { - //Account for remaining MOVs - INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH)); - //Account for already MOVd instructions - RipDelta += ((FourByte - Count) * 4); - RipDelta += DeltaToInst; - //Add the actual instruction - printf("%p IS THE DATAOFFSET\n", DataOffset); - system("pause"); - if (!ObfEmitRipRelativeMovD(Block, RipDelta, DataOffset)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - DataOffset += 4; - --Count; - } - - if (TwoByte) - { - INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH); - RipDelta += (FourByte * 4); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeMovW(Block, RipDelta, DataOffset)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - DataOffset += 2; - } - - if (OneByte) - { - INT32 RipDelta = 0; - RipDelta += (FourByte * 4) + (TwoByte * 2); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeMovB(Block, RipDelta, DataOffset)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - PNATIVE_CODE_LINK StartLink = Block->Start; - Block->Start = Block->Start->Next; - if (Block->Start) - Block->Start->Prev = NULL; - delete StartLink; - - return Block; -} - -PNATIVE_CODE_BLOCK ObfEmitPostMovForInst(PNATIVE_CODE_LINK Link, INT32 DeltaToInst) -{ - ULONG FourByte = Link->RawDataSize / 4; - ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - - PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - - Block->Start = Block->End = new NATIVE_CODE_LINK; - ULONG ZeroValue = 0; - ULONG Count = FourByte; - while (Count) - { - INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH; - RipDelta *= (-1); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - --Count; - } - - if (TwoByte) - { - INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - RipDelta += WORD_MOV_INST_LENGTH; - RipDelta *= (-1); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - if (OneByte) - { - INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - RipDelta += WORD_MOV_INST_LENGTH; - RipDelta += BYTE_MOV_INST_LENGTH; - RipDelta *= (-1); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - PNATIVE_CODE_LINK StartLink = Block->Start; - Block->Start = Block->Start->Next; - if (Block->Start) - Block->Start->Prev = NULL; - delete StartLink; - - return Block; -} - diff --git a/CodeVirtualizer/RipMovInst.h b/CodeVirtualizer/RipMovInst.h index 0c133a2..7109445 100644 --- a/CodeVirtualizer/RipMovInst.h +++ b/CodeVirtualizer/RipMovInst.h @@ -5,28 +5,11 @@ #include "XedWrap.h" #include "NativeCode.h" -#define DWORD_MOV_INST_LENGTH 10 -#define DWORD_MOV_INST_RIP_OFFSET 2 -#define DWORD_MOV_INST_MOV_OFFSET 6 +BOOL JitEmitRipRelativeMovD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data); -#define WORD_MOV_INST_LENGTH 9 -#define WORD_MOV_INST_RIP_OFFSET 3 -#define WORD_MOV_INST_MOV_OFFSET 7 - -#define BYTE_MOV_INST_LENGTH 7 -#define BYTE_MOV_INST_RIP_OFFSET 2 -#define BYTE_MOV_INST_MOV_OFFSET 6 - -BOOL ObfEmitRipRelativeMovD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data); - -BOOL ObfEmitRipRelativeMovW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data); - -BOOL ObfEmitRipRelativeMovB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data); - -PNATIVE_CODE_BLOCK ObfEmitPreMovForInst(PNATIVE_CODE_LINK Link, INT32 DeltaToInst = 0); - -PNATIVE_CODE_BLOCK ObfEmitPostMovForInst(PNATIVE_CODE_LINK Link, INT32 DeltaToInst = 0); +BOOL JitEmitRipRelativeMovW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data); +BOOL JitEmitRipRelativeMovB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, PUCHAR Data); #endif diff --git a/CodeVirtualizer/RipOrInst.cpp b/CodeVirtualizer/RipOrInst.cpp new file mode 100644 index 0000000..f1c43b6 --- /dev/null +++ b/CodeVirtualizer/RipOrInst.cpp @@ -0,0 +1,38 @@ +#include "RipOrInst.h" + +BOOL JitEmitRipRelativeOrD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + UCHAR RawData[] = { 0x81, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + *(PULONG)&Link->RawData[6] = Value; + XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + NcAppendToBlock(Block, Link); + return TRUE; +} + +BOOL JitEmitRipRelativeOrW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + UCHAR RawData[] = { 0x66, 0x83, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[3] = RipDelta; + *(PUSHORT)&Link->RawData[7] = (USHORT)Value; + XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + NcAppendToBlock(Block, Link); + return TRUE; +} + +BOOL JitEmitRipRelativeOrB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +{ + UCHAR RawData[] = { 0x80, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; + XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + NcAppendToBlock(Block, Link); + return TRUE; +} + diff --git a/CodeVirtualizer/RipOrInst.h b/CodeVirtualizer/RipOrInst.h new file mode 100644 index 0000000..d3decd0 --- /dev/null +++ b/CodeVirtualizer/RipOrInst.h @@ -0,0 +1,16 @@ +#ifndef __RIP_OR_INST_H +#define __RIP_OR_INST_H + +#include "Windas.h" +#include "XedWrap.h" +#include "NativeCode.h" + +BOOL JitEmitRipRelativeOrD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); + +BOOL JitEmitRipRelativeOrW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); + +BOOL JitEmitRipRelativeOrB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); + + + +#endif diff --git a/CodeVirtualizer/RipXorInst.cpp b/CodeVirtualizer/RipXorInst.cpp index f683400..fbd6536 100644 --- a/CodeVirtualizer/RipXorInst.cpp +++ b/CodeVirtualizer/RipXorInst.cpp @@ -1,311 +1,38 @@ #include "RipXorInst.h" - -BOOL ObfEmitPushfqInst(PNATIVE_CODE_BLOCK Block) -{ - UCHAR RawData[] = { 0x9C }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); - XedDecode(&Link->XedInstruction, Link->RawData, 1); - NcAppendToBlock(Block, Link); - return TRUE; -} - -BOOL ObfEmitPopfqInst(PNATIVE_CODE_BLOCK Block) -{ - UCHAR RawData[] = { 0x9D }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); - XedDecode(&Link->XedInstruction, Link->RawData, 1); - NcAppendToBlock(Block, Link); - return TRUE; -} - -BOOL ObfEmitRipRelativeXorD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +BOOL JitEmitRipRelativeXorD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) { UCHAR RawData[] = { 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); - *(PINT32)&Link->RawData[DWORD_XOR_INST_RIP_OFFSET] = RipDelta; - *(PULONG)&Link->RawData[DWORD_XOR_INST_XOR_OFFSET] = Value; + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + *(PULONG)&Link->RawData[6] = Value; XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); NcAppendToBlock(Block, Link); return TRUE; } -BOOL ObfEmitRipRelativeXorW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +BOOL JitEmitRipRelativeXorW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) { UCHAR RawData[] = { 0x66, 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); - *(PINT32)&Link->RawData[WORD_XOR_INST_RIP_OFFSET] = RipDelta; - *(PUSHORT)&Link->RawData[WORD_XOR_INST_XOR_OFFSET] = (USHORT)Value; + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[3] = RipDelta; + *(PUSHORT)&Link->RawData[7] = (USHORT)Value; XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); NcAppendToBlock(Block, Link); return TRUE; } -BOOL ObfEmitRipRelativeXorB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) +BOOL JitEmitRipRelativeXorB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value) { UCHAR RawData[] = { 0x80, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); - *(PINT32)&Link->RawData[BYTE_XOR_INST_RIP_OFFSET] = RipDelta; - *(PUCHAR)&Link->RawData[BYTE_XOR_INST_XOR_OFFSET] = (UCHAR)Value; + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); + *(PINT32)&Link->RawData[2] = RipDelta; + *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); NcAppendToBlock(Block, Link); return TRUE; } -VOID ObfXorInstBytes(PNATIVE_CODE_LINK Link, PXOR_INST_DATA XorData) -{ - ULONG FourByte = Link->RawDataSize / 4; - ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - - PUCHAR Buffer = Link->RawData; - while (FourByte) - { - *(PULONG)Buffer ^= XorData->Data[2 - FourByte]; - Buffer += 4; - FourByte--; - } - - if (TwoByte) - { - *(PUSHORT)Buffer ^= (USHORT)XorData->Data[3]; - Buffer += 2; - } - - if (OneByte) - *(PUCHAR)Buffer ^= (UCHAR)XorData->Data[3]; - -} - -BOOL ObfiCheckXorFlagCollisions(CONST XED_FLAG_SET* FlagsRead, XED_FLAG_SET Ledger) -{ - return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) || - (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || - (FlagsRead->s.pf && FlagsRead->s.pf == Ledger.s.pf) || - (FlagsRead->s.of && FlagsRead->s.of == Ledger.s.of) || - (FlagsRead->s.cf && FlagsRead->s.cf == Ledger.s.cf) || - (FlagsRead->s.af && FlagsRead->s.af == Ledger.s.af) - ); -} - -VOID ObfiUpdateXorLedger(CONST XED_FLAG_SET* FlagsWritten, XED_FLAG_SET* Ledger) -{ - if (FlagsWritten->s.zf) - Ledger->s.zf = FALSE; - if (FlagsWritten->s.sf) - Ledger->s.sf = FALSE; - if (FlagsWritten->s.pf) - Ledger->s.pf = FALSE; - if (FlagsWritten->s.of) - Ledger->s.of = FALSE; - if (FlagsWritten->s.cf) - Ledger->s.cf = FALSE; - if (FlagsWritten->s.af) - Ledger->s.af = FALSE; -} - -BOOL ObfDoesInstWriteToAllXorFlags(PNATIVE_CODE_LINK Link) -{ - CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction); - CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); - - return (FlagsWritten->s.zf && - FlagsWritten->s.sf && - FlagsWritten->s.pf && - FlagsWritten->s.of && - FlagsWritten->s.cf && - FlagsUndefined->s.af - ); -} - -BOOL ObfAreXorFlagsClobberedBeforeUse(PNATIVE_CODE_LINK Link) -{ - XED_FLAG_SET Ledger; - Ledger.s.zf = TRUE; - Ledger.s.sf = TRUE; - Ledger.s.pf = TRUE; - Ledger.s.of = TRUE; - Ledger.s.cf = TRUE; - Ledger.s.af = TRUE; - - for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - { - if (T->Flags & CODE_FLAG_IS_LABEL) - continue; - - CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); - CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags); - CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - - if (ObfiCheckXorFlagCollisions(FlagsRead, Ledger)) - return FALSE; - - ObfiUpdateXorLedger(FlagsWritten, &Ledger); - - if (Ledger.flat == 0) - return TRUE; - } - return FALSE; -} - -PNATIVE_CODE_BLOCK ObfEmitPreXorForInst(PNATIVE_CODE_LINK Link, PXOR_INST_DATA XorData, BOOL SaveFlags, INT32 DeltaToInst) -{ - ULONG FourByte = Link->RawDataSize / 4; - ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - - PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - if (!Block) - return NULL; - - if (SaveFlags && !ObfEmitPushfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - - ULONG Count = FourByte; - while (Count) - { - //Account for remaining XORs - INT32 RipDelta = (((Count - 1) * DWORD_XOR_INST_LENGTH) + (TwoByte * WORD_XOR_INST_LENGTH) + (OneByte * BYTE_XOR_INST_LENGTH)); - //Account for POPFQ - if (SaveFlags) - RipDelta += 1; - //Account for already XORd instructions - RipDelta += ((FourByte - Count) * 4); - RipDelta += DeltaToInst; - //Add the actual instruction - if (!ObfEmitRipRelativeXorD(Block, RipDelta, XorData->Data[FourByte-Count])) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - --Count; - } - - if (TwoByte) - { - INT32 RipDelta = (OneByte * BYTE_XOR_INST_LENGTH); - if (SaveFlags) - RipDelta += 1; - RipDelta += (FourByte * 4); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeXorW(Block, RipDelta, XorData->Data[3])) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - if (OneByte) - { - INT32 RipDelta = 0; - if (SaveFlags) - RipDelta += 1; - RipDelta += (FourByte * 4) + (TwoByte * 2); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeXorB(Block, RipDelta, XorData->Data[4])) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - if (SaveFlags && !ObfEmitPopfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - - return Block; -} - -PNATIVE_CODE_BLOCK ObfEmitPostXorForInst(PNATIVE_CODE_LINK Link, PXOR_INST_DATA XorData, BOOL SaveFlags, INT32 DeltaToInst) -{ - ULONG FourByte = Link->RawDataSize / 4; - ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - - PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - if (!Block) - return NULL; - - if (SaveFlags && !ObfEmitPushfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - - ULONG Count = FourByte; - while (Count) - { - INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - if (SaveFlags) - RipDelta += 1; - RipDelta += (FourByte - (Count - 1)) * DWORD_XOR_INST_LENGTH; - RipDelta *= (-1); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeXorD(Block, RipDelta, XorData->Data[FourByte - Count])) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - --Count; - } - - if (TwoByte) - { - INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - if (SaveFlags) - RipDelta += 1; - RipDelta += (FourByte * DWORD_XOR_INST_LENGTH); - RipDelta += WORD_XOR_INST_LENGTH; - RipDelta *= (-1); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeXorW(Block, RipDelta, XorData->Data[3])) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - if (OneByte) - { - INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - if (SaveFlags) - RipDelta += 1; - RipDelta += (FourByte * DWORD_XOR_INST_LENGTH); - RipDelta += WORD_XOR_INST_LENGTH; - RipDelta += BYTE_XOR_INST_LENGTH; - RipDelta *= (-1); - RipDelta += DeltaToInst; - if (!ObfEmitRipRelativeXorB(Block, RipDelta, XorData->Data[4])) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - } - - if (SaveFlags && !ObfEmitPopfqInst(Block)) - { - NcDeleteBlock(Block); - delete Block; - return NULL; - } - - return Block; -} diff --git a/CodeVirtualizer/RipXorInst.h b/CodeVirtualizer/RipXorInst.h index 9d1dd40..6e0cb91 100644 --- a/CodeVirtualizer/RipXorInst.h +++ b/CodeVirtualizer/RipXorInst.h @@ -5,45 +5,11 @@ #include "XedWrap.h" #include "NativeCode.h" -#define DWORD_XOR_INST_LENGTH 10 -#define DWORD_XOR_INST_RIP_OFFSET 2 -#define DWORD_XOR_INST_XOR_OFFSET 6 +BOOL JitEmitRipRelativeXorD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); -#define WORD_XOR_INST_LENGTH 9 -#define WORD_XOR_INST_RIP_OFFSET 3 -#define WORD_XOR_INST_XOR_OFFSET 7 +BOOL JitEmitRipRelativeXorW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); -#define BYTE_XOR_INST_LENGTH 7 -#define BYTE_XOR_INST_RIP_OFFSET 2 -#define BYTE_XOR_INST_XOR_OFFSET 6 - - -typedef struct _XOR_INST_DATA -{ - ULONG Data[5]; -}XOR_INST_DATA, *PXOR_INST_DATA; - -BOOL ObfEmitPushfqInst(PNATIVE_CODE_BLOCK Block); - -BOOL ObfEmitPopfqInst(PNATIVE_CODE_BLOCK Block); - -BOOL ObfEmitRipRelativeXorD(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); - -BOOL ObfEmitRipRelativeXorW(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); - -BOOL ObfEmitRipRelativeXorB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); - -VOID ObfXorInstBytes(PNATIVE_CODE_LINK Link, PXOR_INST_DATA XorData); - -//Used to see if the PreXor needs to save the flags. -//If all flags are written to by the XORs are also written to by the target inst theres no point in saving flags -BOOL ObfDoesInstWriteToAllXorFlags(PNATIVE_CODE_LINK Link); - -BOOL ObfAreXorFlagsClobberedBeforeUse(PNATIVE_CODE_LINK Link); - -PNATIVE_CODE_BLOCK ObfEmitPreXorForInst(PNATIVE_CODE_LINK Link, PXOR_INST_DATA XorData, BOOL SaveFlags, INT32 DeltaToInst = 0); - -PNATIVE_CODE_BLOCK ObfEmitPostXorForInst(PNATIVE_CODE_LINK Link, PXOR_INST_DATA XorData, BOOL SaveFlags, INT32 DeltaToInst = 0); +BOOL JitEmitRipRelativeXorB(PNATIVE_CODE_BLOCK Block, INT32 RipDelta, ULONG Value); diff --git a/CodeVirtualizer/Windas.h b/CodeVirtualizer/Windas.h index d34980f..f97a319 100644 --- a/CodeVirtualizer/Windas.h +++ b/CodeVirtualizer/Windas.h @@ -17,7 +17,7 @@ * Nc -> Native Code function * Vc -> Virtual Code function * Obf -> Obfuscator function -* Obfi -> Internal obfuscator function +* Jit -> Jit related function * Xed -> Xed macro wrapper * Vm -> Virtual Machine function */ diff --git a/CodeVirtualizer/x64/Debug/Assembly.lst b/CodeVirtualizer/x64/Debug/Assembly.lst new file mode 100644 index 0000000..c29685f --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Assembly.lst @@ -0,0 +1,15 @@ +Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/11/21 20:38:55 +Assembly.asm Page 1 - 1 + + + 00000000 .CODE + + + END + Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/11/21 20:38:55 +Assembly.asm Symbols 2 - 1 + + + + 0 Warnings + 0 Errors diff --git a/CodeVirtualizer/x64/Debug/Jit.cod b/CodeVirtualizer/x64/Debug/Jit.cod new file mode 100644 index 0000000..a72d1b8 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Jit.cod @@ -0,0 +1,7876 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__DD050276_Jit@cpp DB 01H +__BF2A7ACC_vector DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC __local_stdio_printf_options +PUBLIC _vfprintf_l +PUBLIC printf +PUBLIC wmemcpy +PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned +PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all +PUBLIC ??$_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 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ; _NATIVE_CODE_LINK::`scalar deleting destructor' +PUBLIC ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate +PUBLIC ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > +PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy +PUBLIC ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy +PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first +PUBLIC ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK +PUBLIC ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' +PUBLIC ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst +PUBLIC ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst +PUBLIC ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions +PUBLIC ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger +PUBLIC ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; JitDoesInstOverriteConditionFlags +PUBLIC ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; JitAreFlagsClobberedBeforeUse +PUBLIC ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ; JitMutateInstForXor +PUBLIC ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov +PUBLIC ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov +PUBLIC ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ; JitEmitPreRipBitwiseOp +PUBLIC ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ; JitEmitPostRipBitwiseOp +PUBLIC ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator +PUBLIC ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange +PUBLIC ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > +PUBLIC ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > +PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> +PUBLIC ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > +PUBLIC ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate +PUBLIC __JustMyCode_Default +PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage +PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string' +PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string' +PUBLIC ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' +PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0BG@BLDOCDOA@?$CFp?5IS?5THE?5DATAOFFSET?6@ ; `string' +PUBLIC ??_C@_05PDJBBECF@pause@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN ??2@YAPEAX_K@Z:PROC ; operator new +EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete +EXTRN __imp__invalid_parameter:PROC +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp_system:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN __imp__CrtDbgReport:PROC +EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC +EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC +EXTRN __imp___acrt_iob_func:PROC +EXTRN __imp___stdio_common_vfprintf:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN xed_simple_flag_get_read_flag_set:PROC +EXTRN xed_simple_flag_get_written_flag_set:PROC +EXTRN xed_simple_flag_get_undefined_flag_set:PROC +EXTRN xed_decode:PROC +EXTRN xed_decoded_inst_get_rflags_info:PROC +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ??1_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK +EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK +EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock +EXTRN ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDeleteBlock +EXTRN ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeXorD +EXTRN ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeXorW +EXTRN ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeXorB +EXTRN ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z:PROC ; JitEmitRipRelativeMovD +EXTRN ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z:PROC ; JitEmitRipRelativeMovW +EXTRN ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z:PROC ; JitEmitRipRelativeMovB +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA +_BSS SEGMENT +?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage +_BSS ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$__local_stdio_printf_options DD imagerel $LN3 + 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+126 + DD imagerel $unwind$_vfprintf_l +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$printf DD imagerel $LN3 + DD imagerel $LN3+214 + DD imagerel $unwind$printf +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 + DD imagerel $LN21+476 + DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 + DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 + 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+100 + DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+202 + DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 + DD imagerel $LN3+108 + DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+280 + DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 + 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+270 + DD imagerel $unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 + DD imagerel $LN6+270 + DD imagerel $unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD imagerel $LN11 + 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+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+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+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+331 + DD imagerel $unwind$?JitMutateInstForXor@@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+1088 + DD imagerel $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA + DD imagerel ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44 + DD imagerel $unwind$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 + DD imagerel $LN25+1200 + DD imagerel $unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA + DD imagerel ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44 + DD imagerel $unwind$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA +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+1111 + DD imagerel $unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA +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+1245 + DD imagerel $unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 + DD imagerel $LN4+121 + DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+95 + DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+97 + DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_05PDJBBECF@pause@ +CONST SEGMENT +??_C@_05PDJBBECF@pause@ DB 'pause', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BG@BLDOCDOA@?$CFp?5IS?5THE?5DATAOFFSET?6@ +CONST SEGMENT +??_C@_0BG@BLDOCDOA@?$CFp?5IS?5THE?5DATAOFFSET?6@ DB '%p IS THE DATAOFFSET' + DB 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ +CONST SEGMENT +??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ DB '"' + DB 00H, 'i', 00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H + DB 'd', 00H, ' ', 00H, 'a', 00H, 'r', 00H, 'g', 00H, 'u', 00H, 'm' + DB 00H, 'e', 00H, 'n', 00H, 't', 00H, '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ +CONST SEGMENT +??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H + DB 'd', 00H, 'j', 00H, 'u', 00H, 's', 00H, 't', 00H, '_', 00H, 'm' + DB 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H, 'l', 00H, 'l', 00H + DB 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o' + DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H + DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +CONST SEGMENT +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' + DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H + DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' + DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H + DB '6', 00H, ')', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H, 'r' + DB 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' ', 00H + DB 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H, ' ' + DB 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o', 00H + DB '\', 00H, '2', 00H, '0', 00H, '1', 00H, '9', 00H, '\', 00H, 'C' + DB 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'u', 00H, 'n', 00H, 'i', 00H + DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' + DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H + DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H + DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_02DKCKIIND@?$CFs@ +CONST SEGMENT +??_C@_02DKCKIIND@?$CFs@ DB '%s', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BB@FCMFBGOM@invalid?5argument@ +CONST SEGMENT +??_C@_0BB@FCMFBGOM@invalid?5argument@ DB 'invalid argument', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +_DATA ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H + DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H + DB 00H + DB 00H + DB 0a9H, 02H + DB 02H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z + DD imagerel $ip2state$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 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 + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H + DB 00H + DB 00H + DB 0a9H, 02H + DB 02H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z + DD imagerel $ip2state$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 xdata +xdata SEGMENT +$unwind$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH + DB 00H + DB 00H + DB 0c1H, 02H + DB 02H + DB 'p' + DB 00H + DB '8' + DB 04H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 04H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA + DB 036H + DD imagerel ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z + DD imagerel $ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025053f19H + DD 01122317H + DD 0700b007fH + DD 0500aH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z + DD 03e2H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcName$0 DB 05aH ; JitEmitPostRipMov + DB 065H + DB 072H + DB 06fH + DB 056H + DB 061H + DB 06cH + DB 075H + DB 065H + DB 00H + ORG $+6 +?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcVarDesc DD 0a4H ; JitEmitPostRipMov + DD 04H + DQ FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcName$0 + ORG $+48 +?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData DD 01H ; JitEmitPostRipMov + DD 00H + DQ FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +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 'p' + DB 00H + DB '8' + DB 04H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 04H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA + DB 036H + DD imagerel ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z + DD imagerel $ip2state$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025052e11H + DD 01122317H + DD 0700b007dH + DD 0500aH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H + DD 01132318H + DD 0700c002dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053b19H + DD 010e2313H + DD 070070031H + DD 05006H + DD imagerel __GSHandlerCheck + DD 0178H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcName$0 DB 04cH ; JitAreFlagsClobberedBeforeUse + DB 065H + DB 064H + DB 067H + DB 065H + DB 072H + DB 00H + ORG $+9 +?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcVarDesc DD 024H ; JitAreFlagsClobberedBeforeUse + DD 04H + DQ FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcName$0 + ORG $+48 +?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcFrameData DD 01H ; JitAreFlagsClobberedBeforeUse + DD 00H + DQ FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$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 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025052e01H + DD 01122317H + DD 0700b001fH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H + DB 00H + DB 00H + DB 0b8H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z + DD imagerel $ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H + DD 010e2313H + DD 07007002fH + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z + DD 0162H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 052H ; JitEmitPopfqInst + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 024H ; JitEmitPopfqInst + DD 01H + DQ FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 + ORG $+48 +?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 01H ; JitEmitPopfqInst + DD 00H + DQ FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H + DB 00H + DB 00H + DB 0b8H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z + DD imagerel $ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H + DD 010e2313H + DD 07007002fH + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z + DD 0162H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 052H ; JitEmitPushfqInst + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 024H ; JitEmitPushfqInst + DD 01H + DQ FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 + ORG $+48 +?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 01H ; JitEmitPushfqInst + DD 00H + DQ FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@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 +$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 025063501H + DD 0119231eH + DD 070120026H + DD 050106011H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + DD 0119231eH + DD 070120026H + DD 050106011H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H + DD 0118331dH + DD 07011002bH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H + DD 010e3313H + DD 070070027H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H + DD 0118331dH + DD 070110047H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0228H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr + DB 057H + DB 063H + DB 00H +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 031H + DB 00H + ORG $+1 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 032H + DB 00H + ORG $+13 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 + DD 0f8H + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 + DD 0d4H + DD 02H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 + ORG $+144 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr + DD 00H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+10 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all + DD 04H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all + DD 00H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H + DD 01133318H + DD 0700c002fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +_TEXT SEGMENT +__formal$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT + +; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 688 : // no overflow check on the following multiply; we assume _Allocate did that check +; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); + + 00040 48 6b 85 f0 00 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 690 : } + + 00057 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 +?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_Al$ = 224 +_Ptr$ = 232 +??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain >, COMDAT + +; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 999 : // deallocate a plain pointer using an allocator +; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; +; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { +; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); + + 0003b 41 b8 01 00 00 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 0004f e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits >::deallocate + 00054 90 npad 1 + +; 1003 : } else { +; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; +; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); +; 1006 : } +; 1007 : } + + 00055 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 +??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +_TEXT SEGMENT +_Ptr$ = 224 +_Bytes$ = 232 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT + +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { + +$LN4: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 215 : #if defined(_M_IX86) || defined(_M_X64) +; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0003b 48 81 bd e8 00 + 00 00 00 10 00 + 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H + 00046 72 13 jb SHORT $LN2@Deallocate + +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); + + 00048 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR _Bytes$[rbp] + 0004f 48 8d 8d e0 00 + 00 00 lea rcx, QWORD PTR _Ptr$[rbp] + 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned +$LN2@Deallocate: + +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); + + 0005b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Bytes$[rbp] + 00062 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 + +; 222 : } + + 0006f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +_TEXT SEGMENT +_First$ = 224 +_Last$ = 232 +_Al$ = 240 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT + +; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + +; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this +; 957 : using _Ty = typename _Alloc::value_type; +; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { +; 959 : for (; _First != _Last; ++_First) { +; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); +; 961 : } +; 962 : } +; 963 : } + + 00041 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_Al$ = 224 +_Ptr$ = 232 +??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal >, COMDAT + +; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1028 : using _Ty = typename _Alloc::value_type; +; 1029 : _Ptr->~_Ty(); +; 1030 : _Deallocate_plain(_Al, _Ptr); + + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0004e 90 npad 1 + +; 1031 : } + + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +_TEXT SEGMENT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT + +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); + + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + +; 600 : _Val = static_cast<_Other&&>(_New_val); + + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _New_val$[rbp] + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +_TEXT SEGMENT +this$ = 224 +__formal$ = 232 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT + +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z +_TEXT SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +Count$ = 132 +RipDelta$1 = 164 +RipDelta$2 = 196 +RipDelta$3 = 228 +$T4 = 456 +$T5 = 488 +$T6 = 520 +$T7 = 552 +$T8 = 584 +$T9 = 616 +$T10 = 648 +tv221 = 664 +tv211 = 664 +tv183 = 664 +tv157 = 664 +tv128 = 664 +tv86 = 664 +Link$ = 704 +JitData$ = 712 +OpType$ = 720 +SaveFlags$ = 728 +Delta$ = 736 +?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z PROC ; JitEmitPostRipBitwiseOp, COMDAT + +; 331 : { + +$LN29: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec c8 02 + 00 00 sub rsp, 712 ; 000002c8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 e8 + 02 00 00 mov rcx, QWORD PTR [rsp+744] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 332 : ULONG FourByte = Link->RawDataSize / 4; + + 00045 33 d2 xor edx, edx + 00047 48 8b 85 c0 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] + 00051 b9 04 00 00 00 mov ecx, 4 + 00056 f7 f1 div ecx + 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax + +; 333 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + + 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005e c1 e0 02 shl eax, 2 + 00061 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0006b 2b c8 sub ecx, eax + 0006d 8b c1 mov eax, ecx + 0006f 33 d2 xor edx, edx + 00071 b9 02 00 00 00 mov ecx, 2 + 00076 f7 f1 div ecx + 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + +; 334 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0007e c1 e0 02 shl eax, 2 + 00081 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0008b 2b c8 sub ecx, eax + 0008d 8b c1 mov eax, ecx + 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00092 d1 e1 shl ecx, 1 + 00094 2b c1 sub eax, ecx + 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax + +; 335 : +; 336 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a3 48 89 85 e8 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 000aa 48 83 bd e8 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 000b2 74 15 je SHORT $LN16@JitEmitPos + 000b4 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c0 48 89 85 98 02 + 00 00 mov QWORD PTR tv86[rbp], rax + 000c7 eb 0b jmp SHORT $LN17@JitEmitPos +$LN16@JitEmitPos: + 000c9 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv86[rbp], 0 +$LN17@JitEmitPos: + 000d4 48 8b 85 98 02 + 00 00 mov rax, QWORD PTR tv86[rbp] + 000db 48 89 85 c8 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000e2 48 8b 85 c8 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax + +; 337 : if (!Block) + + 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000f2 75 07 jne SHORT $LN4@JitEmitPos + +; 338 : return NULL; + + 000f4 33 c0 xor eax, eax + 000f6 e9 d8 03 00 00 jmp $LN1@JitEmitPos +$LN4@JitEmitPos: + +; 339 : +; 340 : if (SaveFlags && !JitEmitPushfqInst(Block)) + + 000fb 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 00102 74 57 je SHORT $LN5@JitEmitPos + 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst + 0010d 85 c0 test eax, eax + 0010f 75 4a jne SHORT $LN5@JitEmitPos + +; 341 : { +; 342 : NcDeleteBlock(Block); + + 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 343 : delete Block; + + 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 + 00125 48 83 bd 08 02 + 00 00 00 cmp QWORD PTR $T6[rbp], 0 + 0012d 74 1a je SHORT $LN18@JitEmitPos + 0012f ba 01 00 00 00 mov edx, 1 + 00134 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00140 48 89 85 98 02 + 00 00 mov QWORD PTR tv128[rbp], rax + 00147 eb 0b jmp SHORT $LN19@JitEmitPos +$LN18@JitEmitPos: + 00149 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv128[rbp], 0 +$LN19@JitEmitPos: + +; 344 : return NULL; + + 00154 33 c0 xor eax, eax + 00156 e9 78 03 00 00 jmp $LN1@JitEmitPos +$LN5@JitEmitPos: + +; 345 : } +; 346 : +; 347 : ULONG Count = FourByte; + + 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: + +; 348 : while (Count) + + 00164 83 bd 84 00 00 + 00 00 cmp DWORD PTR Count$[rbp], 0 + 0016b 0f 84 0a 01 00 + 00 je $LN3@JitEmitPos + +; 349 : { +; 350 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); + + 00171 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 00177 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 0017a 2b c8 sub ecx, eax + 0017c 8b c1 mov eax, ecx + 0017e c1 e0 02 shl eax, 2 + 00181 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00188 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0018b 2b c8 sub ecx, eax + 0018d 8b c1 mov eax, ecx + 0018f 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 351 : if (SaveFlags) + + 00195 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 0019c 74 0e je SHORT $LN6@JitEmitPos + +; 352 : RipDelta += 1; + + 0019e 8b 85 a4 00 00 + 00 mov eax, DWORD PTR RipDelta$1[rbp] + 001a4 ff c0 inc eax + 001a6 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax +$LN6@JitEmitPos: + +; 353 : RipDelta += (FourByte - (Count - 1)) * DWORD_RIP_INST_LENGTH; + + 001ac 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 001b2 ff c8 dec eax + 001b4 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001b7 2b c8 sub ecx, eax + 001b9 8b c1 mov eax, ecx + 001bb 6b c0 0a imul eax, eax, 10 + 001be 8b 8d a4 00 00 + 00 mov ecx, DWORD PTR RipDelta$1[rbp] + 001c4 03 c8 add ecx, eax + 001c6 8b c1 mov eax, ecx + 001c8 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 354 : RipDelta *= (-1); + + 001ce 6b 85 a4 00 00 + 00 ff imul eax, DWORD PTR RipDelta$1[rbp], -1 + 001d5 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 355 : RipDelta += Delta; + + 001db 8b 85 e0 02 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 001e1 8b 8d a4 00 00 + 00 mov ecx, DWORD PTR RipDelta$1[rbp] + 001e7 03 c8 add ecx, eax + 001e9 8b c1 mov eax, ecx + 001eb 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 356 : if (!JitEmitRipRelativeXorD(Block, RipDelta, JitData->Data[FourByte - Count])) + + 001f1 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 001f7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001fa 2b c8 sub ecx, eax + 001fc 8b c1 mov eax, ecx + 001fe 8b c0 mov eax, eax + 00200 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 00207 44 8b 04 81 mov r8d, DWORD PTR [rcx+rax*4] + 0020b 8b 95 a4 00 00 + 00 mov edx, DWORD PTR RipDelta$1[rbp] + 00211 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00215 e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD + 0021a 85 c0 test eax, eax + 0021c 75 4a jne SHORT $LN7@JitEmitPos + +; 357 : { +; 358 : NcDeleteBlock(Block); + + 0021e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00222 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 359 : delete Block; + + 00227 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0022b 48 89 85 28 02 + 00 00 mov QWORD PTR $T7[rbp], rax + 00232 48 83 bd 28 02 + 00 00 00 cmp QWORD PTR $T7[rbp], 0 + 0023a 74 1a je SHORT $LN20@JitEmitPos + 0023c ba 01 00 00 00 mov edx, 1 + 00241 48 8b 8d 28 02 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 00248 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0024d 48 89 85 98 02 + 00 00 mov QWORD PTR tv157[rbp], rax + 00254 eb 0b jmp SHORT $LN21@JitEmitPos +$LN20@JitEmitPos: + 00256 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv157[rbp], 0 +$LN21@JitEmitPos: + +; 360 : return NULL; + + 00261 33 c0 xor eax, eax + 00263 e9 6b 02 00 00 jmp $LN1@JitEmitPos +$LN7@JitEmitPos: + +; 361 : } +; 362 : --Count; + + 00268 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 0026e ff c8 dec eax + 00270 89 85 84 00 00 + 00 mov DWORD PTR Count$[rbp], eax + +; 363 : } + + 00276 e9 e9 fe ff ff jmp $LN2@JitEmitPos +$LN3@JitEmitPos: + +; 364 : +; 365 : if (TwoByte) + + 0027b 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0027f 0f 84 e8 00 00 + 00 je $LN8@JitEmitPos + +; 366 : { +; 367 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); + + 00285 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00288 c1 e0 02 shl eax, 2 + 0028b 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00292 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00295 2b c8 sub ecx, eax + 00297 8b c1 mov eax, ecx + 00299 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 368 : if (SaveFlags) + + 0029f 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 002a6 74 0e je SHORT $LN9@JitEmitPos + +; 369 : RipDelta += 1; + + 002a8 8b 85 c4 00 00 + 00 mov eax, DWORD PTR RipDelta$2[rbp] + 002ae ff c0 inc eax + 002b0 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax +$LN9@JitEmitPos: + +; 370 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); + + 002b6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 002ba 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$2[rbp] + 002c0 03 c8 add ecx, eax + 002c2 8b c1 mov eax, ecx + 002c4 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 371 : RipDelta += WORD_RIP_INST_LENGTH; + + 002ca 8b 85 c4 00 00 + 00 mov eax, DWORD PTR RipDelta$2[rbp] + 002d0 83 c0 09 add eax, 9 + 002d3 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 372 : RipDelta *= (-1); + + 002d9 6b 85 c4 00 00 + 00 ff imul eax, DWORD PTR RipDelta$2[rbp], -1 + 002e0 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 373 : RipDelta += Delta; + + 002e6 8b 85 e0 02 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 002ec 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$2[rbp] + 002f2 03 c8 add ecx, eax + 002f4 8b c1 mov eax, ecx + 002f6 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 374 : if (!JitEmitRipRelativeXorW(Block, RipDelta, JitData->Data[3])) + + 002fc b8 04 00 00 00 mov eax, 4 + 00301 48 6b c0 03 imul rax, rax, 3 + 00305 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 0030c 44 8b 04 01 mov r8d, DWORD PTR [rcx+rax] + 00310 8b 95 c4 00 00 + 00 mov edx, DWORD PTR RipDelta$2[rbp] + 00316 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0031a e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW + 0031f 85 c0 test eax, eax + 00321 75 4a jne SHORT $LN8@JitEmitPos + +; 375 : { +; 376 : NcDeleteBlock(Block); + + 00323 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00327 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 377 : delete Block; + + 0032c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00330 48 89 85 48 02 + 00 00 mov QWORD PTR $T8[rbp], rax + 00337 48 83 bd 48 02 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 0033f 74 1a je SHORT $LN22@JitEmitPos + 00341 ba 01 00 00 00 mov edx, 1 + 00346 48 8b 8d 48 02 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 0034d e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00352 48 89 85 98 02 + 00 00 mov QWORD PTR tv183[rbp], rax + 00359 eb 0b jmp SHORT $LN23@JitEmitPos +$LN22@JitEmitPos: + 0035b 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv183[rbp], 0 +$LN23@JitEmitPos: + +; 378 : return NULL; + + 00366 33 c0 xor eax, eax + 00368 e9 66 01 00 00 jmp $LN1@JitEmitPos +$LN8@JitEmitPos: + +; 379 : } +; 380 : } +; 381 : +; 382 : if (OneByte) + + 0036d 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00371 0f 84 fb 00 00 + 00 je $LN11@JitEmitPos + +; 383 : { +; 384 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); + + 00377 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0037a c1 e0 02 shl eax, 2 + 0037d 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00384 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00387 2b c8 sub ecx, eax + 00389 8b c1 mov eax, ecx + 0038b 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0038e d1 e1 shl ecx, 1 + 00390 2b c1 sub eax, ecx + 00392 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 385 : if (SaveFlags) + + 00398 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 0039f 74 0e je SHORT $LN12@JitEmitPos + +; 386 : RipDelta += 1; + + 003a1 8b 85 e4 00 00 + 00 mov eax, DWORD PTR RipDelta$3[rbp] + 003a7 ff c0 inc eax + 003a9 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax +$LN12@JitEmitPos: + +; 387 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); + + 003af 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 003b3 8b 8d e4 00 00 + 00 mov ecx, DWORD PTR RipDelta$3[rbp] + 003b9 03 c8 add ecx, eax + 003bb 8b c1 mov eax, ecx + 003bd 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 388 : RipDelta += WORD_RIP_INST_LENGTH; + + 003c3 8b 85 e4 00 00 + 00 mov eax, DWORD PTR RipDelta$3[rbp] + 003c9 83 c0 09 add eax, 9 + 003cc 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 389 : RipDelta += BYTE_RIP_INST_LENGTH; + + 003d2 8b 85 e4 00 00 + 00 mov eax, DWORD PTR RipDelta$3[rbp] + 003d8 83 c0 07 add eax, 7 + 003db 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 390 : RipDelta *= (-1); + + 003e1 6b 85 e4 00 00 + 00 ff imul eax, DWORD PTR RipDelta$3[rbp], -1 + 003e8 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 391 : RipDelta += Delta; + + 003ee 8b 85 e0 02 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 003f4 8b 8d e4 00 00 + 00 mov ecx, DWORD PTR RipDelta$3[rbp] + 003fa 03 c8 add ecx, eax + 003fc 8b c1 mov eax, ecx + 003fe 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 392 : if (!JitEmitRipRelativeXorB(Block, RipDelta, JitData->Data[4])) + + 00404 b8 04 00 00 00 mov eax, 4 + 00409 48 6b c0 04 imul rax, rax, 4 + 0040d 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 00414 44 8b 04 01 mov r8d, DWORD PTR [rcx+rax] + 00418 8b 95 e4 00 00 + 00 mov edx, DWORD PTR RipDelta$3[rbp] + 0041e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00422 e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB + 00427 85 c0 test eax, eax + 00429 75 47 jne SHORT $LN11@JitEmitPos + +; 393 : { +; 394 : NcDeleteBlock(Block); + + 0042b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0042f e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 395 : delete Block; + + 00434 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00438 48 89 85 68 02 + 00 00 mov QWORD PTR $T9[rbp], rax + 0043f 48 83 bd 68 02 + 00 00 00 cmp QWORD PTR $T9[rbp], 0 + 00447 74 1a je SHORT $LN24@JitEmitPos + 00449 ba 01 00 00 00 mov edx, 1 + 0044e 48 8b 8d 68 02 + 00 00 mov rcx, QWORD PTR $T9[rbp] + 00455 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0045a 48 89 85 98 02 + 00 00 mov QWORD PTR tv211[rbp], rax + 00461 eb 0b jmp SHORT $LN25@JitEmitPos +$LN24@JitEmitPos: + 00463 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv211[rbp], 0 +$LN25@JitEmitPos: + +; 396 : return NULL; + + 0046e 33 c0 xor eax, eax + 00470 eb 61 jmp SHORT $LN1@JitEmitPos +$LN11@JitEmitPos: + +; 397 : } +; 398 : } +; 399 : +; 400 : if (SaveFlags && !JitEmitPopfqInst(Block)) + + 00472 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 00479 74 54 je SHORT $LN14@JitEmitPos + 0047b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0047f e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst + 00484 85 c0 test eax, eax + 00486 75 47 jne SHORT $LN14@JitEmitPos + +; 401 : { +; 402 : NcDeleteBlock(Block); + + 00488 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0048c e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 403 : delete Block; + + 00491 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00495 48 89 85 88 02 + 00 00 mov QWORD PTR $T10[rbp], rax + 0049c 48 83 bd 88 02 + 00 00 00 cmp QWORD PTR $T10[rbp], 0 + 004a4 74 1a je SHORT $LN26@JitEmitPos + 004a6 ba 01 00 00 00 mov edx, 1 + 004ab 48 8b 8d 88 02 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 004b2 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 004b7 48 89 85 98 02 + 00 00 mov QWORD PTR tv221[rbp], rax + 004be eb 0b jmp SHORT $LN27@JitEmitPos +$LN26@JitEmitPos: + 004c0 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv221[rbp], 0 +$LN27@JitEmitPos: + +; 404 : return NULL; + + 004cb 33 c0 xor eax, eax + 004cd eb 04 jmp SHORT $LN1@JitEmitPos +$LN14@JitEmitPos: + +; 405 : } +; 406 : +; 407 : return Block; + + 004cf 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] +$LN1@JitEmitPos: + +; 408 : } + + 004d3 48 8d a5 a8 02 + 00 00 lea rsp, QWORD PTR [rbp+680] + 004da 5f pop rdi + 004db 5d pop rbp + 004dc 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 +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +Count$ = 132 +RipDelta$1 = 164 +RipDelta$2 = 196 +RipDelta$3 = 228 +$T4 = 456 +$T5 = 488 +$T6 = 520 +$T7 = 552 +$T8 = 584 +$T9 = 616 +$T10 = 648 +tv221 = 664 +tv211 = 664 +tv183 = 664 +tv157 = 664 +tv128 = 664 +tv86 = 664 +Link$ = 704 +JitData$ = 712 +OpType$ = 720 +SaveFlags$ = 728 +Delta$ = 736 +?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 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??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 +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +Count$ = 132 +RipDelta$1 = 164 +RipDelta$2 = 196 +RipDelta$3 = 228 +$T4 = 456 +$T5 = 488 +$T6 = 520 +$T7 = 552 +$T8 = 584 +$T9 = 616 +$T10 = 648 +tv221 = 664 +tv211 = 664 +tv183 = 664 +tv157 = 664 +tv128 = 664 +tv86 = 664 +Link$ = 704 +JitData$ = 712 +OpType$ = 720 +SaveFlags$ = 728 +Delta$ = 736 +?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 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??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z +_TEXT SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +Count$ = 132 +RipDelta$1 = 164 +RipDelta$2 = 196 +RipDelta$3 = 228 +$T4 = 456 +$T5 = 488 +$T6 = 520 +$T7 = 552 +$T8 = 584 +$T9 = 616 +$T10 = 648 +tv211 = 664 +tv201 = 664 +tv179 = 664 +tv157 = 664 +tv128 = 664 +tv86 = 664 +Link$ = 704 +JitData$ = 712 +OpType$ = 720 +SaveFlags$ = 728 +Delta$ = 736 +?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z PROC ; JitEmitPreRipBitwiseOp, COMDAT + +; 257 : { + +$LN29: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec c8 02 + 00 00 sub rsp, 712 ; 000002c8H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 e8 + 02 00 00 mov rcx, QWORD PTR [rsp+744] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 258 : ULONG FourByte = Link->RawDataSize / 4; + + 00045 33 d2 xor edx, edx + 00047 48 8b 85 c0 02 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] + 00051 b9 04 00 00 00 mov ecx, 4 + 00056 f7 f1 div ecx + 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax + +; 259 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + + 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005e c1 e0 02 shl eax, 2 + 00061 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0006b 2b c8 sub ecx, eax + 0006d 8b c1 mov eax, ecx + 0006f 33 d2 xor edx, edx + 00071 b9 02 00 00 00 mov ecx, 2 + 00076 f7 f1 div ecx + 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + +; 260 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0007e c1 e0 02 shl eax, 2 + 00081 48 8b 8d c0 02 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 0008b 2b c8 sub ecx, eax + 0008d 8b c1 mov eax, ecx + 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00092 03 c9 add ecx, ecx + 00094 2b c1 sub eax, ecx + 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax + +; 261 : +; 262 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a3 48 89 85 e8 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 000aa 48 83 bd e8 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 000b2 74 15 je SHORT $LN16@JitEmitPre + 000b4 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c0 48 89 85 98 02 + 00 00 mov QWORD PTR tv86[rbp], rax + 000c7 eb 0b jmp SHORT $LN17@JitEmitPre +$LN16@JitEmitPre: + 000c9 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv86[rbp], 0 +$LN17@JitEmitPre: + 000d4 48 8b 85 98 02 + 00 00 mov rax, QWORD PTR tv86[rbp] + 000db 48 89 85 c8 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000e2 48 8b 85 c8 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax + +; 263 : if (!Block) + + 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000f2 75 07 jne SHORT $LN4@JitEmitPre + +; 264 : return NULL; + + 000f4 33 c0 xor eax, eax + 000f6 e9 52 03 00 00 jmp $LN1@JitEmitPre +$LN4@JitEmitPre: + +; 265 : +; 266 : if (SaveFlags && !JitEmitPushfqInst(Block)) + + 000fb 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 00102 74 57 je SHORT $LN5@JitEmitPre + 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst + 0010d 85 c0 test eax, eax + 0010f 75 4a jne SHORT $LN5@JitEmitPre + +; 267 : { +; 268 : NcDeleteBlock(Block); + + 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 269 : delete Block; + + 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 + 00125 48 83 bd 08 02 + 00 00 00 cmp QWORD PTR $T6[rbp], 0 + 0012d 74 1a je SHORT $LN18@JitEmitPre + 0012f ba 01 00 00 00 mov edx, 1 + 00134 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00140 48 89 85 98 02 + 00 00 mov QWORD PTR tv128[rbp], rax + 00147 eb 0b jmp SHORT $LN19@JitEmitPre +$LN18@JitEmitPre: + 00149 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv128[rbp], 0 +$LN19@JitEmitPre: + +; 270 : return NULL; + + 00154 33 c0 xor eax, eax + 00156 e9 f2 02 00 00 jmp $LN1@JitEmitPre +$LN5@JitEmitPre: + +; 271 : } +; 272 : +; 273 : ULONG Count = FourByte; + + 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: + +; 274 : while (Count) + + 00164 83 bd 84 00 00 + 00 00 cmp DWORD PTR Count$[rbp], 0 + 0016b 0f 84 f0 00 00 + 00 je $LN3@JitEmitPre + +; 275 : { +; 276 : INT32 RipDelta = (((Count - 1) * DWORD_RIP_INST_LENGTH) + (TwoByte * WORD_RIP_INST_LENGTH) + (OneByte * BYTE_RIP_INST_LENGTH)); + + 00171 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 00177 ff c8 dec eax + 00179 6b c0 0a imul eax, eax, 10 + 0017c 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 + 00180 03 c1 add eax, ecx + 00182 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 + 00186 03 c1 add eax, ecx + 00188 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 277 : if (SaveFlags) + + 0018e 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 00195 74 0e je SHORT $LN6@JitEmitPre + +; 278 : RipDelta += 1; + + 00197 8b 85 a4 00 00 + 00 mov eax, DWORD PTR RipDelta$1[rbp] + 0019d ff c0 inc eax + 0019f 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax +$LN6@JitEmitPre: + +; 279 : RipDelta += ((FourByte - Count) * 4); + + 001a5 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 001ab 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001ae 2b c8 sub ecx, eax + 001b0 8b c1 mov eax, ecx + 001b2 8b 8d a4 00 00 + 00 mov ecx, DWORD PTR RipDelta$1[rbp] + 001b8 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001bb 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 280 : RipDelta += Delta; + + 001c1 8b 85 e0 02 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 001c7 8b 8d a4 00 00 + 00 mov ecx, DWORD PTR RipDelta$1[rbp] + 001cd 03 c8 add ecx, eax + 001cf 8b c1 mov eax, ecx + 001d1 89 85 a4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 281 : if (!JitEmitRipRelativeXorD(Block, RipDelta, JitData->Data[FourByte - Count])) + + 001d7 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 001dd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001e0 2b c8 sub ecx, eax + 001e2 8b c1 mov eax, ecx + 001e4 8b c0 mov eax, eax + 001e6 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 001ed 44 8b 04 81 mov r8d, DWORD PTR [rcx+rax*4] + 001f1 8b 95 a4 00 00 + 00 mov edx, DWORD PTR RipDelta$1[rbp] + 001f7 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001fb e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD + 00200 85 c0 test eax, eax + 00202 75 4a jne SHORT $LN7@JitEmitPre + +; 282 : { +; 283 : NcDeleteBlock(Block); + + 00204 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00208 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 284 : delete Block; + + 0020d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00211 48 89 85 28 02 + 00 00 mov QWORD PTR $T7[rbp], rax + 00218 48 83 bd 28 02 + 00 00 00 cmp QWORD PTR $T7[rbp], 0 + 00220 74 1a je SHORT $LN20@JitEmitPre + 00222 ba 01 00 00 00 mov edx, 1 + 00227 48 8b 8d 28 02 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 0022e e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00233 48 89 85 98 02 + 00 00 mov QWORD PTR tv157[rbp], rax + 0023a eb 0b jmp SHORT $LN21@JitEmitPre +$LN20@JitEmitPre: + 0023c 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv157[rbp], 0 +$LN21@JitEmitPre: + +; 285 : return NULL; + + 00247 33 c0 xor eax, eax + 00249 e9 ff 01 00 00 jmp $LN1@JitEmitPre +$LN7@JitEmitPre: + +; 286 : } +; 287 : --Count; + + 0024e 8b 85 84 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 00254 ff c8 dec eax + 00256 89 85 84 00 00 + 00 mov DWORD PTR Count$[rbp], eax + +; 288 : } + + 0025c e9 03 ff ff ff jmp $LN2@JitEmitPre +$LN3@JitEmitPre: + +; 289 : +; 290 : if (TwoByte) + + 00261 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00265 0f 84 ba 00 00 + 00 je $LN8@JitEmitPre + +; 291 : { +; 292 : INT32 RipDelta = (OneByte * BYTE_RIP_INST_LENGTH); + + 0026b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 0026f 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 293 : if (SaveFlags) + + 00275 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 0027c 74 0e je SHORT $LN9@JitEmitPre + +; 294 : RipDelta += 1; + + 0027e 8b 85 c4 00 00 + 00 mov eax, DWORD PTR RipDelta$2[rbp] + 00284 ff c0 inc eax + 00286 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax +$LN9@JitEmitPre: + +; 295 : RipDelta += (FourByte * 4); + + 0028c 8b 85 c4 00 00 + 00 mov eax, DWORD PTR RipDelta$2[rbp] + 00292 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00295 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 00298 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 296 : RipDelta += Delta; + + 0029e 8b 85 e0 02 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 002a4 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$2[rbp] + 002aa 03 c8 add ecx, eax + 002ac 8b c1 mov eax, ecx + 002ae 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 297 : if (!JitEmitRipRelativeXorW(Block, RipDelta, JitData->Data[3])) + + 002b4 b8 04 00 00 00 mov eax, 4 + 002b9 48 6b c0 03 imul rax, rax, 3 + 002bd 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 002c4 44 8b 04 01 mov r8d, DWORD PTR [rcx+rax] + 002c8 8b 95 c4 00 00 + 00 mov edx, DWORD PTR RipDelta$2[rbp] + 002ce 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002d2 e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW + 002d7 85 c0 test eax, eax + 002d9 75 4a jne SHORT $LN8@JitEmitPre + +; 298 : { +; 299 : NcDeleteBlock(Block); + + 002db 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002df e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 300 : delete Block; + + 002e4 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002e8 48 89 85 48 02 + 00 00 mov QWORD PTR $T8[rbp], rax + 002ef 48 83 bd 48 02 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 002f7 74 1a je SHORT $LN22@JitEmitPre + 002f9 ba 01 00 00 00 mov edx, 1 + 002fe 48 8b 8d 48 02 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00305 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0030a 48 89 85 98 02 + 00 00 mov QWORD PTR tv179[rbp], rax + 00311 eb 0b jmp SHORT $LN23@JitEmitPre +$LN22@JitEmitPre: + 00313 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv179[rbp], 0 +$LN23@JitEmitPre: + +; 301 : return NULL; + + 0031e 33 c0 xor eax, eax + 00320 e9 28 01 00 00 jmp $LN1@JitEmitPre +$LN8@JitEmitPre: + +; 302 : } +; 303 : } +; 304 : +; 305 : if (OneByte) + + 00325 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00329 0f 84 bd 00 00 + 00 je $LN11@JitEmitPre + +; 306 : { +; 307 : INT32 RipDelta = 0; + + 0032f c7 85 e4 00 00 + 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 + +; 308 : if (SaveFlags) + + 00339 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 00340 74 0e je SHORT $LN12@JitEmitPre + +; 309 : RipDelta += 1; + + 00342 8b 85 e4 00 00 + 00 mov eax, DWORD PTR RipDelta$3[rbp] + 00348 ff c0 inc eax + 0034a 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax +$LN12@JitEmitPre: + +; 310 : RipDelta += (FourByte * 4) + (TwoByte * 2); + + 00350 8b 85 e4 00 00 + 00 mov eax, DWORD PTR RipDelta$3[rbp] + 00356 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00359 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 0035c 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0035f 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] + 00362 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 311 : RipDelta += Delta; + + 00368 8b 85 e0 02 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 0036e 8b 8d e4 00 00 + 00 mov ecx, DWORD PTR RipDelta$3[rbp] + 00374 03 c8 add ecx, eax + 00376 8b c1 mov eax, ecx + 00378 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 312 : if (!JitEmitRipRelativeXorB(Block, RipDelta, JitData->Data[4])) + + 0037e b8 04 00 00 00 mov eax, 4 + 00383 48 6b c0 04 imul rax, rax, 4 + 00387 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 0038e 44 8b 04 01 mov r8d, DWORD PTR [rcx+rax] + 00392 8b 95 e4 00 00 + 00 mov edx, DWORD PTR RipDelta$3[rbp] + 00398 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0039c e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB + 003a1 85 c0 test eax, eax + 003a3 75 47 jne SHORT $LN11@JitEmitPre + +; 313 : { +; 314 : NcDeleteBlock(Block); + + 003a5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003a9 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 315 : delete Block; + + 003ae 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003b2 48 89 85 68 02 + 00 00 mov QWORD PTR $T9[rbp], rax + 003b9 48 83 bd 68 02 + 00 00 00 cmp QWORD PTR $T9[rbp], 0 + 003c1 74 1a je SHORT $LN24@JitEmitPre + 003c3 ba 01 00 00 00 mov edx, 1 + 003c8 48 8b 8d 68 02 + 00 00 mov rcx, QWORD PTR $T9[rbp] + 003cf e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 003d4 48 89 85 98 02 + 00 00 mov QWORD PTR tv201[rbp], rax + 003db eb 0b jmp SHORT $LN25@JitEmitPre +$LN24@JitEmitPre: + 003dd 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv201[rbp], 0 +$LN25@JitEmitPre: + +; 316 : return NULL; + + 003e8 33 c0 xor eax, eax + 003ea eb 61 jmp SHORT $LN1@JitEmitPre +$LN11@JitEmitPre: + +; 317 : } +; 318 : } +; 319 : +; 320 : if (SaveFlags && !JitEmitPopfqInst(Block)) + + 003ec 83 bd d8 02 00 + 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 + 003f3 74 54 je SHORT $LN14@JitEmitPre + 003f5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003f9 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst + 003fe 85 c0 test eax, eax + 00400 75 47 jne SHORT $LN14@JitEmitPre + +; 321 : { +; 322 : NcDeleteBlock(Block); + + 00402 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00406 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 323 : delete Block; + + 0040b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0040f 48 89 85 88 02 + 00 00 mov QWORD PTR $T10[rbp], rax + 00416 48 83 bd 88 02 + 00 00 00 cmp QWORD PTR $T10[rbp], 0 + 0041e 74 1a je SHORT $LN26@JitEmitPre + 00420 ba 01 00 00 00 mov edx, 1 + 00425 48 8b 8d 88 02 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 0042c e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00431 48 89 85 98 02 + 00 00 mov QWORD PTR tv211[rbp], rax + 00438 eb 0b jmp SHORT $LN27@JitEmitPre +$LN26@JitEmitPre: + 0043a 48 c7 85 98 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv211[rbp], 0 +$LN27@JitEmitPre: + +; 324 : return NULL; + + 00445 33 c0 xor eax, eax + 00447 eb 04 jmp SHORT $LN1@JitEmitPre +$LN14@JitEmitPre: + +; 325 : } +; 326 : +; 327 : return Block; + + 00449 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] +$LN1@JitEmitPre: + +; 328 : } + + 0044d 48 8d a5 a8 02 + 00 00 lea rsp, QWORD PTR [rbp+680] + 00454 5f pop rdi + 00455 5d pop rbp + 00456 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 +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +Count$ = 132 +RipDelta$1 = 164 +RipDelta$2 = 196 +RipDelta$3 = 228 +$T4 = 456 +$T5 = 488 +$T6 = 520 +$T7 = 552 +$T8 = 584 +$T9 = 616 +$T10 = 648 +tv211 = 664 +tv201 = 664 +tv179 = 664 +tv157 = 664 +tv128 = 664 +tv86 = 664 +Link$ = 704 +JitData$ = 712 +OpType$ = 720 +SaveFlags$ = 728 +Delta$ = 736 +?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 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??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 +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +Count$ = 132 +RipDelta$1 = 164 +RipDelta$2 = 196 +RipDelta$3 = 228 +$T4 = 456 +$T5 = 488 +$T6 = 520 +$T7 = 552 +$T8 = 584 +$T9 = 616 +$T10 = 648 +tv211 = 664 +tv201 = 664 +tv179 = 664 +tv157 = 664 +tv128 = 664 +tv86 = 664 +Link$ = 704 +JitData$ = 712 +OpType$ = 720 +SaveFlags$ = 728 +Delta$ = 736 +?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 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??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +_TEXT SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +ZeroValue$ = 132 +Count$ = 164 +RipDelta$4 = 196 +RipDelta$5 = 228 +RipDelta$6 = 260 +StartLink$ = 296 +$T7 = 712 +$T8 = 744 +$T9 = 776 +$T10 = 808 +$T11 = 840 +$T12 = 872 +$T13 = 904 +$T14 = 936 +tv209 = 952 +tv196 = 952 +tv173 = 952 +tv152 = 952 +tv131 = 952 +tv86 = 952 +__$ArrayPad$ = 960 +Link$ = 1008 +Delta$ = 1016 +?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z PROC ; JitEmitPostRipMov, COMDAT + +; 191 : { + +$LN25: + 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 f8 03 + 00 00 sub rsp, 1016 ; 000003f8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 fe 00 00 00 mov ecx, 254 ; 000000feH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 18 + 04 00 00 mov rcx, QWORD PTR [rsp+1048] + 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 c0 03 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 192 : ULONG FourByte = Link->RawDataSize / 4; + + 0004b 33 d2 xor edx, edx + 0004d 48 8b 85 f0 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00054 8b 40 28 mov eax, DWORD PTR [rax+40] + 00057 b9 04 00 00 00 mov ecx, 4 + 0005c f7 f1 div ecx + 0005e 89 45 04 mov DWORD PTR FourByte$[rbp], eax + +; 193 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + + 00061 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00064 c1 e0 02 shl eax, 2 + 00067 48 8b 8d f0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0006e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00071 2b c8 sub ecx, eax + 00073 8b c1 mov eax, ecx + 00075 33 d2 xor edx, edx + 00077 b9 02 00 00 00 mov ecx, 2 + 0007c f7 f1 div ecx + 0007e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + +; 194 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + 00081 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00084 c1 e0 02 shl eax, 2 + 00087 48 8b 8d f0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0008e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00091 2b c8 sub ecx, eax + 00093 8b c1 mov eax, ecx + 00095 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00098 d1 e1 shl ecx, 1 + 0009a 2b c1 sub eax, ecx + 0009c 89 45 44 mov DWORD PTR OneByte$[rbp], eax + +; 195 : +; 196 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + 0009f b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000a4 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a9 48 89 85 e8 02 + 00 00 mov QWORD PTR $T8[rbp], rax + 000b0 48 83 bd e8 02 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 000b8 74 15 je SHORT $LN11@JitEmitPos + 000ba 48 8b 8d e8 02 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 000c1 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000c6 48 89 85 b8 03 + 00 00 mov QWORD PTR tv86[rbp], rax + 000cd eb 0b jmp SHORT $LN12@JitEmitPos +$LN11@JitEmitPos: + 000cf 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv86[rbp], 0 +$LN12@JitEmitPos: + 000da 48 8b 85 b8 03 + 00 00 mov rax, QWORD PTR tv86[rbp] + 000e1 48 89 85 c8 02 + 00 00 mov QWORD PTR $T7[rbp], rax + 000e8 48 8b 85 c8 02 + 00 00 mov rax, QWORD PTR $T7[rbp] + 000ef 48 89 45 68 mov QWORD PTR Block$[rbp], rax + +; 197 : +; 198 : Block->Start = Block->End = new NATIVE_CODE_LINK; + + 000f3 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000f8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000fd 48 89 85 28 03 + 00 00 mov QWORD PTR $T10[rbp], rax + 00104 48 83 bd 28 03 + 00 00 00 cmp QWORD PTR $T10[rbp], 0 + 0010c 74 15 je SHORT $LN13@JitEmitPos + 0010e 48 8b 8d 28 03 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 00115 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0011a 48 89 85 b8 03 + 00 00 mov QWORD PTR tv131[rbp], rax + 00121 eb 0b jmp SHORT $LN14@JitEmitPos +$LN13@JitEmitPos: + 00123 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv131[rbp], 0 +$LN14@JitEmitPos: + 0012e 48 8b 85 b8 03 + 00 00 mov rax, QWORD PTR tv131[rbp] + 00135 48 89 85 08 03 + 00 00 mov QWORD PTR $T9[rbp], rax + 0013c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00140 48 8b 8d 08 03 + 00 00 mov rcx, QWORD PTR $T9[rbp] + 00147 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0014b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0014f 48 8b 8d 08 03 + 00 00 mov rcx, QWORD PTR $T9[rbp] + 00156 48 89 08 mov QWORD PTR [rax], rcx + +; 199 : ULONG ZeroValue = 0; + + 00159 c7 85 84 00 00 + 00 00 00 00 00 mov DWORD PTR ZeroValue$[rbp], 0 + +; 200 : ULONG Count = FourByte; + + 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: + +; 201 : while (Count) + + 0016c 83 bd a4 00 00 + 00 00 cmp DWORD PTR Count$[rbp], 0 + 00173 0f 84 e0 00 00 + 00 je $LN3@JitEmitPos + +; 202 : { +; 203 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); + + 00179 8b 85 a4 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 0017f 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00182 2b c8 sub ecx, eax + 00184 8b c1 mov eax, ecx + 00186 c1 e0 02 shl eax, 2 + 00189 48 8b 8d f0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00190 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00193 2b c8 sub ecx, eax + 00195 8b c1 mov eax, ecx + 00197 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$4[rbp], eax + +; 204 : RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH; + + 0019d 8b 85 a4 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 001a3 ff c8 dec eax + 001a5 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 001a8 2b c8 sub ecx, eax + 001aa 8b c1 mov eax, ecx + 001ac 6b c0 0a imul eax, eax, 10 + 001af 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$4[rbp] + 001b5 03 c8 add ecx, eax + 001b7 8b c1 mov eax, ecx + 001b9 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$4[rbp], eax + +; 205 : RipDelta *= (-1); + + 001bf 6b 85 c4 00 00 + 00 ff imul eax, DWORD PTR RipDelta$4[rbp], -1 + 001c6 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$4[rbp], eax + +; 206 : RipDelta += Delta; + + 001cc 8b 85 f8 03 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 001d2 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$4[rbp] + 001d8 03 c8 add ecx, eax + 001da 8b c1 mov eax, ecx + 001dc 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$4[rbp], eax + +; 207 : if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) + + 001e2 4c 8d 85 84 00 + 00 00 lea r8, QWORD PTR ZeroValue$[rbp] + 001e9 8b 95 c4 00 00 + 00 mov edx, DWORD PTR RipDelta$4[rbp] + 001ef 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001f3 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD + 001f8 85 c0 test eax, eax + 001fa 75 4a jne SHORT $LN4@JitEmitPos + +; 208 : { +; 209 : NcDeleteBlock(Block); + + 001fc 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00200 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 210 : delete Block; + + 00205 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00209 48 89 85 48 03 + 00 00 mov QWORD PTR $T11[rbp], rax + 00210 48 83 bd 48 03 + 00 00 00 cmp QWORD PTR $T11[rbp], 0 + 00218 74 1a je SHORT $LN15@JitEmitPos + 0021a ba 01 00 00 00 mov edx, 1 + 0021f 48 8b 8d 48 03 + 00 00 mov rcx, QWORD PTR $T11[rbp] + 00226 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0022b 48 89 85 b8 03 + 00 00 mov QWORD PTR tv152[rbp], rax + 00232 eb 0b jmp SHORT $LN16@JitEmitPos +$LN15@JitEmitPos: + 00234 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv152[rbp], 0 +$LN16@JitEmitPos: + +; 211 : return NULL; + + 0023f 33 c0 xor eax, eax + 00241 e9 3b 02 00 00 jmp $LN1@JitEmitPos +$LN4@JitEmitPos: + +; 212 : } +; 213 : --Count; + + 00246 8b 85 a4 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 0024c ff c8 dec eax + 0024e 89 85 a4 00 00 + 00 mov DWORD PTR Count$[rbp], eax + +; 214 : } + + 00254 e9 13 ff ff ff jmp $LN2@JitEmitPos +$LN3@JitEmitPos: + +; 215 : +; 216 : if (TwoByte) + + 00259 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0025d 0f 84 c4 00 00 + 00 je $LN5@JitEmitPos + +; 217 : { +; 218 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); + + 00263 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00266 c1 e0 02 shl eax, 2 + 00269 48 8b 8d f0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00270 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00273 2b c8 sub ecx, eax + 00275 8b c1 mov eax, ecx + 00277 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$5[rbp], eax + +; 219 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); + + 0027d 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 00281 8b 8d e4 00 00 + 00 mov ecx, DWORD PTR RipDelta$5[rbp] + 00287 03 c8 add ecx, eax + 00289 8b c1 mov eax, ecx + 0028b 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$5[rbp], eax + +; 220 : RipDelta += WORD_MOV_INST_LENGTH; + + 00291 8b 85 e4 00 00 + 00 mov eax, DWORD PTR RipDelta$5[rbp] + 00297 83 c0 09 add eax, 9 + 0029a 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$5[rbp], eax + +; 221 : RipDelta *= (-1); + + 002a0 6b 85 e4 00 00 + 00 ff imul eax, DWORD PTR RipDelta$5[rbp], -1 + 002a7 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$5[rbp], eax + +; 222 : RipDelta += Delta; + + 002ad 8b 85 f8 03 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 002b3 8b 8d e4 00 00 + 00 mov ecx, DWORD PTR RipDelta$5[rbp] + 002b9 03 c8 add ecx, eax + 002bb 8b c1 mov eax, ecx + 002bd 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$5[rbp], eax + +; 223 : if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) + + 002c3 4c 8d 85 84 00 + 00 00 lea r8, QWORD PTR ZeroValue$[rbp] + 002ca 8b 95 e4 00 00 + 00 mov edx, DWORD PTR RipDelta$5[rbp] + 002d0 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002d4 e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW + 002d9 85 c0 test eax, eax + 002db 75 4a jne SHORT $LN5@JitEmitPos + +; 224 : { +; 225 : NcDeleteBlock(Block); + + 002dd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002e1 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 226 : delete Block; + + 002e6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002ea 48 89 85 68 03 + 00 00 mov QWORD PTR $T12[rbp], rax + 002f1 48 83 bd 68 03 + 00 00 00 cmp QWORD PTR $T12[rbp], 0 + 002f9 74 1a je SHORT $LN17@JitEmitPos + 002fb ba 01 00 00 00 mov edx, 1 + 00300 48 8b 8d 68 03 + 00 00 mov rcx, QWORD PTR $T12[rbp] + 00307 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0030c 48 89 85 b8 03 + 00 00 mov QWORD PTR tv173[rbp], rax + 00313 eb 0b jmp SHORT $LN18@JitEmitPos +$LN17@JitEmitPos: + 00315 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv173[rbp], 0 +$LN18@JitEmitPos: + +; 227 : return NULL; + + 00320 33 c0 xor eax, eax + 00322 e9 5a 01 00 00 jmp $LN1@JitEmitPos +$LN5@JitEmitPos: + +; 228 : } +; 229 : } +; 230 : +; 231 : if (OneByte) + + 00327 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0032b 0f 84 d7 00 00 + 00 je $LN7@JitEmitPos + +; 232 : { +; 233 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); + + 00331 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00334 c1 e0 02 shl eax, 2 + 00337 48 8b 8d f0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0033e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00341 2b c8 sub ecx, eax + 00343 8b c1 mov eax, ecx + 00345 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00348 d1 e1 shl ecx, 1 + 0034a 2b c1 sub eax, ecx + 0034c 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$6[rbp], eax + +; 234 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); + + 00352 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 00356 8b 8d 04 01 00 + 00 mov ecx, DWORD PTR RipDelta$6[rbp] + 0035c 03 c8 add ecx, eax + 0035e 8b c1 mov eax, ecx + 00360 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$6[rbp], eax + +; 235 : RipDelta += WORD_MOV_INST_LENGTH; + + 00366 8b 85 04 01 00 + 00 mov eax, DWORD PTR RipDelta$6[rbp] + 0036c 83 c0 09 add eax, 9 + 0036f 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$6[rbp], eax + +; 236 : RipDelta += BYTE_MOV_INST_LENGTH; + + 00375 8b 85 04 01 00 + 00 mov eax, DWORD PTR RipDelta$6[rbp] + 0037b 83 c0 07 add eax, 7 + 0037e 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$6[rbp], eax + +; 237 : RipDelta *= (-1); + + 00384 6b 85 04 01 00 + 00 ff imul eax, DWORD PTR RipDelta$6[rbp], -1 + 0038b 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$6[rbp], eax + +; 238 : RipDelta += Delta; + + 00391 8b 85 f8 03 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 00397 8b 8d 04 01 00 + 00 mov ecx, DWORD PTR RipDelta$6[rbp] + 0039d 03 c8 add ecx, eax + 0039f 8b c1 mov eax, ecx + 003a1 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$6[rbp], eax + +; 239 : if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) + + 003a7 4c 8d 85 84 00 + 00 00 lea r8, QWORD PTR ZeroValue$[rbp] + 003ae 8b 95 04 01 00 + 00 mov edx, DWORD PTR RipDelta$6[rbp] + 003b4 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003b8 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB + 003bd 85 c0 test eax, eax + 003bf 75 47 jne SHORT $LN7@JitEmitPos + +; 240 : { +; 241 : NcDeleteBlock(Block); + + 003c1 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003c5 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 242 : delete Block; + + 003ca 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003ce 48 89 85 88 03 + 00 00 mov QWORD PTR $T13[rbp], rax + 003d5 48 83 bd 88 03 + 00 00 00 cmp QWORD PTR $T13[rbp], 0 + 003dd 74 1a je SHORT $LN19@JitEmitPos + 003df ba 01 00 00 00 mov edx, 1 + 003e4 48 8b 8d 88 03 + 00 00 mov rcx, QWORD PTR $T13[rbp] + 003eb e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 003f0 48 89 85 b8 03 + 00 00 mov QWORD PTR tv196[rbp], rax + 003f7 eb 0b jmp SHORT $LN20@JitEmitPos +$LN19@JitEmitPos: + 003f9 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv196[rbp], 0 +$LN20@JitEmitPos: + +; 243 : return NULL; + + 00404 33 c0 xor eax, eax + 00406 eb 79 jmp SHORT $LN1@JitEmitPos +$LN7@JitEmitPos: + +; 244 : } +; 245 : } +; 246 : +; 247 : PNATIVE_CODE_LINK StartLink = Block->Start; + + 00408 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0040c 48 8b 00 mov rax, QWORD PTR [rax] + 0040f 48 89 85 28 01 + 00 00 mov QWORD PTR StartLink$[rbp], rax + +; 248 : Block->Start = Block->Start->Next; + + 00416 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0041a 48 8b 00 mov rax, QWORD PTR [rax] + 0041d 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 00421 48 8b 00 mov rax, QWORD PTR [rax] + 00424 48 89 01 mov QWORD PTR [rcx], rax + +; 249 : if (Block->Start) + + 00427 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0042b 48 83 38 00 cmp QWORD PTR [rax], 0 + 0042f 74 0f je SHORT $LN9@JitEmitPos + +; 250 : Block->Start->Prev = NULL; + + 00431 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00435 48 8b 00 mov rax, QWORD PTR [rax] + 00438 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 +$LN9@JitEmitPos: + +; 251 : delete StartLink; + + 00440 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR StartLink$[rbp] + 00447 48 89 85 a8 03 + 00 00 mov QWORD PTR $T14[rbp], rax + 0044e 48 83 bd a8 03 + 00 00 00 cmp QWORD PTR $T14[rbp], 0 + 00456 74 1a je SHORT $LN21@JitEmitPos + 00458 ba 01 00 00 00 mov edx, 1 + 0045d 48 8b 8d a8 03 + 00 00 mov rcx, QWORD PTR $T14[rbp] + 00464 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00469 48 89 85 b8 03 + 00 00 mov QWORD PTR tv209[rbp], rax + 00470 eb 0b jmp SHORT $LN22@JitEmitPos +$LN21@JitEmitPos: + 00472 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv209[rbp], 0 +$LN22@JitEmitPos: + +; 252 : +; 253 : return Block; + + 0047d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] +$LN1@JitEmitPos: + +; 254 : } + + 00481 48 8b f8 mov rdi, rax + 00484 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00488 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData + 0048f e8 00 00 00 00 call _RTC_CheckStackVars + 00494 48 8b c7 mov rax, rdi + 00497 48 8b 8d c0 03 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0049e 48 33 cd xor rcx, rbp + 004a1 e8 00 00 00 00 call __security_check_cookie + 004a6 48 8d a5 d8 03 + 00 00 lea rsp, QWORD PTR [rbp+984] + 004ad 5f pop rdi + 004ae 5d pop rbp + 004af c3 ret 0 +?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPostRipMov +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +ZeroValue$ = 132 +Count$ = 164 +RipDelta$4 = 196 +RipDelta$5 = 228 +RipDelta$6 = 260 +StartLink$ = 296 +$T7 = 712 +$T8 = 744 +$T9 = 776 +$T10 = 808 +$T11 = 840 +$T12 = 872 +$T13 = 904 +$T14 = 936 +tv209 = 952 +tv196 = 952 +tv173 = 952 +tv152 = 952 +tv131 = 952 +tv86 = 952 +__$ArrayPad$ = 960 +Link$ = 1008 +Delta$ = 1016 +?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 02 + 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??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +ZeroValue$ = 132 +Count$ = 164 +RipDelta$4 = 196 +RipDelta$5 = 228 +RipDelta$6 = 260 +StartLink$ = 296 +$T7 = 712 +$T8 = 744 +$T9 = 776 +$T10 = 808 +$T11 = 840 +$T12 = 872 +$T13 = 904 +$T14 = 936 +tv209 = 952 +tv196 = 952 +tv173 = 952 +tv152 = 952 +tv131 = 952 +tv86 = 952 +__$ArrayPad$ = 960 +Link$ = 1008 +Delta$ = 1016 +?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`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 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?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 +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +ZeroValue$ = 132 +Count$ = 164 +RipDelta$4 = 196 +RipDelta$5 = 228 +RipDelta$6 = 260 +StartLink$ = 296 +$T7 = 712 +$T8 = 744 +$T9 = 776 +$T10 = 808 +$T11 = 840 +$T12 = 872 +$T13 = 904 +$T14 = 936 +tv209 = 952 +tv196 = 952 +tv173 = 952 +tv152 = 952 +tv131 = 952 +tv86 = 952 +__$ArrayPad$ = 960 +Link$ = 1008 +Delta$ = 1016 +?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 02 + 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??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +ZeroValue$ = 132 +Count$ = 164 +RipDelta$4 = 196 +RipDelta$5 = 228 +RipDelta$6 = 260 +StartLink$ = 296 +$T7 = 712 +$T8 = 744 +$T9 = 776 +$T10 = 808 +$T11 = 840 +$T12 = 872 +$T13 = 904 +$T14 = 936 +tv209 = 952 +tv196 = 952 +tv173 = 952 +tv152 = 952 +tv131 = 952 +tv86 = 952 +__$ArrayPad$ = 960 +Link$ = 1008 +Delta$ = 1016 +?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`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 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z +_TEXT SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +DataOffset$ = 136 +Count$ = 164 +RipDelta$1 = 196 +RipDelta$2 = 228 +RipDelta$3 = 260 +StartLink$ = 296 +$T4 = 712 +$T5 = 744 +$T6 = 776 +$T7 = 808 +$T8 = 840 +$T9 = 872 +$T10 = 904 +$T11 = 936 +tv205 = 952 +tv192 = 952 +tv174 = 952 +tv156 = 952 +tv131 = 952 +tv86 = 952 +Link$ = 992 +Delta$ = 1000 +?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z PROC ; JitEmitPreRipMov, COMDAT + +; 124 : { + +$LN25: + 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 03 + 00 00 sub rsp, 1000 ; 000003e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 fa 00 00 00 mov ecx, 250 ; 000000faH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 04 00 00 mov rcx, QWORD PTR [rsp+1032] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 125 : ULONG FourByte = Link->RawDataSize / 4; + + 0003a 33 d2 xor edx, edx + 0003c 48 8b 85 e0 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00043 8b 40 28 mov eax, DWORD PTR [rax+40] + 00046 b9 04 00 00 00 mov ecx, 4 + 0004b f7 f1 div ecx + 0004d 89 45 04 mov DWORD PTR FourByte$[rbp], eax + +; 126 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + + 00050 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00053 c1 e0 02 shl eax, 2 + 00056 48 8b 8d e0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0005d 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00060 2b c8 sub ecx, eax + 00062 8b c1 mov eax, ecx + 00064 33 d2 xor edx, edx + 00066 b9 02 00 00 00 mov ecx, 2 + 0006b f7 f1 div ecx + 0006d 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + +; 127 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + 00070 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00073 c1 e0 02 shl eax, 2 + 00076 48 8b 8d e0 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0007d 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00080 2b c8 sub ecx, eax + 00082 8b c1 mov eax, ecx + 00084 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00087 03 c9 add ecx, ecx + 00089 2b c1 sub eax, ecx + 0008b 89 45 44 mov DWORD PTR OneByte$[rbp], eax + +; 128 : +; 129 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + 0008e b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00093 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00098 48 89 85 e8 02 + 00 00 mov QWORD PTR $T5[rbp], rax + 0009f 48 83 bd e8 02 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 000a7 74 15 je SHORT $LN11@JitEmitPre + 000a9 48 8b 8d e8 02 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000b0 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000b5 48 89 85 b8 03 + 00 00 mov QWORD PTR tv86[rbp], rax + 000bc eb 0b jmp SHORT $LN12@JitEmitPre +$LN11@JitEmitPre: + 000be 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv86[rbp], 0 +$LN12@JitEmitPre: + 000c9 48 8b 85 b8 03 + 00 00 mov rax, QWORD PTR tv86[rbp] + 000d0 48 89 85 c8 02 + 00 00 mov QWORD PTR $T4[rbp], rax + 000d7 48 8b 85 c8 02 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000de 48 89 45 68 mov QWORD PTR Block$[rbp], rax + +; 130 : +; 131 : Block->Start = Block->End = new NATIVE_CODE_LINK; + + 000e2 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000e7 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000ec 48 89 85 28 03 + 00 00 mov QWORD PTR $T7[rbp], rax + 000f3 48 83 bd 28 03 + 00 00 00 cmp QWORD PTR $T7[rbp], 0 + 000fb 74 15 je SHORT $LN13@JitEmitPre + 000fd 48 8b 8d 28 03 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 00104 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00109 48 89 85 b8 03 + 00 00 mov QWORD PTR tv131[rbp], rax + 00110 eb 0b jmp SHORT $LN14@JitEmitPre +$LN13@JitEmitPre: + 00112 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv131[rbp], 0 +$LN14@JitEmitPre: + 0011d 48 8b 85 b8 03 + 00 00 mov rax, QWORD PTR tv131[rbp] + 00124 48 89 85 08 03 + 00 00 mov QWORD PTR $T6[rbp], rax + 0012b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0012f 48 8b 8d 08 03 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 00136 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0013a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0013e 48 8b 8d 08 03 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 00145 48 89 08 mov QWORD PTR [rax], rcx + +; 132 : PUCHAR DataOffset = Link->RawData; + + 00148 48 8b 85 e0 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0014f 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00153 48 89 85 88 00 + 00 00 mov QWORD PTR DataOffset$[rbp], rax + +; 133 : ULONG Count = FourByte; + + 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: + +; 134 : while (Count) + + 00163 83 bd a4 00 00 + 00 00 cmp DWORD PTR Count$[rbp], 0 + 0016a 0f 84 f8 00 00 + 00 je $LN3@JitEmitPre + +; 135 : { +; 136 : //Account for remaining MOVs +; 137 : INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH)); + + 00170 8b 85 a4 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 00176 ff c8 dec eax + 00178 6b c0 0a imul eax, eax, 10 + 0017b 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 + 0017f 03 c1 add eax, ecx + 00181 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 + 00185 03 c1 add eax, ecx + 00187 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 138 : //Account for already MOVd instructions +; 139 : RipDelta += ((FourByte - Count) * 4); + + 0018d 8b 85 a4 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 00193 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00196 2b c8 sub ecx, eax + 00198 8b c1 mov eax, ecx + 0019a 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$1[rbp] + 001a0 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001a3 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 140 : RipDelta += Delta; + + 001a9 8b 85 e8 03 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 001af 8b 8d c4 00 00 + 00 mov ecx, DWORD PTR RipDelta$1[rbp] + 001b5 03 c8 add ecx, eax + 001b7 8b c1 mov eax, ecx + 001b9 89 85 c4 00 00 + 00 mov DWORD PTR RipDelta$1[rbp], eax + +; 141 : //Add the actual instruction +; 142 : printf("%p IS THE DATAOFFSET\n", DataOffset); + + 001bf 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR DataOffset$[rbp] + 001c6 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@BLDOCDOA@?$CFp?5IS?5THE?5DATAOFFSET?6@ + 001cd e8 00 00 00 00 call printf + +; 143 : system("pause"); + + 001d2 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ + 001d9 ff 15 00 00 00 + 00 call QWORD PTR __imp_system + +; 144 : if (!JitEmitRipRelativeMovD(Block, RipDelta, DataOffset)) + + 001df 4c 8b 85 88 00 + 00 00 mov r8, QWORD PTR DataOffset$[rbp] + 001e6 8b 95 c4 00 00 + 00 mov edx, DWORD PTR RipDelta$1[rbp] + 001ec 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001f0 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD + 001f5 85 c0 test eax, eax + 001f7 75 4a jne SHORT $LN4@JitEmitPre + +; 145 : { +; 146 : NcDeleteBlock(Block); + + 001f9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 001fd e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 147 : delete Block; + + 00202 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00206 48 89 85 48 03 + 00 00 mov QWORD PTR $T8[rbp], rax + 0020d 48 83 bd 48 03 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 00215 74 1a je SHORT $LN15@JitEmitPre + 00217 ba 01 00 00 00 mov edx, 1 + 0021c 48 8b 8d 48 03 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00223 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00228 48 89 85 b8 03 + 00 00 mov QWORD PTR tv156[rbp], rax + 0022f eb 0b jmp SHORT $LN16@JitEmitPre +$LN15@JitEmitPre: + 00231 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv156[rbp], 0 +$LN16@JitEmitPre: + +; 148 : return NULL; + + 0023c 33 c0 xor eax, eax + 0023e e9 f3 01 00 00 jmp $LN1@JitEmitPre +$LN4@JitEmitPre: + +; 149 : } +; 150 : DataOffset += 4; + + 00243 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR DataOffset$[rbp] + 0024a 48 83 c0 04 add rax, 4 + 0024e 48 89 85 88 00 + 00 00 mov QWORD PTR DataOffset$[rbp], rax + +; 151 : --Count; + + 00255 8b 85 a4 00 00 + 00 mov eax, DWORD PTR Count$[rbp] + 0025b ff c8 dec eax + 0025d 89 85 a4 00 00 + 00 mov DWORD PTR Count$[rbp], eax + +; 152 : } + + 00263 e9 fb fe ff ff jmp $LN2@JitEmitPre +$LN3@JitEmitPre: + +; 153 : +; 154 : if (TwoByte) + + 00268 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0026c 0f 84 a8 00 00 + 00 je $LN5@JitEmitPre + +; 155 : { +; 156 : INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH); + + 00272 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 00276 89 85 e4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 157 : RipDelta += (FourByte * 4); + + 0027c 8b 85 e4 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 e4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 158 : RipDelta += Delta; + + 0028e 8b 85 e8 03 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 00294 8b 8d e4 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 e4 00 00 + 00 mov DWORD PTR RipDelta$2[rbp], eax + +; 159 : if (!JitEmitRipRelativeMovW(Block, RipDelta, DataOffset)) + + 002a4 4c 8b 85 88 00 + 00 00 mov r8, QWORD PTR DataOffset$[rbp] + 002ab 8b 95 e4 00 00 + 00 mov edx, DWORD PTR RipDelta$2[rbp] + 002b1 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002b5 e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW + 002ba 85 c0 test eax, eax + 002bc 75 4a jne SHORT $LN6@JitEmitPre + +; 160 : { +; 161 : NcDeleteBlock(Block); + + 002be 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 002c2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 162 : delete Block; + + 002c7 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002cb 48 89 85 68 03 + 00 00 mov QWORD PTR $T9[rbp], rax + 002d2 48 83 bd 68 03 + 00 00 00 cmp QWORD PTR $T9[rbp], 0 + 002da 74 1a je SHORT $LN17@JitEmitPre + 002dc ba 01 00 00 00 mov edx, 1 + 002e1 48 8b 8d 68 03 + 00 00 mov rcx, QWORD PTR $T9[rbp] + 002e8 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 002ed 48 89 85 b8 03 + 00 00 mov QWORD PTR tv174[rbp], rax + 002f4 eb 0b jmp SHORT $LN18@JitEmitPre +$LN17@JitEmitPre: + 002f6 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv174[rbp], 0 +$LN18@JitEmitPre: + +; 163 : return NULL; + + 00301 33 c0 xor eax, eax + 00303 e9 2e 01 00 00 jmp $LN1@JitEmitPre +$LN6@JitEmitPre: + +; 164 : } +; 165 : DataOffset += 2; + + 00308 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR DataOffset$[rbp] + 0030f 48 83 c0 02 add rax, 2 + 00313 48 89 85 88 00 + 00 00 mov QWORD PTR DataOffset$[rbp], rax +$LN5@JitEmitPre: + +; 166 : } +; 167 : +; 168 : if (OneByte) + + 0031a 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0031e 0f 84 99 00 00 + 00 je $LN7@JitEmitPre + +; 169 : { +; 170 : INT32 RipDelta = 0; + + 00324 c7 85 04 01 00 + 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 + +; 171 : RipDelta += (FourByte * 4) + (TwoByte * 2); + + 0032e 8b 85 04 01 00 + 00 mov eax, DWORD PTR RipDelta$3[rbp] + 00334 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] + 00337 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] + 0033a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 0033d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] + 00340 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 172 : RipDelta += Delta; + + 00346 8b 85 e8 03 00 + 00 mov eax, DWORD PTR Delta$[rbp] + 0034c 8b 8d 04 01 00 + 00 mov ecx, DWORD PTR RipDelta$3[rbp] + 00352 03 c8 add ecx, eax + 00354 8b c1 mov eax, ecx + 00356 89 85 04 01 00 + 00 mov DWORD PTR RipDelta$3[rbp], eax + +; 173 : if (!JitEmitRipRelativeMovB(Block, RipDelta, DataOffset)) + + 0035c 4c 8b 85 88 00 + 00 00 mov r8, QWORD PTR DataOffset$[rbp] + 00363 8b 95 04 01 00 + 00 mov edx, DWORD PTR RipDelta$3[rbp] + 00369 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0036d e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB + 00372 85 c0 test eax, eax + 00374 75 47 jne SHORT $LN7@JitEmitPre + +; 174 : { +; 175 : NcDeleteBlock(Block); + + 00376 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 0037a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 176 : delete Block; + + 0037f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00383 48 89 85 88 03 + 00 00 mov QWORD PTR $T10[rbp], rax + 0038a 48 83 bd 88 03 + 00 00 00 cmp QWORD PTR $T10[rbp], 0 + 00392 74 1a je SHORT $LN19@JitEmitPre + 00394 ba 01 00 00 00 mov edx, 1 + 00399 48 8b 8d 88 03 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 003a0 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 003a5 48 89 85 b8 03 + 00 00 mov QWORD PTR tv192[rbp], rax + 003ac eb 0b jmp SHORT $LN20@JitEmitPre +$LN19@JitEmitPre: + 003ae 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv192[rbp], 0 +$LN20@JitEmitPre: + +; 177 : return NULL; + + 003b9 33 c0 xor eax, eax + 003bb eb 79 jmp SHORT $LN1@JitEmitPre +$LN7@JitEmitPre: + +; 178 : } +; 179 : } +; 180 : +; 181 : PNATIVE_CODE_LINK StartLink = Block->Start; + + 003bd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003c1 48 8b 00 mov rax, QWORD PTR [rax] + 003c4 48 89 85 28 01 + 00 00 mov QWORD PTR StartLink$[rbp], rax + +; 182 : Block->Start = Block->Start->Next; + + 003cb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003cf 48 8b 00 mov rax, QWORD PTR [rax] + 003d2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] + 003d6 48 8b 00 mov rax, QWORD PTR [rax] + 003d9 48 89 01 mov QWORD PTR [rcx], rax + +; 183 : if (Block->Start) + + 003dc 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003e0 48 83 38 00 cmp QWORD PTR [rax], 0 + 003e4 74 0f je SHORT $LN9@JitEmitPre + +; 184 : Block->Start->Prev = NULL; + + 003e6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003ea 48 8b 00 mov rax, QWORD PTR [rax] + 003ed 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 +$LN9@JitEmitPre: + +; 185 : delete StartLink; + + 003f5 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR StartLink$[rbp] + 003fc 48 89 85 a8 03 + 00 00 mov QWORD PTR $T11[rbp], rax + 00403 48 83 bd a8 03 + 00 00 00 cmp QWORD PTR $T11[rbp], 0 + 0040b 74 1a je SHORT $LN21@JitEmitPre + 0040d ba 01 00 00 00 mov edx, 1 + 00412 48 8b 8d a8 03 + 00 00 mov rcx, QWORD PTR $T11[rbp] + 00419 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 0041e 48 89 85 b8 03 + 00 00 mov QWORD PTR tv205[rbp], rax + 00425 eb 0b jmp SHORT $LN22@JitEmitPre +$LN21@JitEmitPre: + 00427 48 c7 85 b8 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv205[rbp], 0 +$LN22@JitEmitPre: + +; 186 : +; 187 : return Block; + + 00432 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] +$LN1@JitEmitPre: + +; 188 : } + + 00436 48 8d a5 c8 03 + 00 00 lea rsp, QWORD PTR [rbp+968] + 0043d 5f pop rdi + 0043e 5d pop rbp + 0043f c3 ret 0 +?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPreRipMov +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +DataOffset$ = 136 +Count$ = 164 +RipDelta$1 = 196 +RipDelta$2 = 228 +RipDelta$3 = 260 +StartLink$ = 296 +$T4 = 712 +$T5 = 744 +$T6 = 776 +$T7 = 808 +$T8 = 840 +$T9 = 872 +$T10 = 904 +$T11 = 936 +tv205 = 952 +tv192 = 952 +tv174 = 952 +tv156 = 952 +tv131 = 952 +tv86 = 952 +Link$ = 992 +Delta$ = 1000 +?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 02 + 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??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +DataOffset$ = 136 +Count$ = 164 +RipDelta$1 = 196 +RipDelta$2 = 228 +RipDelta$3 = 260 +StartLink$ = 296 +$T4 = 712 +$T5 = 744 +$T6 = 776 +$T7 = 808 +$T8 = 840 +$T9 = 872 +$T10 = 904 +$T11 = 936 +tv205 = 952 +tv192 = 952 +tv174 = 952 +tv156 = 952 +tv131 = 952 +tv86 = 952 +Link$ = 992 +Delta$ = 1000 +?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`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 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?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 +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +DataOffset$ = 136 +Count$ = 164 +RipDelta$1 = 196 +RipDelta$2 = 228 +RipDelta$3 = 260 +StartLink$ = 296 +$T4 = 712 +$T5 = 744 +$T6 = 776 +$T7 = 808 +$T8 = 840 +$T9 = 872 +$T10 = 904 +$T11 = 936 +tv205 = 952 +tv192 = 952 +tv174 = 952 +tv156 = 952 +tv131 = 952 +tv86 = 952 +Link$ = 992 +Delta$ = 1000 +?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d e8 02 + 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??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Block$ = 104 +DataOffset$ = 136 +Count$ = 164 +RipDelta$1 = 196 +RipDelta$2 = 228 +RipDelta$3 = 260 +StartLink$ = 296 +$T4 = 712 +$T5 = 744 +$T6 = 776 +$T7 = 808 +$T8 = 840 +$T9 = 872 +$T10 = 904 +$T11 = 936 +tv205 = 952 +tv192 = 952 +tv174 = 952 +tv156 = 952 +tv131 = 952 +tv86 = 952 +Link$ = 992 +Delta$ = 1000 +?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`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 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z +_TEXT SEGMENT +FourByte$ = 4 +TwoByte$ = 36 +OneByte$ = 68 +Buffer$ = 104 +Link$ = 352 +JitData$ = 360 +?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z PROC ; JitMutateInstForXor, COMDAT + +; 97 : { + +$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 68 01 + 00 00 sub rsp, 360 ; 00000168H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 98 : ULONG FourByte = Link->RawDataSize / 4; + + 0003b 33 d2 xor edx, edx + 0003d 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00044 8b 40 28 mov eax, DWORD PTR [rax+40] + 00047 b9 04 00 00 00 mov ecx, 4 + 0004c f7 f1 div ecx + 0004e 89 45 04 mov DWORD PTR FourByte$[rbp], eax + +; 99 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; + + 00051 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00054 c1 e0 02 shl eax, 2 + 00057 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0005e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00061 2b c8 sub ecx, eax + 00063 8b c1 mov eax, ecx + 00065 33 d2 xor edx, edx + 00067 b9 02 00 00 00 mov ecx, 2 + 0006c f7 f1 div ecx + 0006e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + +; 100 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); + + 00071 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00074 c1 e0 02 shl eax, 2 + 00077 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0007e 8b 49 28 mov ecx, DWORD PTR [rcx+40] + 00081 2b c8 sub ecx, eax + 00083 8b c1 mov eax, ecx + 00085 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] + 00088 d1 e1 shl ecx, 1 + 0008a 2b c1 sub eax, ecx + 0008c 89 45 44 mov DWORD PTR OneByte$[rbp], eax + +; 101 : +; 102 : PUCHAR Buffer = Link->RawData; + + 0008f 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00096 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0009a 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax +$LN2@JitMutateI: + +; 103 : while (FourByte) + + 0009e 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 + 000a2 74 3a je SHORT $LN3@JitMutateI + +; 104 : { +; 105 : *(PULONG)Buffer ^= JitData->Data[2 - FourByte]; + + 000a4 b8 02 00 00 00 mov eax, 2 + 000a9 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] + 000ac 8b c0 mov eax, eax + 000ae 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000b2 48 8b 95 68 01 + 00 00 mov rdx, QWORD PTR JitData$[rbp] + 000b9 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] + 000bc 8b 09 mov ecx, DWORD PTR [rcx] + 000be 33 c8 xor ecx, eax + 000c0 8b c1 mov eax, ecx + 000c2 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000c6 89 01 mov DWORD PTR [rcx], eax + +; 106 : Buffer += 4; + + 000c8 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] + 000cc 48 83 c0 04 add rax, 4 + 000d0 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + +; 107 : FourByte--; + + 000d4 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 000d7 ff c8 dec eax + 000d9 89 45 04 mov DWORD PTR FourByte$[rbp], eax + +; 108 : } + + 000dc eb c0 jmp SHORT $LN2@JitMutateI +$LN3@JitMutateI: + +; 109 : +; 110 : if (TwoByte) + + 000de 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 000e2 74 32 je SHORT $LN4@JitMutateI + +; 111 : { +; 112 : *(PUSHORT)Buffer ^= (USHORT)JitData->Data[3]; + + 000e4 b8 04 00 00 00 mov eax, 4 + 000e9 48 6b c0 03 imul rax, rax, 3 + 000ed 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 000f4 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] + 000f8 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 000fc 0f b7 09 movzx ecx, WORD PTR [rcx] + 000ff 33 c8 xor ecx, eax + 00101 8b c1 mov eax, ecx + 00103 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 00107 66 89 01 mov WORD PTR [rcx], ax + +; 113 : Buffer += 2; + + 0010a 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] + 0010e 48 83 c0 02 add rax, 2 + 00112 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax +$LN4@JitMutateI: + +; 114 : } +; 115 : +; 116 : if (OneByte) + + 00116 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0011a 74 25 je SHORT $LN5@JitMutateI + +; 117 : *(PUCHAR)Buffer ^= (UCHAR)JitData->Data[3]; + + 0011c b8 04 00 00 00 mov eax, 4 + 00121 48 6b c0 03 imul rax, rax, 3 + 00125 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR JitData$[rbp] + 0012c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 00130 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 00134 0f b6 09 movzx ecx, BYTE PTR [rcx] + 00137 33 c8 xor ecx, eax + 00139 8b c1 mov eax, ecx + 0013b 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] + 0013f 88 01 mov BYTE PTR [rcx], al +$LN5@JitMutateI: + +; 118 : +; 119 : } + + 00141 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 00148 5f pop rdi + 00149 5d pop rbp + 0014a c3 ret 0 +?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForXor +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +Ledger$ = 4 +T$4 = 40 +SimpleFlags$5 = 72 +FlagsRead$6 = 104 +FlagsWritten$7 = 136 +__$ArrayPad$ = 344 +Link$ = 384 +?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z PROC ; JitAreFlagsClobberedBeforeUse, COMDAT + +; 67 : { + +$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 01 + 00 00 sub rsp, 392 ; 00000188H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 a8 + 01 00 00 mov rcx, QWORD PTR [rsp+424] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 58 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 68 : XED_FLAG_SET Ledger; +; 69 : Ledger.s.zf = TRUE; + + 00047 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0004a 83 c8 40 or eax, 64 ; 00000040H + 0004d 89 45 04 mov DWORD PTR Ledger$[rbp], eax + +; 70 : Ledger.s.sf = TRUE; + + 00050 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00053 0f ba e8 07 bts eax, 7 + 00057 89 45 04 mov DWORD PTR Ledger$[rbp], eax + +; 71 : Ledger.s.pf = TRUE; + + 0005a 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 0005d 83 c8 04 or eax, 4 + 00060 89 45 04 mov DWORD PTR Ledger$[rbp], eax + +; 72 : Ledger.s.of = TRUE; + + 00063 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00066 0f ba e8 0b bts eax, 11 + 0006a 89 45 04 mov DWORD PTR Ledger$[rbp], eax + +; 73 : Ledger.s.cf = TRUE; + + 0006d 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00070 83 c8 01 or eax, 1 + 00073 89 45 04 mov DWORD PTR Ledger$[rbp], eax + +; 74 : Ledger.s.af = TRUE; + + 00076 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] + 00079 83 c8 10 or eax, 16 + 0007c 89 45 04 mov DWORD PTR Ledger$[rbp], eax + +; 75 : +; 76 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) + + 0007f 48 8b 85 80 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00086 48 8b 00 mov rax, QWORD PTR [rax] + 00089 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0008d eb 0b jmp SHORT $LN4@JitAreFlag +$LN2@JitAreFlag: + 0008f 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00093 48 8b 00 mov rax, QWORD PTR [rax] + 00096 48 89 45 28 mov QWORD PTR T$4[rbp], rax +$LN4@JitAreFlag: + 0009a 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 0009f 74 77 je SHORT $LN3@JitAreFlag + +; 77 : { +; 78 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 000a1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000a5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000a8 83 e0 01 and eax, 1 + 000ab 85 c0 test eax, eax + 000ad 74 02 je SHORT $LN5@JitAreFlag + +; 79 : continue; + + 000af eb de jmp SHORT $LN2@JitAreFlag +$LN5@JitAreFlag: + +; 80 : +; 81 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); + + 000b1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000b5 48 83 c0 30 add rax, 48 ; 00000030H + 000b9 48 8b c8 mov rcx, rax + 000bc e8 00 00 00 00 call xed_decoded_inst_get_rflags_info + 000c1 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax + +; 82 : CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags); + + 000c5 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] + 000c9 e8 00 00 00 00 call xed_simple_flag_get_read_flag_set + 000ce 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax + +; 83 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); + + 000d2 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] + 000d6 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set + 000db 48 89 85 88 00 + 00 00 mov QWORD PTR FlagsWritten$7[rbp], rax + +; 84 : +; 85 : if (JitCheckFlagCollisions(FlagsRead, Ledger)) + + 000e2 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] + 000e5 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] + 000e9 e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions + 000ee 85 c0 test eax, eax + 000f0 74 04 je SHORT $LN6@JitAreFlag + +; 86 : return FALSE; + + 000f2 33 c0 xor eax, eax + 000f4 eb 24 jmp SHORT $LN1@JitAreFlag +$LN6@JitAreFlag: + +; 87 : +; 88 : JitUpdateConFlagsLedger(FlagsWritten, &Ledger); + + 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] + 00101 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger + +; 89 : +; 90 : if (Ledger.flat == 0) + + 00106 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 + 0010a 75 07 jne SHORT $LN7@JitAreFlag + +; 91 : return TRUE; + + 0010c b8 01 00 00 00 mov eax, 1 + 00111 eb 07 jmp SHORT $LN1@JitAreFlag +$LN7@JitAreFlag: + +; 92 : } + + 00113 e9 77 ff ff ff jmp $LN2@JitAreFlag +$LN3@JitAreFlag: + +; 93 : return FALSE; + + 00118 33 c0 xor eax, eax +$LN1@JitAreFlag: + +; 94 : } + + 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 + 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] + 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] + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +SimpleFlags$ = 8 +FlagsWritten$ = 40 +FlagsUndefined$ = 72 +tv132 = 276 +Link$ = 320 +?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z PROC ; JitDoesInstOverriteConditionFlags, COMDAT + +; 52 : { + +$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 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 53 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction); + + 00036 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0003d 48 83 c0 30 add rax, 48 ; 00000030H + 00041 48 8b c8 mov rcx, rax + 00044 e8 00 00 00 00 call xed_decoded_inst_get_rflags_info + 00049 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax + +; 54 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); + + 0004d 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] + 00051 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set + 00056 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax + +; 55 : CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); + + 0005a 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] + 0005e e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set + 00063 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax + +; 56 : +; 57 : return (FlagsWritten->s.zf && + + 00067 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0006b 8b 00 mov eax, DWORD PTR [rax] + 0006d c1 e8 06 shr eax, 6 + 00070 83 e0 01 and eax, 1 + 00073 85 c0 test eax, eax + 00075 74 59 je SHORT $LN3@JitDoesIns + 00077 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0007b 8b 00 mov eax, DWORD PTR [rax] + 0007d c1 e8 07 shr eax, 7 + 00080 83 e0 01 and eax, 1 + 00083 85 c0 test eax, eax + 00085 74 49 je SHORT $LN3@JitDoesIns + 00087 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0008b 8b 00 mov eax, DWORD PTR [rax] + 0008d c1 e8 02 shr eax, 2 + 00090 83 e0 01 and eax, 1 + 00093 85 c0 test eax, eax + 00095 74 39 je SHORT $LN3@JitDoesIns + 00097 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 0009b 8b 00 mov eax, DWORD PTR [rax] + 0009d c1 e8 0b shr eax, 11 + 000a0 83 e0 01 and eax, 1 + 000a3 85 c0 test eax, eax + 000a5 74 29 je SHORT $LN3@JitDoesIns + 000a7 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] + 000ab 8b 00 mov eax, DWORD PTR [rax] + 000ad 83 e0 01 and eax, 1 + 000b0 85 c0 test eax, eax + 000b2 74 1c je SHORT $LN3@JitDoesIns + 000b4 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] + 000b8 8b 00 mov eax, DWORD PTR [rax] + 000ba c1 e8 04 shr eax, 4 + 000bd 83 e0 01 and eax, 1 + 000c0 85 c0 test eax, eax + 000c2 74 0c je SHORT $LN3@JitDoesIns + 000c4 c7 85 14 01 00 + 00 01 00 00 00 mov DWORD PTR tv132[rbp], 1 + 000ce eb 0a jmp SHORT $LN4@JitDoesIns +$LN3@JitDoesIns: + 000d0 c7 85 14 01 00 + 00 00 00 00 00 mov DWORD PTR tv132[rbp], 0 +$LN4@JitDoesIns: + 000da 8b 85 14 01 00 + 00 mov eax, DWORD PTR tv132[rbp] + +; 58 : FlagsWritten->s.sf && +; 59 : FlagsWritten->s.pf && +; 60 : FlagsWritten->s.of && +; 61 : FlagsWritten->s.cf && +; 62 : FlagsUndefined->s.af +; 63 : ); +; 64 : } + + 000e0 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000e7 5f pop rdi + 000e8 5d pop rbp + 000e9 c3 ret 0 +?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitDoesInstOverriteConditionFlags +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z +_TEXT SEGMENT +FlagsWritten$ = 224 +Ledger$ = 232 +?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z PROC ; JitUpdateConFlagsLedger, COMDAT + +; 36 : { + +$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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 37 : if (FlagsWritten->s.zf) + + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] + 00042 8b 00 mov eax, DWORD PTR [rax] + 00044 c1 e8 06 shr eax, 6 + 00047 83 e0 01 and eax, 1 + 0004a 85 c0 test eax, eax + 0004c 74 15 je SHORT $LN2@JitUpdateC + +; 38 : Ledger->s.zf = FALSE; + + 0004e 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Ledger$[rbp] + 00055 8b 00 mov eax, DWORD PTR [rax] + 00057 83 e0 bf and eax, -65 ; ffffffbfH + 0005a 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Ledger$[rbp] + 00061 89 01 mov DWORD PTR [rcx], eax +$LN2@JitUpdateC: + +; 39 : if (FlagsWritten->s.sf) + + 00063 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] + 0006a 8b 00 mov eax, DWORD PTR [rax] + 0006c c1 e8 07 shr eax, 7 + 0006f 83 e0 01 and eax, 1 + 00072 85 c0 test eax, eax + 00074 74 16 je SHORT $LN3@JitUpdateC + +; 40 : Ledger->s.sf = FALSE; + + 00076 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Ledger$[rbp] + 0007d 8b 00 mov eax, DWORD PTR [rax] + 0007f 0f ba f0 07 btr eax, 7 + 00083 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Ledger$[rbp] + 0008a 89 01 mov DWORD PTR [rcx], eax +$LN3@JitUpdateC: + +; 41 : if (FlagsWritten->s.pf) + + 0008c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] + 00093 8b 00 mov eax, DWORD PTR [rax] + 00095 c1 e8 02 shr eax, 2 + 00098 83 e0 01 and eax, 1 + 0009b 85 c0 test eax, eax + 0009d 74 15 je SHORT $LN4@JitUpdateC + +; 42 : Ledger->s.pf = FALSE; + + 0009f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Ledger$[rbp] + 000a6 8b 00 mov eax, DWORD PTR [rax] + 000a8 83 e0 fb and eax, -5 ; fffffffbH + 000ab 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Ledger$[rbp] + 000b2 89 01 mov DWORD PTR [rcx], eax +$LN4@JitUpdateC: + +; 43 : if (FlagsWritten->s.of) + + 000b4 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] + 000bb 8b 00 mov eax, DWORD PTR [rax] + 000bd c1 e8 0b shr eax, 11 + 000c0 83 e0 01 and eax, 1 + 000c3 85 c0 test eax, eax + 000c5 74 16 je SHORT $LN5@JitUpdateC + +; 44 : Ledger->s.of = FALSE; + + 000c7 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Ledger$[rbp] + 000ce 8b 00 mov eax, DWORD PTR [rax] + 000d0 0f ba f0 0b btr eax, 11 + 000d4 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Ledger$[rbp] + 000db 89 01 mov DWORD PTR [rcx], eax +$LN5@JitUpdateC: + +; 45 : if (FlagsWritten->s.cf) + + 000dd 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] + 000e4 8b 00 mov eax, DWORD PTR [rax] + 000e6 83 e0 01 and eax, 1 + 000e9 85 c0 test eax, eax + 000eb 74 15 je SHORT $LN6@JitUpdateC + +; 46 : Ledger->s.cf = FALSE; + + 000ed 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Ledger$[rbp] + 000f4 8b 00 mov eax, DWORD PTR [rax] + 000f6 83 e0 fe and eax, -2 ; fffffffeH + 000f9 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Ledger$[rbp] + 00100 89 01 mov DWORD PTR [rcx], eax +$LN6@JitUpdateC: + +; 47 : if (FlagsWritten->s.af) + + 00102 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] + 00109 8b 00 mov eax, DWORD PTR [rax] + 0010b c1 e8 04 shr eax, 4 + 0010e 83 e0 01 and eax, 1 + 00111 85 c0 test eax, eax + 00113 74 15 je SHORT $LN7@JitUpdateC + +; 48 : Ledger->s.af = FALSE; + + 00115 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR Ledger$[rbp] + 0011c 8b 00 mov eax, DWORD PTR [rax] + 0011e 83 e0 ef and eax, -17 ; ffffffefH + 00121 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Ledger$[rbp] + 00128 89 01 mov DWORD PTR [rcx], eax +$LN7@JitUpdateC: + +; 49 : } + + 0012a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00131 5f pop rdi + 00132 5d pop rbp + 00133 c3 ret 0 +?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ENDP ; JitUpdateConFlagsLedger +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z +_TEXT SEGMENT +tv165 = 192 +FlagsRead$ = 240 +Ledger$ = 248 +?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z PROC ; JitCheckFlagCollisions, COMDAT + +; 25 : { + +$LN11: + 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 f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 26 : return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) || + + 0003a 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 00041 8b 00 mov eax, DWORD PTR [rax] + 00043 c1 e8 06 shr eax, 6 + 00046 83 e0 01 and eax, 1 + 00049 85 c0 test eax, eax + 0004b 74 23 je SHORT $LN3@JitCheckFl + 0004d 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 00054 8b 00 mov eax, DWORD PTR [rax] + 00056 c1 e8 06 shr eax, 6 + 00059 83 e0 01 and eax, 1 + 0005c 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR Ledger$[rbp] + 00062 c1 e9 06 shr ecx, 6 + 00065 83 e1 01 and ecx, 1 + 00068 3b c1 cmp eax, ecx + 0006a 0f 84 05 01 00 + 00 je $LN5@JitCheckFl +$LN3@JitCheckFl: + 00070 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 00077 8b 00 mov eax, DWORD PTR [rax] + 00079 c1 e8 07 shr eax, 7 + 0007c 83 e0 01 and eax, 1 + 0007f 85 c0 test eax, eax + 00081 74 23 je SHORT $LN4@JitCheckFl + 00083 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 0008a 8b 00 mov eax, DWORD PTR [rax] + 0008c c1 e8 07 shr eax, 7 + 0008f 83 e0 01 and eax, 1 + 00092 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR Ledger$[rbp] + 00098 c1 e9 07 shr ecx, 7 + 0009b 83 e1 01 and ecx, 1 + 0009e 3b c1 cmp eax, ecx + 000a0 0f 84 cf 00 00 + 00 je $LN5@JitCheckFl +$LN4@JitCheckFl: + 000a6 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 000ad 8b 00 mov eax, DWORD PTR [rax] + 000af c1 e8 02 shr eax, 2 + 000b2 83 e0 01 and eax, 1 + 000b5 85 c0 test eax, eax + 000b7 74 23 je SHORT $LN6@JitCheckFl + 000b9 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 000c0 8b 00 mov eax, DWORD PTR [rax] + 000c2 c1 e8 02 shr eax, 2 + 000c5 83 e0 01 and eax, 1 + 000c8 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR Ledger$[rbp] + 000ce c1 e9 02 shr ecx, 2 + 000d1 83 e1 01 and ecx, 1 + 000d4 3b c1 cmp eax, ecx + 000d6 0f 84 99 00 00 + 00 je $LN5@JitCheckFl +$LN6@JitCheckFl: + 000dc 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 000e3 8b 00 mov eax, DWORD PTR [rax] + 000e5 c1 e8 0b shr eax, 11 + 000e8 83 e0 01 and eax, 1 + 000eb 85 c0 test eax, eax + 000ed 74 1f je SHORT $LN7@JitCheckFl + 000ef 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 000f6 8b 00 mov eax, DWORD PTR [rax] + 000f8 c1 e8 0b shr eax, 11 + 000fb 83 e0 01 and eax, 1 + 000fe 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR Ledger$[rbp] + 00104 c1 e9 0b shr ecx, 11 + 00107 83 e1 01 and ecx, 1 + 0010a 3b c1 cmp eax, ecx + 0010c 74 67 je SHORT $LN5@JitCheckFl +$LN7@JitCheckFl: + 0010e 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 00115 8b 00 mov eax, DWORD PTR [rax] + 00117 83 e0 01 and eax, 1 + 0011a 85 c0 test eax, eax + 0011c 74 19 je SHORT $LN8@JitCheckFl + 0011e 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 00125 8b 00 mov eax, DWORD PTR [rax] + 00127 83 e0 01 and eax, 1 + 0012a 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR Ledger$[rbp] + 00130 83 e1 01 and ecx, 1 + 00133 3b c1 cmp eax, ecx + 00135 74 3e je SHORT $LN5@JitCheckFl +$LN8@JitCheckFl: + 00137 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 0013e 8b 00 mov eax, DWORD PTR [rax] + 00140 c1 e8 04 shr eax, 4 + 00143 83 e0 01 and eax, 1 + 00146 85 c0 test eax, eax + 00148 74 1f je SHORT $LN9@JitCheckFl + 0014a 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR FlagsRead$[rbp] + 00151 8b 00 mov eax, DWORD PTR [rax] + 00153 c1 e8 04 shr eax, 4 + 00156 83 e0 01 and eax, 1 + 00159 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR Ledger$[rbp] + 0015f c1 e9 04 shr ecx, 4 + 00162 83 e1 01 and ecx, 1 + 00165 3b c1 cmp eax, ecx + 00167 74 0c je SHORT $LN5@JitCheckFl +$LN9@JitCheckFl: + 00169 c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 + 00173 eb 0a jmp SHORT $LN10@JitCheckFl +$LN5@JitCheckFl: + 00175 c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 +$LN10@JitCheckFl: + 0017f 8b 85 c0 00 00 + 00 mov eax, DWORD PTR tv165[rbp] + +; 27 : (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || +; 28 : (FlagsRead->s.pf && FlagsRead->s.pf == Ledger.s.pf) || +; 29 : (FlagsRead->s.of && FlagsRead->s.of == Ledger.s.of) || +; 30 : (FlagsRead->s.cf && FlagsRead->s.cf == Ledger.s.cf) || +; 31 : (FlagsRead->s.af && FlagsRead->s.af == Ledger.s.af) +; 32 : ); +; 33 : } + + 00185 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 0018c 5f pop rdi + 0018d 5d pop rbp + 0018e c3 ret 0 +?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ENDP ; JitCheckFlagCollisions +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; JitEmitPopfqInst, COMDAT + +; 16 : { + +$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 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 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 40 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 17 : UCHAR RawData[] = { 0x9D }; + + 00047 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH + +; 18 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); + + 0004b b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00055 48 89 85 28 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 0005c 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00064 74 24 je SHORT $LN3@JitEmitPop + 00066 41 b9 01 00 00 + 00 mov r9d, 1 + 0006c 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00070 ba 04 00 00 00 mov edx, 4 + 00075 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 0007c e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00081 48 89 85 38 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 00088 eb 0b jmp SHORT $LN4@JitEmitPop +$LN3@JitEmitPop: + 0008a 48 c7 85 38 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitPop: + 00095 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 0009c 48 89 85 08 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000a3 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000aa 48 89 45 28 mov QWORD PTR Link$[rbp], rax + +; 19 : XedDecode(&Link->XedInstruction, Link->RawData, 1); + + 000ae 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000b2 48 83 c0 30 add rax, 48 ; 00000030H + 000b6 41 b8 01 00 00 + 00 mov r8d, 1 + 000bc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000c0 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000c4 48 8b c8 mov rcx, rax + 000c7 e8 00 00 00 00 call xed_decode + +; 20 : NcAppendToBlock(Block, Link); + + 000cc 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000d0 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 000d7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 21 : return TRUE; + + 000dc b8 01 00 00 00 mov eax, 1 + +; 22 : } + + 000e1 8b f8 mov edi, eax + 000e3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e7 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 000ee e8 00 00 00 00 call _RTC_CheckStackVars + 000f3 8b c7 mov eax, edi + 000f5 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000fc 48 33 cd xor rcx, rbp + 000ff e8 00 00 00 00 call __security_check_cookie + 00104 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 0010b 5f pop rdi + 0010c 5d pop rbp + 0010d c3 ret 0 +?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPopfqInst +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPopfqInst'::`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 28 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??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPopfqInst'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPopfqInst'::`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 28 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??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPopfqInst'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; JitEmitPushfqInst, COMDAT + +; 7 : { + +$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 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 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 40 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 8 : UCHAR RawData[] = { 0x9C }; + + 00047 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH + +; 9 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); + + 0004b b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00055 48 89 85 28 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 0005c 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00064 74 24 je SHORT $LN3@JitEmitPus + 00066 41 b9 01 00 00 + 00 mov r9d, 1 + 0006c 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00070 ba 04 00 00 00 mov edx, 4 + 00075 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 0007c e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00081 48 89 85 38 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 00088 eb 0b jmp SHORT $LN4@JitEmitPus +$LN3@JitEmitPus: + 0008a 48 c7 85 38 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitPus: + 00095 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 0009c 48 89 85 08 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000a3 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000aa 48 89 45 28 mov QWORD PTR Link$[rbp], rax + +; 10 : XedDecode(&Link->XedInstruction, Link->RawData, 1); + + 000ae 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000b2 48 83 c0 30 add rax, 48 ; 00000030H + 000b6 41 b8 01 00 00 + 00 mov r8d, 1 + 000bc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000c0 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000c4 48 8b c8 mov rcx, rax + 000c7 e8 00 00 00 00 call xed_decode + +; 11 : NcAppendToBlock(Block, Link); + + 000cc 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000d0 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 000d7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 12 : return TRUE; + + 000dc b8 01 00 00 00 mov eax, 1 + +; 13 : } + + 000e1 8b f8 mov edi, eax + 000e3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e7 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 000ee e8 00 00 00 00 call _RTC_CheckStackVars + 000f3 8b c7 mov eax, edi + 000f5 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000fc 48 33 cd xor rcx, rbp + 000ff e8 00 00 00 00 call __security_check_cookie + 00104 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 0010b 5f pop rdi + 0010c 5d pop rbp + 0010d c3 ret 0 +?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPushfqInst +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPushfqInst'::`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 28 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??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPushfqInst'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPushfqInst'::`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 28 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??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPushfqInst'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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] + 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 +; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 83 c0 10 add rax, 16 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT + +; 1343 : constexpr _Ty1& _Get_first() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT + +; 1731 : _Alty& _Getal() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 + +; 1733 : } + + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +_TEXT SEGMENT +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT + +; 1685 : void _Tidy() noexcept { // free all storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1686 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 70 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1687 : pointer& _Myfirst = _My_data._Myfirst; + + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + +; 1688 : pointer& _Mylast = _My_data._Mylast; + + 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00051 48 83 c0 10 add rax, 16 + 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 1689 : pointer& _Myend = _My_data._Myend; + + 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005d 48 83 c0 18 add rax, 24 + 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + +; 1690 : +; 1691 : _My_data._Orphan_all(); + + 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array + + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 + 00 je $LN2@Tidy + +; 1694 : _Destroy(_Myfirst, _Mylast); + + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 00096 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 02 sar rax, 2 + 000be 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + +; 1696 : +; 1697 : _Myfirst = pointer(); + + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1698 : _Mylast = pointer(); + + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1699 : _Myend = pointer(); + + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: + +; 1700 : } +; 1701 : } + + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT + +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + +; 1613 : } + + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT + +; 672 : ~vector() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 673 : _Tidy(); + + 00047 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); + + 00053 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); + + 00073 48 c7 85 04 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } + + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +_TEXT SEGMENT +this$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT + +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 804 : } + + 0005a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; 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 f0 00 00 00 mov edx, 240 ; 000000f0H + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT + +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { + +$LN7: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it + + 00047 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00052 74 6b je SHORT $LN5@Orphan_all + +; 1208 : _Lockit _Lock(_LOCK_DEBUG); + + 00054 ba 03 00 00 00 mov edx, 3 + 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { + + 00063 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 83 c0 08 add rax, 8 + 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax + 00075 eb 12 jmp SHORT $LN4@Orphan_all +$LN2@Orphan_all: + 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] + 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00086 48 89 01 mov QWORD PTR [rcx], rax +$LN4@Orphan_all: + 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00091 74 10 je SHORT $LN3@Orphan_all + +; 1211 : (*_Pnext)->_Myproxy = nullptr; + + 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1212 : } + + 000a1 eb d4 jmp SHORT $LN2@Orphan_all +$LN3@Orphan_all: + +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; + + 000a3 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + +; 1215 : } + + 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000b9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN5@Orphan_all: + +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } + + 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData + 000ca e8 00 00 00 00 call _RTC_CheckStackVars + 000cf 90 npad 1 + 000d0 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d7 48 33 cd xor rcx, rbp + 000da e8 00 00 00 00 call __security_check_cookie + 000df 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e6 5f pop rdi + 000e7 5d pop rbp + 000e8 c3 ret 0 +?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +_TEXT SEGMENT +_Ptr_user$ = 8 +_Ptr_container$ = 40 +_Min_back_shift$ = 72 +_Back_shift$ = 104 +_Ptr$ = 352 +_Bytes$ = 360 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT + +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { + +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 8b fc mov rdi, rsp + 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; + + 0003b 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00050 48 89 01 mov QWORD PTR [rcx], rax + +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); + + 00053 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; + + 00061 b8 08 00 00 00 mov eax, 8 + 00066 48 6b c0 ff imul rax, rax, -1 + 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax +$LN4@Adjust_man: + +; 138 : +; 139 : // If the following asserts, it likely means that we are performing +; 140 : // an aligned delete on memory coming from an unaligned allocation. +; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); + + 00076 b8 08 00 00 00 mov eax, 8 + 0007b 48 6b c0 fe imul rax, rax, -2 + 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00083 48 ba fa fa fa + fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH + 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 00091 75 02 jne SHORT $LN14@Adjust_man + 00093 eb 77 jmp SHORT $LN15@Adjust_man +$LN14@Adjust_man: +$LN7@Adjust_man: + 00095 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 0009b 83 c0 09 add eax, 9 + 0009e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 000b6 45 33 c9 xor r9d, r9d + 000b9 44 8b c0 mov r8d, eax + 000bc 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000c3 b9 02 00 00 00 mov ecx, 2 + 000c8 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 000ce 83 f8 01 cmp eax, 1 + 000d1 75 03 jne SHORT $LN19@Adjust_man + 000d3 cc int 3 + 000d4 33 c0 xor eax, eax +$LN19@Adjust_man: + 000d6 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 000dc 83 c0 09 add eax, 9 + 000df 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000e8 44 8b c8 mov r9d, eax + 000eb 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000f2 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ + 000f9 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 00100 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 75 89 jne SHORT $LN7@Adjust_man +$LN15@Adjust_man: + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff + ff jne $LN4@Adjust_man + +; 142 : +; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 144 : // in range [_Min_back_shift, _Non_user_size] +; 145 : #ifdef _DEBUG +; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); + + 00116 48 c7 45 48 10 + 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 + +; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 149 : #endif // _DEBUG +; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; + + 0011e 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00129 48 8b 00 mov rax, QWORD PTR [rax] + 0012c 48 2b c1 sub rax, rcx + 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax +$LN10@Adjust_man: + +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); + + 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00138 72 09 jb SHORT $LN16@Adjust_man + 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 0013f 77 02 ja SHORT $LN16@Adjust_man + 00141 eb 77 jmp SHORT $LN17@Adjust_man +$LN16@Adjust_man: +$LN13@Adjust_man: + 00143 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 00149 83 c0 13 add eax, 19 + 0014c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00164 45 33 c9 xor r9d, r9d + 00167 44 8b c0 mov r8d, eax + 0016a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00171 b9 02 00 00 00 mov ecx, 2 + 00176 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 0017c 83 f8 01 cmp eax, 1 + 0017f 75 03 jne SHORT $LN20@Adjust_man + 00181 cc int 3 + 00182 33 c0 xor eax, eax +$LN20@Adjust_man: + 00184 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 0018a 83 c0 13 add eax, 19 + 0018d 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 00196 44 8b c8 mov r9d, eax + 00199 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 001a0 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ + 001a7 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 001ae ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 75 89 jne SHORT $LN13@Adjust_man +$LN17@Adjust_man: + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff + ff jne $LN10@Adjust_man + +; 152 : _Ptr = reinterpret_cast(_Ptr_container); + + 001c4 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx + +; 153 : } + + 001d2 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 001d9 5f pop rdi + 001da 5d pop rbp + 001db c3 ret 0 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\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 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] + 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 28 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 957 : int _Result; +; 958 : va_list _ArgList; +; 959 : __crt_va_start(_ArgList, _Format); + + 00056 48 8d 85 58 01 + 00 00 lea rax, QWORD PTR _Format$[rbp+8] + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + +; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); + + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp___acrt_iob_func + 00077 48 89 85 20 01 + 00 00 mov QWORD PTR tv75[rbp], rax + 0007e 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv77[rbp] + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 + 00 00 mov rdx, QWORD PTR _Format$[rbp] + 0008f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR tv75[rbp] + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + +; 961 : __crt_va_end(_ArgList); + + 0009e 48 c7 45 28 00 + 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 + +; 962 : return _Result; + + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + +; 963 : } + + 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 + 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] + 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] + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 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 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 + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); + + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _ArgList$[rbp] + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 + 00 00 mov r9, QWORD PTR _Locale$[rbp] + 0005d 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Format$[rbp] + 00064 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR _Stream$[rbp] + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp___stdio_common_vfprintf + +; 646 : } + + 00074 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 +_vfprintf_l ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h +; COMDAT __local_stdio_printf_options +_TEXT SEGMENT +__local_stdio_printf_options PROC ; COMDAT + +; 90 : { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 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 + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : static unsigned __int64 _OptionsStorage; +; 92 : return &_OptionsStorage; + + 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 : } + + 00031 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +__local_stdio_printf_options ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..b0409cb --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Junk.cod @@ -0,0 +1,1378 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__0C803D80_Junk@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..b8bb8ec --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Main.cod @@ -0,0 +1,2079 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +PUBLIC ?TestBuffer@@3PAEA ; TestBuffer +PUBLIC ?TestBufferSize@@3KA ; TestBufferSize +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__4031338C_Main@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +_DATA SEGMENT +?TestBuffer@@3PAEA DB 048H ; TestBuffer + DB 033H + DB 0c0H + DB 048H + DB 033H + DB 0c0H + DB 0ebH + DB 0eH + DB 048H + DB 033H + DB 0c0H + DB 048H + DB 033H + DB 0c0H + DB 07eH + DB 06H + DB 048H + DB 033H + DB 0c0H + DB 048H + DB 033H + DB 0c0H + DB 048H + DB 033H + DB 0c0H + DB 048H + DB 033H + DB 0c0H + DB 0ebH + DB 0f8H + DB 050H + DB 048H + DB 0b8H + DB 0ffH + DB 0ffH + DB 0ffH + DB 0ffH + DB 0ffH + DB 0ffH + DB 0ffH + DB 0fH + DB 048H + DB 087H + DB 04H + DB 024H + DB 0c3H + ORG $+2 +?TestBufferSize@@3KA DD 02eH ; TestBufferSize +_DATA 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 RtlSecureZeroMemory +PUBLIC __local_stdio_printf_options +PUBLIC _vfprintf_l +PUBLIC printf +PUBLIC wmemcpy +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 main +PUBLIC __JustMyCode_Default +PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_01EEMJAFIK@?6@ ; `string' +PUBLIC ??_C@_05PDJBBECF@pause@ ; `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 ??_U@YAPEAX_K@Z:PROC ; operator new[] +EXTRN memcpy:PROC +EXTRN memset:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp_system:PROC +EXTRN __imp___acrt_iob_func:PROC +EXTRN __imp___stdio_common_vfprintf:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN xed_tables_init:PROC +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ??1_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK +EXTRN ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDebugPrint +EXTRN ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcPrintBlockCode +EXTRN ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z:PROC ; JitEmitPreRipMov +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA +_BSS SEGMENT +?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage +_BSS ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$RtlSecureZeroMemory DD imagerel $LN3 + DD imagerel $LN3+102 + DD imagerel $unwind$RtlSecureZeroMemory +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$__local_stdio_printf_options DD imagerel $LN3 + 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+126 + DD imagerel $unwind$_vfprintf_l +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$printf DD imagerel $LN3 + DD imagerel $LN3+214 + DD imagerel $unwind$printf +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$main DD imagerel $LN5 + DD imagerel $LN5+292 + DD imagerel $unwind$main +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$main$dtor$0 DD imagerel main$dtor$0 + DD imagerel main$dtor$0+36 + DD imagerel $unwind$main$dtor$0 +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_05PDJBBECF@pause@ +CONST SEGMENT +??_C@_05PDJBBECF@pause@ DB 'pause', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_01EEMJAFIK@?6@ +CONST SEGMENT +??_C@_01EEMJAFIK@?6@ DB 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$main$dtor$0 DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$main DB 06H + DB 00H + DB 00H + DB 094H + DB 02H + DB 089H, 02H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$main DB 02H + DB 0eH + DD imagerel main$dtor$0 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$main DB 028H + DD imagerel $stateUnwindMap$main + DD imagerel $ip2state$main +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$main DD 025052f19H + DD 010a230fH + DD 07003004dH + DD 05002H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$main + DD 025aH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +main$rtcName$0 DB 054H + DB 00H + ORG $+2 +main$rtcName$1 DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+7 +main$rtcVarDesc DD 0138H + DD 014H + DQ FLAT:main$rtcName$1 + DD 030H + DD 0f0H + DQ FLAT:main$rtcName$0 + ORG $+96 +main$rtcFrameData DD 02H + DD 00H + DQ FLAT:main$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + 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 +$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 +$unwind$RtlSecureZeroMemory DD 025052f01H + DD 01132318H + DD 0700c0021H + DD 0500bH +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:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT main +_TEXT SEGMENT +T$ = 16 +Data$ = 280 +NewBlock$ = 328 +$T5 = 552 +__$ArrayPad$ = 568 +main PROC ; COMDAT + +; 32 : { + +$LN5: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec 68 02 + 00 00 sub rsp, 616 ; 00000268H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 9a 00 00 00 mov ecx, 154 ; 0000009aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00025 48 33 c5 xor rax, rbp + 00028 48 89 85 38 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 33 : XedTablesInit(); + + 0003b e8 00 00 00 00 call xed_tables_init + +; 34 : /*srand(time(NULL)); +; 35 : +; 36 : NATIVE_CODE_BLOCK Block; +; 37 : NcDisassemble(&Block, TestBuffer, TestBufferSize); +; 38 : PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); +; 39 : NcDebugPrint(OpaqueBranch); +; 40 : system("pause");*/ +; 41 : +; 42 : +; 43 : +; 44 : +; 45 : NATIVE_CODE_LINK T; + + 00040 48 8d 4d 10 lea rcx, QWORD PTR T$[rbp] + 00044 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00049 90 npad 1 + +; 46 : T.RawDataSize = 10; + + 0004a c7 45 38 0a 00 + 00 00 mov DWORD PTR T$[rbp+40], 10 + +; 47 : T.RawData = new UCHAR[10]; + + 00051 b9 0a 00 00 00 mov ecx, 10 + 00056 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 0005b 48 89 85 28 02 + 00 00 mov QWORD PTR $T5[rbp], rax + 00062 48 8b 85 28 02 + 00 00 mov rax, QWORD PTR $T5[rbp] + 00069 48 89 45 30 mov QWORD PTR T$[rbp+32], rax + +; 48 : memset(T.RawData, 0xAA, 10); + + 0006d 41 b8 0a 00 00 + 00 mov r8d, 10 + 00073 ba aa 00 00 00 mov edx, 170 ; 000000aaH + 00078 48 8b 4d 30 mov rcx, QWORD PTR T$[rbp+32] + 0007c e8 00 00 00 00 call memset + +; 49 : JIT_BITWISE_DATA Data; +; 50 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); + + 00081 ba 14 00 00 00 mov edx, 20 + 00086 48 8d 8d 18 01 + 00 00 lea rcx, QWORD PTR Data$[rbp] + 0008d e8 00 00 00 00 call RtlSecureZeroMemory + +; 51 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); + + 00092 33 d2 xor edx, edx + 00094 48 8d 4d 10 lea rcx, QWORD PTR T$[rbp] + 00098 e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov + 0009d 48 89 85 48 01 + 00 00 mov QWORD PTR NewBlock$[rbp], rax + +; 52 : if (NewBlock) + + 000a4 48 83 bd 48 01 + 00 00 00 cmp QWORD PTR NewBlock$[rbp], 0 + 000ac 74 30 je SHORT $LN2@main + +; 53 : { +; 54 : printf("\n"); + + 000ae 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_01EEMJAFIK@?6@ + 000b5 e8 00 00 00 00 call printf + +; 55 : NcDebugPrint(NewBlock); + + 000ba 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR NewBlock$[rbp] + 000c1 e8 00 00 00 00 call ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint + +; 56 : printf("\n"); + + 000c6 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_01EEMJAFIK@?6@ + 000cd e8 00 00 00 00 call printf + +; 57 : NcPrintBlockCode(NewBlock); + + 000d2 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR NewBlock$[rbp] + 000d9 e8 00 00 00 00 call ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcPrintBlockCode +$LN2@main: + +; 58 : } +; 59 : system("pause"); + + 000de 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ + 000e5 ff 15 00 00 00 + 00 call QWORD PTR __imp_system + 000eb 90 npad 1 + +; 60 : +; 61 : } + + 000ec 48 8d 4d 10 lea rcx, QWORD PTR T$[rbp] + 000f0 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 000f5 33 c0 xor eax, eax + 000f7 8b f8 mov edi, eax + 000f9 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000fd 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:main$rtcFrameData + 00104 e8 00 00 00 00 call _RTC_CheckStackVars + 00109 8b c7 mov eax, edi + 0010b 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00112 48 33 cd xor rcx, rbp + 00115 e8 00 00 00 00 call __security_check_cookie + 0011a 48 8d a5 48 02 + 00 00 lea rsp, QWORD PTR [rbp+584] + 00121 5f pop rdi + 00122 5d pop rbp + 00123 c3 ret 0 +main ENDP +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +T$ = 16 +Data$ = 280 +NewBlock$ = 328 +$T5 = 552 +__$ArrayPad$ = 568 +main$dtor$0 PROC + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 10 lea rcx, QWORD PTR T$[rbp] + 00018 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +main$dtor$0 ENDP +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +T$ = 16 +Data$ = 280 +NewBlock$ = 328 +$T5 = 552 +__$ArrayPad$ = 568 +main$dtor$0 PROC + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 10 lea rcx, QWORD PTR T$[rbp] + 00018 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +main$dtor$0 ENDP +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\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 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] + 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 28 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 957 : int _Result; +; 958 : va_list _ArgList; +; 959 : __crt_va_start(_ArgList, _Format); + + 00056 48 8d 85 58 01 + 00 00 lea rax, QWORD PTR _Format$[rbp+8] + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + +; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); + + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp___acrt_iob_func + 00077 48 89 85 20 01 + 00 00 mov QWORD PTR tv75[rbp], rax + 0007e 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv77[rbp] + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 + 00 00 mov rdx, QWORD PTR _Format$[rbp] + 0008f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR tv75[rbp] + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + +; 961 : __crt_va_end(_ArgList); + + 0009e 48 c7 45 28 00 + 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 + +; 962 : return _Result; + + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + +; 963 : } + + 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 + 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] + 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] + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 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 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 + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); + + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _ArgList$[rbp] + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 + 00 00 mov r9, QWORD PTR _Locale$[rbp] + 0005d 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Format$[rbp] + 00064 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR _Stream$[rbp] + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp___stdio_common_vfprintf + +; 646 : } + + 00074 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 +_vfprintf_l ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h +; COMDAT __local_stdio_printf_options +_TEXT SEGMENT +__local_stdio_printf_options PROC ; COMDAT + +; 90 : { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 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 + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : static unsigned __int64 _OptionsStorage; +; 92 : return &_OptionsStorage; + + 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 : } + + 00031 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +__local_stdio_printf_options ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h +; COMDAT RtlSecureZeroMemory +_TEXT SEGMENT +vptr$ = 8 +ptr$ = 256 +cnt$ = 264 +RtlSecureZeroMemory PROC ; COMDAT + +; 20277: { + +$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:__D5DDFBF3_winnt@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 20278: volatile char *vptr = (volatile char *)ptr; + + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR ptr$[rbp] + 00042 48 89 45 08 mov QWORD PTR vptr$[rbp], rax + +; 20279: +; 20280: #if defined(_M_AMD64) +; 20281: +; 20282: __stosb((PBYTE )((DWORD64)vptr), 0, cnt); + + 00046 48 8b 7d 08 mov rdi, QWORD PTR vptr$[rbp] + 0004a 33 c0 xor eax, eax + 0004c 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR cnt$[rbp] + 00053 f3 aa rep stosb + +; 20283: +; 20284: #else +; 20285: +; 20286: while (cnt) { +; 20287: +; 20288: #if !defined(_M_CEE) && (defined(_M_ARM) || defined(_M_ARM64)) +; 20289: +; 20290: __iso_volatile_store8(vptr, 0); +; 20291: +; 20292: #else +; 20293: +; 20294: *vptr = 0; +; 20295: +; 20296: #endif +; 20297: +; 20298: vptr++; +; 20299: cnt--; +; 20300: } +; 20301: +; 20302: #endif // _M_AMD64 +; 20303: +; 20304: return ptr; + + 00055 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR ptr$[rbp] + +; 20305: } + + 0005c 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 +RtlSecureZeroMemory ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 00041 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..467e956 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/NativeCode.cod @@ -0,0 +1,19742 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__C7F780C9_NativeCode@h DB 01H +__84EFCFFB_NativeCode@cpp DB 01H +__BF2A7ACC_vector DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +__8266A2FD_iomanip DB 01H +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 ??2@YAPEAX_KPEAX@Z ; operator new +PUBLIC __local_stdio_printf_options +PUBLIC _vfprintf_l +PUBLIC printf +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 ??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 ??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 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont +PUBLIC ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me +PUBLIC ??$_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 +PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr +PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs +PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr +PUBLIC ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex +PUBLIC ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals +PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals +PUBLIC ??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@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +PUBLIC ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK +PUBLIC ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ; _NATIVE_CODE_LINK::`scalar deleting destructor' +PUBLIC ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator +PUBLIC ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate +PUBLIC ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate +PUBLIC ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size +PUBLIC ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > +PUBLIC ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > +PUBLIC ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back +PUBLIC ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear +PUBLIC ?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 +PUBLIC ?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 +PUBLIC ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin +PUBLIC ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end +PUBLIC ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size +PUBLIC ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size +PUBLIC ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity +PUBLIC ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove +PUBLIC ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 +PUBLIC ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept +PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy +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 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy +PUBLIC ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +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 +PUBLIC ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > +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 ?_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 +PUBLIC ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK +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 ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock +PUBLIC ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock +PUBLIC ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkAfter +PUBLIC ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore +PUBLIC ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ; NcUnlink +PUBLIC ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSize +PUBLIC ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId +PUBLIC ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId +PUBLIC ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks +PUBLIC ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter +PUBLIC ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockBefore +PUBLIC ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels +PUBLIC ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp +PUBLIC ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink +PUBLIC ?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ; NcDeepCopyPartialBlock +PUBLIC ?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z ; NcDeepCopyBlock +PUBLIC ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble +PUBLIC ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcAssemble +PUBLIC ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock +PUBLIC ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint +PUBLIC ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcPrintBlockCode +PUBLIC ??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 > > +PUBLIC ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== +PUBLIC ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= +PUBLIC ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat +PUBLIC ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range +PUBLIC ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to +PUBLIC ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > +PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > +PUBLIC ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped +PUBLIC ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_iterator > >::~_Vector_iterator > > +PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > +PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@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 ??$?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 ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > +PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back +PUBLIC ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward +PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity +PUBLIC ??$_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 ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base +PUBLIC ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base +PUBLIC ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry +PUBLIC ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry +PUBLIC ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool +PUBLIC ??$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 ??$_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 ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward +PUBLIC ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > +PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> +PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> +PUBLIC ??$_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 ??$_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 ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 +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 ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy +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@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@_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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ ; `string' +PUBLIC ??_C@_0CI@IAPEEFOG@XedDecode?5failed?5in?5NcDeepCopyL@ ; `string' +PUBLIC ??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ ; `string' +PUBLIC ??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ ; `string' +PUBLIC ??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ ; `string' +PUBLIC ??_C@_03OFAPEBGM@?$CFs?6@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ ; `string' +PUBLIC ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_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' +PUBLIC ??_C@_0BA@FOIKENOD@vector?5too?5long@ ; `string' +PUBLIC ??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ ; `string' +PUBLIC ??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ ; `string' +PUBLIC ??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ ; `string' +PUBLIC ??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ ; `string' +PUBLIC ??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ ; `string' +PUBLIC ??_C@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ ; `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 ??_U@YAPEAX_K@Z:PROC ; operator new[] +EXTRN __imp__invalid_parameter:PROC +EXTRN memcpy:PROC +EXTRN memmove:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp_GetStdHandle:PROC +EXTRN __imp_SetConsoleTextAttribute:PROC +EXTRN __imp_rand:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN __imp__CrtDbgReport:PROC +EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC +EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC +EXTRN __imp___acrt_iob_func:PROC +EXTRN __imp___stdio_common_vfprintf:PROC +EXTRN ?uncaught_exception@std@@YA_NXZ:PROC ; std::uncaught_exception +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 +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?good@ios_base@std@@QEBA_NXZ:PROC +EXTRN __imp_?flags@ios_base@std@@QEBAHXZ:PROC +EXTRN __imp_?setf@ios_base@std@@QEAAHHH@Z:PROC +EXTRN __imp_?width@ios_base@std@@QEBA_JXZ:PROC +EXTRN __imp_?width@ios_base@std@@QEAA_J_J@Z:PROC +EXTRN __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z:PROC +EXTRN __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z:PROC +EXTRN __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ:PROC +EXTRN __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ:PROC +EXTRN __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ:PROC +EXTRN __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z:PROC +EXTRN __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ:PROC +EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z:PROC +EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z:PROC +EXTRN __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ:PROC +EXTRN ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z:PROC ; std::setw +EXTRN xed_category_enum_t2str:PROC +EXTRN xed_iclass_enum_t2str:PROC +EXTRN xed_iform_map:PROC +EXTRN xed_iform_to_category:PROC +EXTRN xed_inst_operand:PROC +EXTRN xed_error_enum_t2str:PROC +EXTRN xed_decode:PROC +EXTRN xed_operand_values_set_mode:PROC +EXTRN xed_decoded_inst_zero:PROC +EXTRN xed_decoded_inst_get_branch_displacement:PROC +EXTRN _CxxThrowException:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN ??_7type_info@@6B@:BYTE ; type_info::`vftable' +EXTRN __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A:BYTE +EXTRN __security_cookie:QWORD +; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA +_BSS SEGMENT +?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage +_BSS ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??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$__local_stdio_printf_options DD imagerel $LN3 + 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+126 + DD imagerel $unwind$_vfprintf_l +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$printf DD imagerel $LN3 + DD imagerel $LN3+214 + DD imagerel $unwind$printf +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?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$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 + DD imagerel $LN3+139 + DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+146 + DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$??1exception@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 + DD imagerel $LN5+119 + DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 + DD imagerel $LN3+118 + DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 + DD imagerel $LN3+83 + DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 + DD imagerel $LN21+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+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+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 $LN7 + DD imagerel $LN7+233 + DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 + 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+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+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+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+282 + DD imagerel $unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD imagerel $LN5 + DD imagerel $LN5+117 + DD imagerel $unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN15 + DD imagerel $LN15+299 + DD imagerel $unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD imagerel $LN3 + DD imagerel $LN3+143 + DD imagerel $unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 + DD imagerel $LN5+118 + DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 + DD imagerel $LN3+57 + DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 + DD imagerel $LN3+95 + DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_iform_to_iclass DD imagerel xed_iform_to_iclass + 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+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+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+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+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+74 + DD imagerel $unwind$xed_inst_noperands +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_decoded_inst_inst DD imagerel xed_decoded_inst_inst + DD imagerel xed_decoded_inst_inst+78 + DD imagerel $unwind$xed_decoded_inst_inst +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_decoded_inst_get_category DD imagerel xed_decoded_inst_get_category + DD imagerel xed_decoded_inst_get_category+89 + DD imagerel $unwind$xed_decoded_inst_get_category +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_decoded_inst_get_iclass DD imagerel xed_decoded_inst_get_iclass + DD imagerel xed_decoded_inst_get_iclass+89 + DD imagerel $unwind$xed_decoded_inst_get_iclass +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_decoded_inst_noperands DD imagerel xed_decoded_inst_noperands + DD imagerel xed_decoded_inst_noperands+90 + DD imagerel $unwind$xed_decoded_inst_noperands +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_decoded_inst_set_mode DD imagerel xed_decoded_inst_set_mode + DD imagerel xed_decoded_inst_set_mode+155 + DD imagerel $unwind$xed_decoded_inst_set_mode +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_decoded_inst_get_length DD imagerel xed_decoded_inst_get_length + DD imagerel xed_decoded_inst_get_length+78 + DD imagerel $unwind$xed_decoded_inst_get_length +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+221 + DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN4 + DD imagerel $LN4+140 + DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z DD imagerel $LN5 + DD imagerel $LN5+211 + DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z@4HA DD imagerel ?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z@4HA + DD imagerel ?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z@4HA+39 + DD imagerel $unwind$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+114 + DD imagerel $unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+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+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+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+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+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+160 + DD imagerel $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+202 + DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD imagerel $LN3 + 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+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+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+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+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+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+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+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+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+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+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+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+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+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+322 + DD imagerel $unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+280 + DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN9 + DD imagerel $LN9+267 + DD imagerel $unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+128 + DD imagerel $unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+138 + DD imagerel $unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 + DD imagerel $LN7+241 + DD imagerel $unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 + DD imagerel $LN7+239 + DD imagerel $unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 + DD imagerel $LN5+168 + DD imagerel $unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 + DD imagerel $LN5+171 + DD imagerel $unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN6 + DD imagerel $LN6+150 + DD imagerel $unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 + DD imagerel $LN7+143 + DD imagerel $unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD imagerel $LN8 + DD imagerel $LN8+165 + 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+484 + 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+715 + 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+409 + 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+392 + DD imagerel $unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN18 + DD imagerel $LN18+687 + DD imagerel $unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD imagerel $LN23 + 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+453 + DD imagerel $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD imagerel ?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA + DD imagerel ?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD imagerel ?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA + DD imagerel ?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA+44 + DD imagerel $unwind$?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN18 + DD imagerel $LN18+580 + DD imagerel $unwind$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA DD imagerel ?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA + DD imagerel ?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z DD imagerel $LN3 + DD imagerel $LN3+90 + DD imagerel $unwind$?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD imagerel $LN13 + DD imagerel $LN13+564 + DD imagerel $unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA DD imagerel ?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA + DD imagerel ?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN3 + DD imagerel $LN3+66 + DD imagerel $unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 + DD imagerel $LN10+206 + 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+326 + 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+337 + DD imagerel $unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 + DD imagerel $LN3+130 + DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 + DD imagerel $LN5+141 + DD imagerel $unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 + DD imagerel $LN5+124 + DD imagerel $unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD imagerel $LN12 + DD imagerel $LN12+231 + DD imagerel $unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD imagerel $LN21 + DD imagerel $LN21+374 + DD imagerel $unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD imagerel $LN3 + DD imagerel $LN3+92 + DD imagerel $unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 + DD imagerel $LN3+105 + DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 + DD imagerel $LN3+83 + DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 + DD imagerel $LN3+95 + DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD imagerel $LN7 + DD imagerel $LN7+264 + DD imagerel $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 +pdata SEGMENT +$pdata$?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 DD imagerel ?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 + DD imagerel ?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+39 + DD imagerel $unwind$?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 +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?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 imagerel ?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 imagerel ?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+39 + DD imagerel $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 +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 + DD imagerel $LN23+1095 + DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +pdata 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 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 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+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@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+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@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+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+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+616 + DD imagerel $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA + DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA+94 + DD imagerel $unwind$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN3 + DD imagerel $LN3+102 + DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD imagerel $LN3 + DD imagerel $LN3+156 + DD imagerel $unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 + DD imagerel $LN4+171 + DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+143 + DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 + DD imagerel $LN7+284 + DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD imagerel ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA + DD imagerel ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA+39 + DD imagerel $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 + DD imagerel $LN6+139 + DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +pdata 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$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_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$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 + DD imagerel $LN4+121 + DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD imagerel $LN3 + DD imagerel $LN3+88 + DD imagerel $unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD imagerel $LN3 + 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+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$??$_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+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 $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$??$_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$??$_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$?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$??$_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+156 + DD imagerel $unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$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 rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_R1A@?0A@EA@bad_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@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ +CONST SEGMENT +??_C@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ DB '"' + DB 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H + DB ' ', 00H, 'i', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't' + DB 00H, 'o', 00H, 'r', 00H, ' ', 00H, 'r', 00H, 'a', 00H, 'n', 00H + DB 'g', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'r', 00H, 'a', 00H, 'n' + DB 00H, 's', 00H, 'p', 00H, 'o', 00H, 's', 00H, 'e', 00H, 'd', 00H + DB '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ +CONST SEGMENT +??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ DB 'vector iterato' + DB 'r range transposed', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ +CONST SEGMENT +??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ DB '"' + DB 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H + DB ' ', 00H, 'i', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't' + DB 00H, 'o', 00H, 'r', 00H, 's', 00H, ' ', 00H, 'i', 00H, 'n', 00H + DB ' ', 00H, 'r', 00H, 'a', 00H, 'n', 00H, 'g', 00H, 'e', 00H, ' ' + DB 00H, 'a', 00H, 'r', 00H, 'e', 00H, ' ', 00H, 'f', 00H, 'r', 00H + DB 'o', 00H, 'm', 00H, ' ', 00H, 'd', 00H, 'i', 00H, 'f', 00H, 'f' + DB 00H, 'e', 00H, 'r', 00H, 'e', 00H, 'n', 00H, 't', 00H, ' ', 00H + DB 'c', 00H, 'o', 00H, 'n', 00H, 't', 00H, 'a', 00H, 'i', 00H, 'n' + DB 00H, 'e', 00H, 'r', 00H, 's', 00H, '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ +CONST SEGMENT +??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ DB 'vector itera' + DB 'tors in range are from different containers', 00H ; `string' +CONST 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@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ +CONST SEGMENT +??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'V', 00H + DB 'e', 00H, 'r', 00H, 'i', 00H, 'f', 00H, 'y', 00H, '_', 00H, 'r' + DB 00H, 'a', 00H, 'n', 00H, 'g', 00H, 'e', 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 ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ +CONST SEGMENT +??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ DB '"' + DB 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H + DB ' ', 00H, 'i', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't' + DB 00H, 'o', 00H, 'r', 00H, 's', 00H, ' ', 00H, 'i', 00H, 'n', 00H + DB 'c', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'a', 00H, 't', 00H, 'i' + DB 00H, 'b', 00H, 'l', 00H, 'e', 00H, '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ +CONST SEGMENT +??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'V', 00H + DB 'e', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, '_', 00H, 'c' + DB 00H, 'o', 00H, 'n', 00H, 's', 00H, 't', 00H, '_', 00H, 'i', 00H + DB 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r' + DB 00H, '<', 00H, 'c', 00H, 'l', 00H, 'a', 00H, 's', 00H, 's', 00H + DB ' ', 00H, 's', 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_' + DB 00H, 'V', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H + DB '_', 00H, 'v', 00H, 'a', 00H, 'l', 00H, '<', 00H, 's', 00H, 't' + DB 00H, 'r', 00H, 'u', 00H, 'c', 00H, 't', 00H, ' ', 00H, 's', 00H + DB 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'S', 00H, 'i' + DB 00H, 'm', 00H, 'p', 00H, 'l', 00H, 'e', 00H, '_', 00H, 't', 00H + DB 'y', 00H, 'p', 00H, 'e', 00H, 's', 00H, '<', 00H, 'u', 00H, 'n' + DB 00H, 's', 00H, 'i', 00H, 'g', 00H, 'n', 00H, 'e', 00H, 'd', 00H + DB ' ', 00H, 'l', 00H, 'o', 00H, 'n', 00H, 'g', 00H, '>', 00H, ' ' + DB 00H, '>', 00H, ' ', 00H, '>', 00H, ':', 00H, ':', 00H, '_', 00H + DB 'C', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'a', 00H, 't', 00H, 00H + DB 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +CONST SEGMENT +??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' + DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H + DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' + DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H + DB '6', 00H, ')', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H, 'r' + DB 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' ', 00H + DB 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H, ' ' + DB 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o', 00H + DB '\', 00H, '2', 00H, '0', 00H, '1', 00H, '9', 00H, '\', 00H, 'C' + DB 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'u', 00H, 'n', 00H, 'i', 00H + DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' + DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H + DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'v', 00H, 'e', 00H + DB 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\vector', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ +CONST SEGMENT +??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ DB 'vector iterators ' + DB 'incompatible', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_03OFAPEBGM@?$CFs?6@ +CONST SEGMENT +??_C@_03OFAPEBGM@?$CFs?6@ DB '%s', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ +CONST SEGMENT +??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ DB '%s: %u', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ +CONST SEGMENT +??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ DB 'Label: %u', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ +CONST SEGMENT +??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ DB 'XedDecode' + DB ' failed with error %s', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0CI@IAPEEFOG@XedDecode?5failed?5in?5NcDeepCopyL@ +CONST SEGMENT +??_C@_0CI@IAPEEFOG@XedDecode?5failed?5in?5NcDeepCopyL@ DB 'XedDecode fail' + DB 'ed in NcDeepCopyLink: %s', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ +CONST SEGMENT +??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ DB 'Failed to ' + DB 'validate jump. Type: %s, Displacement: %d', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ +CONST SEGMENT +??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ DB '"' + DB 00H, 'I', 00H, 'T', 00H, 'E', 00H, 'R', 00H, 'A', 00H, 'T', 00H + DB 'O', 00H, 'R', 00H, ' ', 00H, 'L', 00H, 'I', 00H, 'S', 00H, 'T' + DB 00H, ' ', 00H, 'C', 00H, 'O', 00H, 'R', 00H, 'R', 00H, 'U', 00H + DB 'P', 00H, 'T', 00H, 'E', 00H, 'D', 00H, '!', 00H, '"', 00H, 00H + DB 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ +CONST SEGMENT +??_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, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ +CONST SEGMENT +??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ DB 'ITERATOR LIST CORRU' + DB 'PTED!', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ +CONST SEGMENT +??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ DB '"' + DB 00H, 'i', 00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H + DB 'd', 00H, ' ', 00H, 'a', 00H, 'r', 00H, 'g', 00H, 'u', 00H, 'm' + DB 00H, 'e', 00H, 'n', 00H, 't', 00H, '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ +CONST SEGMENT +??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H + DB 'd', 00H, 'j', 00H, 'u', 00H, 's', 00H, 't', 00H, '_', 00H, 'm' + DB 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H, 'l', 00H, 'l', 00H + DB 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o' + DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H + DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +CONST SEGMENT +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' + DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H + DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' + DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H + DB '6', 00H, ')', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H, 'r' + DB 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' ', 00H + DB 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H, ' ' + DB 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o', 00H + DB '\', 00H, '2', 00H, '0', 00H, '1', 00H, '9', 00H, '\', 00H, 'C' + DB 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'u', 00H, 'n', 00H, 'i', 00H + DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' + DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H + DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H + DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_02DKCKIIND@?$CFs@ +CONST SEGMENT +??_C@_02DKCKIIND@?$CFs@ DB '%s', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BB@FCMFBGOM@invalid?5argument@ +CONST SEGMENT +??_C@_0BB@FCMFBGOM@invalid?5argument@ DB 'invalid argument', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +_DATA ENDS +; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVexception@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0exception@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVexception@std@@@8 +data$r SEGMENT +??_R0?AVexception@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::exception `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVexception@std@@', 00H +data$r ENDS +; COMDAT _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 DD 010H + DD imagerel ??_R0?AVbad_alloc@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_alloc@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_alloc@std@@@8 +data$r SEGMENT +??_R0?AVbad_alloc@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_alloc `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_alloc@std@@', 00H +data$r ENDS +; COMDAT _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVbad_array_new_length@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_array_new_length@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_array_new_length@std@@@8 +data$r SEGMENT +??_R0?AVbad_array_new_length@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_array_new_length `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_array_new_length@std@@', 00H +data$r ENDS +; COMDAT _CTA3?AVbad_array_new_length@std@@ +xdata$x SEGMENT +_CTA3?AVbad_array_new_length@std@@ DD 03H + DD imagerel _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x ENDS +; COMDAT _TI3?AVbad_array_new_length@std@@ +xdata$x SEGMENT +_TI3?AVbad_array_new_length@std@@ DD 00H + DD imagerel ??1bad_array_new_length@std@@UEAA@XZ + DD 00H + DD imagerel _CTA3?AVbad_array_new_length@std@@ +xdata$x ENDS +; COMDAT ??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ +CONST SEGMENT +??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ DB 'bad array new length', 00H ; `string' +CONST ENDS +; COMDAT ??_7bad_array_new_length@std@@6B@ +CONST SEGMENT +??_7bad_array_new_length@std@@6B@ DQ FLAT:??_R4bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`vftable' + DQ FLAT:??_Ebad_array_new_length@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_7bad_alloc@std@@6B@ +CONST SEGMENT +??_7bad_alloc@std@@6B@ DQ FLAT:??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' + DQ FLAT:??_Ebad_alloc@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_C@_0BC@EOODALEL@Unknown?5exception@ +CONST SEGMENT +??_C@_0BC@EOODALEL@Unknown?5exception@ DB 'Unknown exception', 00H ; `string' +CONST ENDS +; COMDAT ??_7exception@std@@6B@ +CONST SEGMENT +??_7exception@std@@6B@ DQ FLAT:??_R4exception@std@@6B@ ; std::exception::`vftable' + DQ FLAT:??_Eexception@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_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 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025053401H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_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 +$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 +$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 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@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@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 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +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 +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H + DD 010e2313H + DD 070070025H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_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 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 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 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H + DB 00H + DB 00H + DB 09eH + DB 02H + DB 0f1H, 02H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 028H + DD imagerel $stateUnwindMap$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z + DD imagerel $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 025052f01H + DD 01132318H + DD 0700c0025H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 060H + DD imagerel $ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e19H + DD 01122317H + DD 0700b001dH + DD 0500aH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H + DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 +$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@AEBK@Z DD 025052f01H + DD 01132318H + DD 0700c002bH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 060H + DD imagerel $ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD 025052f01H + DD 01132318H + DD 0700c002bH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 060H + DD imagerel $ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025052a19H + 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 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 + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH + DB 00H + DB 00H + DB 0c6H + DB 02H + DB 011H, 02H + DB 04H + DB 0adH, 0aH + DB 02H + DB 0ecH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$handlerMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 02H + DB 01H + DB 080H + DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$tryMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 02H + DB 02H + DB 02H + DB 04H + DD imagerel $handlerMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 06H + DB 0eH + DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DB 028H + DB 030H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 038H + DD imagerel $stateUnwindMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z + DD imagerel $tryMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z + DD imagerel $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H + DD 01122317H + DD 0700b004bH + DD 0500aH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z + DD 0243H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcName$0 DB 05fH ; std::operator<< > + DB 04fH + DB 06bH + DB 00H + ORG $+12 +??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcVarDesc DD 048H ; std::operator<< > + DD 010H + DQ FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcName$0 + ORG $+48 +??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData DD 01H ; std::operator<< > + DD 00H + DQ FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcVarDesc +CONST 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 + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?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 DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DB 08H + DB 00H + DB 00H + DB 086H + DB 04H + DB 'm', 02H + DB 02H + DB 01aH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??$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 04H + DB 0eH + DD imagerel ?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 + DB 02eH + DD imagerel ?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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$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 028H + DD imagerel $stateUnwindMap$??$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 $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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025053911H + DD 011d2322H + DD 070160027H + DD 05015H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035052f01H + DD 01133318H + DD 0700c0021H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035052f01H + DD 01133318H + DD 0700c0021H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 060H + DD imagerel $ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H + DD 010e2313H + DD 070070035H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 025052a01H + DD 010e2313H + DD 070070029H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 06H + DB 00H + DB 00H + DB 0e4H + DB 02H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 028H + DD imagerel $stateUnwindMap$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z + DD imagerel $ip2state$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 xdata +xdata SEGMENT +$unwind$?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DB 06H + DB 00H + DB 00H + DB 'y', 02H + DB 02H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DB 028H + DD imagerel $stateUnwindMap$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z + DD imagerel $ip2state$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DD 025054019H + DD 01132318H + DD 0700c0047H + DD 0500bH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z + DD 0222H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcName$0 DB 04cH ; NcDeepCopyPartialBlock + DB 00H + ORG $+14 +?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcVarDesc DD 0a4H ; NcDeepCopyPartialBlock + DD 04H + DQ FLAT:?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcName$0 + ORG $+48 +?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcFrameData DD 01H ; NcDeepCopyPartialBlock + DD 00H + DQ FLAT:?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 0aH + DB 00H + DB 00H + DB 0b0H + DB 02H + DB 08aH + DB 00H + DB 'D' + DB 04H + DB 0b0H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 04H + DB 0eH + DD imagerel ?dtor$0@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA + DB 036H + DD imagerel ?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 028H + DD imagerel $stateUnwindMap$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z + DD imagerel $ip2state$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 025052a11H + DD 010e2313H + DD 070070039H + 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 025052e01H + DD 01122317H + DD 0700b0021H + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H + DB 00H + DB 00H + DB 'q', 07H + DB 02H + DB 084H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H + DD imagerel $stateUnwindMap$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z + DD imagerel $ip2state$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H + DD 010e2313H + DD 07007004bH + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z + DD 0242H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 043H ; NcCreateLabels + DB 075H + DB 072H + DB 072H + DB 065H + DB 06eH + DB 074H + DB 04cH + DB 061H + DB 062H + DB 065H + DB 06cH + DB 049H + DB 064H + DB 00H + ORG $+1 +?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 024H ; NcCreateLabels + DD 04H + DQ FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 + ORG $+48 +?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 01H ; NcCreateLabels + DD 00H + DQ FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$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 025053401H + DD 0118231dH + DD 070110021H + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 0aH + DB 00H + DB 00H + DB 'a', 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 025054019H + DD 01132318H + DD 0700c005bH + DD 0500bH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z + DD 02caH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z$rtcName$0 DB 04cH ; NcFixLabelsForBlocks + DB 069H + DB 064H + DB 00H + ORG $+12 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z$rtcVarDesc DD 044H ; NcFixLabelsForBlocks + DD 04H + DQ FLAT:?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z$rtcName$0 + ORG $+48 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z$rtcFrameData DD 01H ; NcFixLabelsForBlocks + DD 00H + DQ FLAT:?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z$rtcVarDesc +CONST 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 xdata +xdata SEGMENT +$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H + DD 010e2313H + DD 070070053H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z + DD 0282H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 052H ; NcGenUnusedLabelId + DB 065H + DB 074H + DB 075H + DB 072H + DB 06eH + DB 04cH + DB 061H + DB 062H + DB 065H + DB 06cH + DB 049H + DB 064H + DB 00H + ORG $+2 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 024H ; NcGenUnusedLabelId + DD 04H + DQ FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 + ORG $+48 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 01H ; NcGenUnusedLabelId + DD 00H + DQ FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025053301H + DD 0117231cH + DD 070100021H + DD 0500fH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H + DD 010e2313H + DD 070070025H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 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 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata 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 +$unwind$??0_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@@QEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +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 +$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054519H + DD 0118231dH + DD 070110029H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0138H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_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@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range + DD 04H + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 + ORG $+48 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range + DD 00H + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025051e01H + DD 010a230fH + DD 07003001dH + DD 05002H +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$?_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 025052f01H + DD 01132318H + DD 0700c0025H + DD 0500bH +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 +$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 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H + DD imagerel $ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H + DD imagerel $ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H + DD imagerel $ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H + DD 01132318H + DD 0700c0023H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H + DD imagerel $ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H + 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 +$ip2state$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DB 060H + DD imagerel $ip2state$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +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 +$ip2state$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 060H + DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata 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$??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 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z DB 06H + DB 00H + DB 00H + DB 0a2H + DB 02H + DB 0e2H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z DB 028H + DD imagerel $stateUnwindMap$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z + DD imagerel $ip2state$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z DD 025053811H + DD 011c2321H + DD 070150021H + DD 05014H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_decoded_inst_get_length DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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$xed_decoded_inst_noperands DD 025052a01H + DD 010e2313H + DD 070070021H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_decoded_inst_get_iclass DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_decoded_inst_get_category DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_decoded_inst_inst DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_inst_noperands DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_inst_category DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_inst_iclass DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_inst_iform_enum DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$xed_operand_type DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H + 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 ??$_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\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 ??$_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\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@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 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 289 : return _Ptr; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 290 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ENDP ; std::_Unfancy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\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] + +; 127 : } + + 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 +??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.27.29110\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 + +; 78 : __CLR_OR_THIS_CALL ~_Sentry_base() noexcept { // destroy after unlocking + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 79 : const auto _Rdbuf = _Myostr.rdbuf(); + + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 85 d8 00 + 00 00 mov QWORD PTR tv72[rbp], rax + 00047 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv72[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00055 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR tv72[rbp] + 0005c 48 03 c8 add rcx, rax + 0005f 48 8b c1 mov rax, rcx + 00062 48 8b c8 mov rcx, rax + 00065 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + +; 80 : if (_Rdbuf) { + + 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00074 74 0f je SHORT $LN2@Sentry_bas + +; 81 : _Rdbuf->_Unlock(); + + 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00081 ff 50 10 call QWORD PTR [rax+16] + 00084 90 npad 1 +$LN2@Sentry_bas: + +; 82 : } +; 83 : } + + 00085 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 +??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +_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 + +; 71 : __CLR_OR_THIS_CALL _Sentry_base(basic_ostream& _Ostr) : _Myostr(_Ostr) { // lock the stream buffer, if there + +$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 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00049 48 89 08 mov QWORD PTR [rax], rcx + +; 72 : const auto _Rdbuf = _Myostr.rdbuf(); + + 0004c 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 89 85 d8 00 + 00 00 mov QWORD PTR tv73[rbp], rax + 0005d 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv73[rbp] + 00064 48 8b 00 mov rax, QWORD PTR [rax] + 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0006b 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR tv73[rbp] + 00072 48 03 c8 add rcx, rax + 00075 48 8b c1 mov rax, rcx + 00078 48 8b c8 mov rcx, rax + 0007b ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + +; 73 : if (_Rdbuf) { + + 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0008a 74 0e je SHORT $LN2@Sentry_bas + +; 74 : _Rdbuf->_Lock(); + + 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00090 48 8b 00 mov rax, QWORD PTR [rax] + 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00097 ff 50 08 call QWORD PTR [rax+8] +$LN2@Sentry_bas: + +; 75 : } +; 76 : } + + 0009a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a1 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000a8 5f pop rdi + 000a9 5d pop rbp + 000aa c3 ret 0 +??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z +_TEXT SEGMENT +_New_proxy$ = 8 +$T1 = 232 +this$ = 288 +_Al$ = 296 +??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT + +; 1101 : void _Alloc_proxy(_Alloc&& _Al) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1102 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); + + 0003b ba 01 00 00 00 mov edx, 1 + 00040 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00047 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate + 0004c 48 8b c8 mov rcx, rax + 0004f e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy + 00054 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax + +; 1103 : _Construct_in_place(*_New_proxy, this); + + 00058 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 89 85 e8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00066 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00071 e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place + +; 1104 : _Myproxy = _New_proxy; + + 00076 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00081 48 89 08 mov QWORD PTR [rax], rcx + +; 1105 : _New_proxy->_Mycont = this; + + 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00088 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008f 48 89 08 mov QWORD PTR [rax], rcx + +; 1106 : } + + 00092 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00099 5f pop rdi + 0009a 5d pop rbp + 0009b c3 ret 0 +??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z +_TEXT SEGMENT +this$ = 224 +__formal$ = 232 +??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><>, COMDAT + +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} + +$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:__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 + +; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name +; 1028 : using _Ty = typename _Alloc::value_type; +; 1029 : _Ptr->~_Ty(); +; 1030 : _Deallocate_plain(_Al, _Ptr); + + 0003b 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00042 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00049 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain > + 0004e 90 npad 1 + +; 1031 : } + + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +_TEXT SEGMENT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT + +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); + + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + +; 600 : _Val = static_cast<_Other&&>(_New_val); + + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _New_val$[rbp] + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +_TEXT SEGMENT +this$ = 224 +__formal$ = 232 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT + +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator::allocator +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT + +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00047 48 8b c8 mov rcx, rax + 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + +; 808 : } + + 0004f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 +?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@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 + +; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { + +$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 + +; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 727 : _Alty& _Al = _Getal(); + + 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 + +; 728 : auto& _My_data = _Mypair._Myval2; + + 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 + +; 729 : pointer& _Myfirst = _My_data._Myfirst; + + 0005b 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 0005f 48 83 c0 08 add rax, 8 + 00063 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax + +; 730 : pointer& _Mylast = _My_data._Mylast; + + 00067 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 0006b 48 83 c0 10 add rax, 16 + 0006f 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax + +; 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); + + 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 + +; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); + + 00092 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00096 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0009d 48 8b 00 mov rax, QWORD PTR [rax] + 000a0 48 2b c1 sub rax, rcx + 000a3 48 c1 f8 02 sar rax, 2 + 000a7 48 89 85 a8 00 + 00 00 mov QWORD PTR _Oldsize$[rbp], rax + +; 736 : +; 737 : if (_Oldsize == max_size()) { + + 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 + +; 738 : _Xlength(); + + 000c3 e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +$LN2@Emplace_re: + +; 739 : } +; 740 : +; 741 : const size_type _Newsize = _Oldsize + 1; + + 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 + +; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); + + 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 + +; 743 : +; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); + + 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 + +; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; + + 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 + +; 746 : pointer _Constructed_first = _Constructed_last; + + 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 + +; 747 : +; 748 : _TRY_BEGIN +; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); + + 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 + +; 750 : _Constructed_first = _Newvec + _Whereoff; + + 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 + +; 751 : +; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee + + 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0019a 48 8b 00 mov rax, QWORD PTR [rax] + 0019d 48 39 85 58 02 + 00 00 cmp QWORD PTR _Whereptr$[rbp], rax + 001a4 75 23 jne SHORT $LN4@Emplace_re + +; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); + + 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 + +; 754 : } else { // provide basic guarantee + + 001c7 eb 60 jmp SHORT $LN5@Emplace_re +$LN4@Emplace_re: + +; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); + + 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 + +; 756 : _Constructed_first = _Newvec; + + 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 + +; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); + + 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 +_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] +__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 +_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] +__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.27.29110\include\xmemory +; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z +_TEXT SEGMENT +$T1 = 200 +__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 + +; 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 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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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@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 + +; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 684 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 685 : pointer& _Mylast = _My_data._Mylast; + + 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004a 48 83 c0 10 add rax, 16 + 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + +; 686 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity +; 687 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); + + 00052 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00059 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0005e 48 89 85 18 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 00065 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00069 48 8b 08 mov rcx, QWORD PTR [rax] + 0006c e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00071 48 89 85 20 01 + 00 00 mov QWORD PTR tv79[rbp], rax + 00078 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007f e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00084 48 89 85 28 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0008b 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv81[rbp] + 00092 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00099 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 000a0 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + +; 688 : _Orphan_range(_Mylast, _Mylast); + + 000a5 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000a9 4c 8b 00 mov r8, QWORD PTR [rax] + 000ac 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000b0 48 8b 10 mov rdx, QWORD PTR [rax] + 000b3 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ba e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range + +; 689 : _Ty& _Result = *_Mylast; + + 000bf 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000c3 48 8b 00 mov rax, QWORD PTR [rax] + 000c6 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + +; 690 : ++_Mylast; + + 000ca 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000ce 48 8b 00 mov rax, QWORD PTR [rax] + 000d1 48 83 c0 04 add rax, 4 + 000d5 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] + 000d9 48 89 01 mov QWORD PTR [rcx], rax + +; 691 : #if _HAS_CXX17 +; 692 : return _Result; + + 000dc 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + +; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 694 : (void) _Result; +; 695 : #endif // _HAS_CXX17 +; 696 : } + + 000e0 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000e7 5f pop rdi + 000e8 5d pop rbp + 000e9 c3 ret 0 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z +_TEXT SEGMENT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv83 = 280 +tv81 = 288 +this$ = 336 +<_Val_0>$ = 344 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z PROC ; std::vector >::emplace_back, COMDAT + +; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { + +$LN4: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 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 + +; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 702 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 703 : pointer& _Mylast = _My_data._Mylast; + + 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004a 48 83 c0 10 add rax, 16 + 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + +; 704 : if (_Mylast != _My_data._Myend) { + + 00052 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00056 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005a 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] + 0005e 48 39 08 cmp QWORD PTR [rax], rcx + 00061 74 1d je SHORT $LN2@emplace_ba + +; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); + + 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: + +; 706 : } +; 707 : +; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); + + 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 + +; 709 : #if _HAS_CXX17 +; 710 : return _Result; + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] +$LN1@emplace_ba: + +; 711 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 712 : (void) _Result; +; 713 : #endif // _HAS_CXX17 +; 714 : } + + 000c3 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000ca 5f pop rdi + 000cb 5d pop rbp + 000cc c3 ret 0 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ENDP ; std::vector >::emplace_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; COMDAT ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z PROC ; std::addressof > >, COMDAT + +; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 275 : return __builtin_addressof(_Val); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Val$[rbp] + +; 276 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ENDP ; std::addressof > > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT + +; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); +; 51 : +; 52 : _Ostr.fill(_Manip._Fill); + + 0003b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00049 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00050 48 03 c8 add rcx, rax + 00053 48 8b c1 mov rax, rcx + 00056 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 0005d 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 00064 0f b6 10 movzx edx, BYTE PTR [rax] + 00067 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv79[rbp] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z + +; 53 : return _Ostr; + + 00074 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 54 : } + + 0007b 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z +_TEXT SEGMENT +this$ = 224 +_Ch$ = 232 +??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT + +; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00041 0f b6 8d e8 00 + 00 00 movzx ecx, BYTE PTR _Ch$[rbp] + 00048 88 08 mov BYTE PTR [rax], cl + 0004a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00051 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 +??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +_TEXT SEGMENT +__$ReturnUdt$ = 224 +_Ch$ = 232 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT + +; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 35 : return _Fillobj<_Elem>(_Ch); + + 0003a 0f b6 95 e8 00 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 00041 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj + 0004d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + +; 36 : } + + 00054 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT + +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); + + 0003b 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 0004c 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005a 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00061 48 03 c8 add rcx, rax + 00064 48 8b c1 mov rax, rcx + 00067 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Manip$[rbp] + 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] + 00072 48 8b c8 mov rcx, rax + 00075 ff 95 c0 00 00 + 00 call QWORD PTR tv79[rbp] + +; 425 : return _Ostr; + + 0007b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 426 : } + + 00082 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b c3 ret 0 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +_TEXT SEGMENT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT + +; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream + +$LN23: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec 58 02 + 00 00 sub rsp, 600 ; 00000258H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 78 + 02 00 00 mov rcx, QWORD PTR [rsp+632] + 0002e 48 8b 05 00 00 + 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 + +; 781 : using _Elem = char; +; 782 : using _Myos = basic_ostream<_Elem, _Traits>; +; 783 : +; 784 : ios_base::iostate _State = ios_base::goodbit; + + 0004b c7 45 04 00 00 + 00 00 mov DWORD PTR _State$[rbp], 0 + +; 785 : const typename _Myos::sentry _Ok(_Ostr); + + 00052 48 8b 95 50 02 + 00 00 mov rdx, QWORD PTR _Ostr$[rbp] + 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry + 00062 90 npad 1 + +; 786 : +; 787 : if (_Ok) { // state okay, insert + + 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool + 0006c 0f b6 c0 movzx eax, al + 0006f 85 c0 test eax, eax + 00071 0f 84 1d 03 00 + 00 je $LN8@operator + +; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; + + 00077 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0007e 48 8b 00 mov rax, QWORD PTR [rax] + 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00085 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0008c 48 03 c8 add rcx, rax + 0008f 48 8b c1 mov rax, rcx + 00092 48 8b c8 mov rcx, rax + 00095 ff 15 00 00 00 + 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ + 0009b 48 83 f8 01 cmp rax, 1 + 0009f 7f 0d jg SHORT $LN15@operator + 000a1 48 c7 85 08 02 + 00 00 00 00 00 + 00 mov QWORD PTR tv130[rbp], 0 + 000ac eb 2e jmp SHORT $LN16@operator +$LN15@operator: + 000ae 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000b5 48 8b 00 mov rax, QWORD PTR [rax] + 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000bc 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 000c3 48 03 c8 add rcx, rax + 000c6 48 8b c1 mov rax, rcx + 000c9 48 8b c8 mov rcx, rax + 000cc ff 15 00 00 00 + 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ + 000d2 48 ff c8 dec rax + 000d5 48 89 85 08 02 + 00 00 mov QWORD PTR tv130[rbp], rax +$LN16@operator: + 000dc 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv130[rbp] + 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + +; 789 : +; 790 : _TRY_IO_BEGIN +; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { + + 000e7 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000ee 48 8b 00 mov rax, QWORD PTR [rax] + 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000f5 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 000fc 48 03 c8 add rcx, rax + 000ff 48 8b c1 mov rax, rcx + 00102 48 8b c8 mov rcx, rax + 00105 ff 15 00 00 00 + 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ + 0010b 89 85 04 02 00 + 00 mov DWORD PTR tv65[rbp], eax + 00111 8b 85 04 02 00 + 00 mov eax, DWORD PTR tv65[rbp] + 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H + 0011c 83 f8 40 cmp eax, 64 ; 00000040H + 0011f 0f 84 eb 00 00 + 00 je $LN10@operator + +; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left + + 00125 eb 0b jmp SHORT $LN4@operator +$LN2@operator: + 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 0012b 48 ff c8 dec rax + 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax +$LN4@operator: + 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00136 0f 85 d4 00 00 + 00 jne $LN10@operator + 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00141 0f 8e c9 00 00 + 00 jle $LN10@operator + +; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { + + 00147 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0014e 48 8b 00 mov rax, QWORD PTR [rax] + 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00155 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0015c 48 03 c8 add rcx, rax + 0015f 48 8b c1 mov rax, rcx + 00162 48 8b c8 mov rcx, rax + 00165 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 0016b 48 89 85 08 02 + 00 00 mov QWORD PTR tv300[rbp], rax + 00172 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv300[rbp] + 00179 48 89 85 10 02 + 00 00 mov QWORD PTR tv179[rbp], rax + 00180 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00187 48 8b 00 mov rax, QWORD PTR [rax] + 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0018e 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 8b c8 mov rcx, rax + 0019e ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ + 001a4 88 85 18 02 00 + 00 mov BYTE PTR tv301[rbp], al + 001aa 0f b6 85 18 02 + 00 00 movzx eax, BYTE PTR tv301[rbp] + 001b1 88 85 19 02 00 + 00 mov BYTE PTR tv177[rbp], al + 001b7 0f b6 95 19 02 + 00 00 movzx edx, BYTE PTR tv177[rbp] + 001be 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv179[rbp] + 001c5 ff 15 00 00 00 + 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z + 001cb 89 85 1c 02 00 + 00 mov DWORD PTR tv302[rbp], eax + 001d1 8b 85 1c 02 00 + 00 mov eax, DWORD PTR tv302[rbp] + 001d7 89 85 34 01 00 + 00 mov DWORD PTR $T5[rbp], eax + 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001e2 89 85 54 01 00 + 00 mov DWORD PTR $T6[rbp], eax + 001e8 48 8d 95 34 01 + 00 00 lea rdx, QWORD PTR $T5[rbp] + 001ef 48 8d 8d 54 01 + 00 00 lea rcx, QWORD PTR $T6[rbp] + 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 001fb 0f b6 c0 movzx eax, al + 001fe 85 c0 test eax, eax + 00200 74 09 je SHORT $LN11@operator + +; 794 : _State |= ios_base::badbit; + + 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00205 83 c8 04 or eax, 4 + 00208 89 45 04 mov DWORD PTR _State$[rbp], eax +$LN11@operator: + +; 795 : } +; 796 : } + + 0020b e9 17 ff ff ff jmp $LN2@operator +$LN10@operator: + +; 797 : } +; 798 : +; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { + + 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00214 0f 85 8d 00 00 + 00 jne $LN12@operator + 0021a 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00221 48 8b 00 mov rax, QWORD PTR [rax] + 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00228 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0022f 48 03 c8 add rcx, rax + 00232 48 8b c1 mov rax, rcx + 00235 48 8b c8 mov rcx, rax + 00238 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 0023e 48 89 85 08 02 + 00 00 mov QWORD PTR tv303[rbp], rax + 00245 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv303[rbp] + 0024c 48 89 85 10 02 + 00 00 mov QWORD PTR tv204[rbp], rax + 00253 0f b6 95 58 02 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 0025a 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv204[rbp] + 00261 ff 15 00 00 00 + 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z + 00267 89 85 18 02 00 + 00 mov DWORD PTR tv304[rbp], eax + 0026d 8b 85 18 02 00 + 00 mov eax, DWORD PTR tv304[rbp] + 00273 89 85 74 01 00 + 00 mov DWORD PTR $T7[rbp], eax + 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0027e 89 85 94 01 00 + 00 mov DWORD PTR $T8[rbp], eax + 00284 48 8d 95 74 01 + 00 00 lea rdx, QWORD PTR $T7[rbp] + 0028b 48 8d 8d 94 01 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00297 0f b6 c0 movzx eax, al + 0029a 85 c0 test eax, eax + 0029c 74 09 je SHORT $LN12@operator + +; 800 : _State |= ios_base::badbit; + + 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 002a1 83 c8 04 or eax, 4 + 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax +$LN12@operator: + +; 801 : } +; 802 : +; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right + + 002a7 eb 0b jmp SHORT $LN7@operator +$LN5@operator: + 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 002ad 48 ff c8 dec rax + 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax +$LN7@operator: + 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002b8 0f 85 d4 00 00 + 00 jne $LN6@operator + 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c3 0f 8e c9 00 00 + 00 jle $LN6@operator + +; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { + + 002c9 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 002d0 48 8b 00 mov rax, QWORD PTR [rax] + 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 002d7 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 002de 48 03 c8 add rcx, rax + 002e1 48 8b c1 mov rax, rcx + 002e4 48 8b c8 mov rcx, rax + 002e7 ff 15 00 00 00 + 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ + 002ed 48 89 85 08 02 + 00 00 mov QWORD PTR tv305[rbp], rax + 002f4 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR tv305[rbp] + 002fb 48 89 85 10 02 + 00 00 mov QWORD PTR tv245[rbp], rax + 00302 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00309 48 8b 00 mov rax, QWORD PTR [rax] + 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00310 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00317 48 03 c8 add rcx, rax + 0031a 48 8b c1 mov rax, rcx + 0031d 48 8b c8 mov rcx, rax + 00320 ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ + 00326 88 85 18 02 00 + 00 mov BYTE PTR tv306[rbp], al + 0032c 0f b6 85 18 02 + 00 00 movzx eax, BYTE PTR tv306[rbp] + 00333 88 85 19 02 00 + 00 mov BYTE PTR tv243[rbp], al + 00339 0f b6 95 19 02 + 00 00 movzx edx, BYTE PTR tv243[rbp] + 00340 48 8b 8d 10 02 + 00 00 mov rcx, QWORD PTR tv245[rbp] + 00347 ff 15 00 00 00 + 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z + 0034d 89 85 1c 02 00 + 00 mov DWORD PTR tv307[rbp], eax + 00353 8b 85 1c 02 00 + 00 mov eax, DWORD PTR tv307[rbp] + 00359 89 85 b4 01 00 + 00 mov DWORD PTR $T9[rbp], eax + 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00364 89 85 d4 01 00 + 00 mov DWORD PTR $T10[rbp], eax + 0036a 48 8d 95 b4 01 + 00 00 lea rdx, QWORD PTR $T9[rbp] + 00371 48 8d 8d d4 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0037d 0f b6 c0 movzx eax, al + 00380 85 c0 test eax, eax + 00382 74 09 je SHORT $LN13@operator + +; 805 : _State |= ios_base::badbit; + + 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00387 83 c8 04 or eax, 4 + 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax +$LN13@operator: + +; 806 : } +; 807 : } + + 0038d e9 17 ff ff ff jmp $LN5@operator +$LN6@operator: + 00392 eb 00 jmp SHORT $LN8@operator +$LN21@operator: +$LN8@operator: + +; 808 : _CATCH_IO_(ios_base, _Ostr) +; 809 : } +; 810 : +; 811 : _Ostr.width(0); + + 00394 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0039b 48 8b 00 mov rax, QWORD PTR [rax] + 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003a2 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 003a9 48 03 c8 add rcx, rax + 003ac 48 8b c1 mov rax, rcx + 003af 48 89 85 08 02 + 00 00 mov QWORD PTR tv281[rbp], rax + 003b6 33 d2 xor edx, edx + 003b8 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv281[rbp] + 003bf ff 15 00 00 00 + 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z + +; 812 : _Ostr.setstate(_State); + + 003c5 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 003cc 48 8b 00 mov rax, QWORD PTR [rax] + 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003d3 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 003da 48 03 c8 add rcx, rax + 003dd 48 8b c1 mov rax, rcx + 003e0 48 89 85 08 02 + 00 00 mov QWORD PTR tv295[rbp], rax + 003e7 45 33 c0 xor r8d, r8d + 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] + 003ed 48 8b 8d 08 02 + 00 00 mov rcx, QWORD PTR tv295[rbp] + 003f4 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z + +; 813 : return _Ostr; + + 003fa 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 00401 48 89 85 f8 01 + 00 00 mov QWORD PTR $T11[rbp], rax + 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00411 48 8b 85 f8 01 + 00 00 mov rax, QWORD PTR $T11[rbp] + +; 814 : } + + 00418 48 8b f8 mov rdi, rax + 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0041f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData + 00426 e8 00 00 00 00 call _RTC_CheckStackVars + 0042b 48 8b c7 mov rax, rdi + 0042e 48 8b 8d 20 02 + 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 +; 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 + +; 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 +; 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 +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_State$ = 4 +_Ok$ = 40 +_Pad$4 = 88 +$T5 = 308 +$T6 = 340 +$T7 = 372 +$T8 = 404 +$T9 = 436 +$T10 = 468 +$T11 = 504 +tv65 = 516 +tv305 = 520 +tv303 = 520 +tv300 = 520 +tv295 = 520 +tv281 = 520 +tv266 = 520 +tv130 = 520 +tv245 = 528 +tv204 = 528 +tv179 = 528 +tv306 = 536 +tv304 = 536 +tv301 = 536 +tv243 = 537 +tv177 = 537 +tv307 = 540 +tv302 = 540 +__$ArrayPad$ = 544 +_Ostr$ = 592 +_Ch$ = 600 +?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 + +; 808 : _CATCH_IO_(ios_base, _Ostr) + + 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.27.29110\include\xutility +; COMDAT ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z +_TEXT SEGMENT +$T1 = 200 +$T2 = 228 +tv79 = 248 +tv77 = 256 +__$ReturnUdt$ = 304 +_First$ = 312 +_Last$ = 320 +_Val$ = 328 +??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z PROC ; std::find > >,unsigned long>, COMDAT + +; 5171 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val + +$LN7: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00039 c7 85 e4 00 00 + 00 00 00 00 00 mov DWORD PTR $T2[rbp], 0 + 00043 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5172 : _Adl_verify_range(_First, _Last); + + 0004f 48 8b 95 40 01 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > + +; 5173 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); + + 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 *> + +; 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] + +; 5175 : } + + 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 +$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 + 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 +; 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 +; 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 +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 fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -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.27.29110\include\vector +; COMDAT ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ +_TEXT SEGMENT +this$ = 224 +?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ PROC ; std::_Vector_iterator > >::_Unwrapped, COMDAT + +; 309 : _NODISCARD value_type* _Unwrapped() 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:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 310 : return _Unfancy(this->_Ptr); + + 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 + +; 311 : } + + 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 +?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ENDP ; std::_Vector_iterator > >::_Unwrapped +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +_TEXT SEGMENT +this$ = 224 +__that$ = 232 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT +$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 + +; 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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 195 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); + + 0003b 48 8b 8d e8 00 + 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 + +; 196 : } + + 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 + +; 182 : friend void _Verify_range(const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) { + +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 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: + +; 183 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); + + 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: + +; 184 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); + + 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 + +; 185 : } + + 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 + +; 173 : void _Compat(const _Vector_const_iterator& _Right) const { // test for compatible iterator pair + +$LN12: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 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: + +; 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"); + + 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 + +; 178 : #endif // _ITERATOR_DEBUG_LEVEL == 0 +; 179 : } + + 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.27.29110\include\vector +; COMDAT ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z +_TEXT SEGMENT +tv69 = 192 +this$ = 240 +_Right$ = 248 +??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator!=, COMDAT + +; 152 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const { + +$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] + +; 154 : } + + 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.27.29110\include\vector +; COMDAT ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z +_TEXT SEGMENT +tv69 = 192 +this$ = 240 +_Right$ = 248 +??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator==, COMDAT + +; 147 : _NODISCARD bool operator==(const _Vector_const_iterator& _Right) const { + +$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 + +; 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] + 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 + +; 149 : return _Ptr == _Right._Ptr; + + 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] + +; 150 : } + + 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.27.29110\include\vector +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z +_TEXT SEGMENT +this$ = 224 +_Parg$ = 232 +_Pvector$ = 240 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT + +; 42 : _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { + +$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 + 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 + +; 43 : this->_Adopt(_Pvector); + + 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 + +; 44 : } + + 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] + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +T$1 = 8 +i$2 = 36 +$T3 = 260 +$T4 = 296 +tv90 = 328 +tv92 = 336 +tv95 = 344 +tv129 = 352 +tv141 = 360 +tv139 = 368 +Block$ = 416 +?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcPrintBlockCode, COMDAT + +; 428 : { + +$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 + +; 429 : for (PNATIVE_CODE_LINK T = Block->Start; T; 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 eb 00 00 + 00 je $LN3@NcPrintBlo + +; 430 : { +; 431 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) + + 0005c 48 8b 45 08 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 0f 85 d4 00 00 + 00 jne $LN8@NcPrintBlo + +; 432 : { +; 433 : for (uint32_t i = 0; i < T->RawDataSize; i++) + + 0006e c7 45 24 00 00 + 00 00 mov DWORD PTR i$2[rbp], 0 + 00075 eb 08 jmp SHORT $LN7@NcPrintBlo +$LN5@NcPrintBlo: + 00077 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 0007a ff c0 inc eax + 0007c 89 45 24 mov DWORD PTR i$2[rbp], eax +$LN7@NcPrintBlo: + 0007f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00083 8b 40 28 mov eax, DWORD PTR [rax+40] + 00086 39 45 24 cmp DWORD PTR i$2[rbp], eax + 00089 0f 83 b3 00 00 + 00 jae $LN6@NcPrintBlo + +; 434 : { +; 435 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; + + 0008f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex + 00096 48 8b 0d 00 00 + 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A + 0009d 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 + 000a3 48 89 85 48 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000aa ba 02 00 00 00 mov edx, 2 + 000af 48 8d 8d 28 01 + 00 00 lea rcx, QWORD PTR $T4[rbp] + 000b6 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 000bb 48 89 85 50 01 + 00 00 mov QWORD PTR tv92[rbp], rax + 000c2 48 8b 95 50 01 + 00 00 mov rdx, QWORD PTR tv92[rbp] + 000c9 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000d0 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> + 000d5 48 89 85 58 01 + 00 00 mov QWORD PTR tv95[rbp], rax + 000dc b2 30 mov dl, 48 ; 00000030H + 000de 48 8d 8d 04 01 + 00 00 lea rcx, QWORD PTR $T3[rbp] + 000e5 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill + 000ea 48 89 85 60 01 + 00 00 mov QWORD PTR tv129[rbp], rax + 000f1 48 8b 95 60 01 + 00 00 mov rdx, QWORD PTR tv129[rbp] + 000f8 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR tv95[rbp] + 000ff 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> + 00104 48 89 85 68 01 + 00 00 mov QWORD PTR tv141[rbp], rax + 0010b 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 0010e 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00112 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00116 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 0011a 89 85 70 01 00 + 00 mov DWORD PTR tv139[rbp], eax + 00120 8b 95 70 01 00 + 00 mov edx, DWORD PTR tv139[rbp] + 00126 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR tv141[rbp] + 0012d ff 15 00 00 00 + 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z + 00133 b2 20 mov dl, 32 ; 00000020H + 00135 48 8b c8 mov rcx, rax + 00138 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<< > + +; 436 : } + + 0013d e9 35 ff ff ff jmp $LN5@NcPrintBlo +$LN6@NcPrintBlo: +$LN8@NcPrintBlo: + +; 437 : } +; 438 : } + + 00142 e9 ff fe ff ff jmp $LN2@NcPrintBlo +$LN3@NcPrintBlo: + +; 439 : } + + 00147 48 8d a5 88 01 + 00 00 lea rsp, QWORD PTR [rbp+392] + 0014e 5f pop rdi + 0014f 5d pop rbp + 00150 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 +tv128 = 276 +tv94 = 280 +Block$ = 320 +?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDebugPrint, COMDAT + +; 398 : { + +$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 + +; 399 : 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 + +; 400 : if (!ConsoleHandle) + + 00045 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 + 0004a 75 05 jne SHORT $LN5@NcDebugPri + +; 401 : return; + + 0004c e9 eb 00 00 00 jmp $LN1@NcDebugPri +$LN5@NcDebugPri: + +; 402 : +; 403 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 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 c5 00 00 + 00 je $LN3@NcDebugPri + +; 404 : { +; 405 : 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 26 je SHORT $LN6@NcDebugPri + +; 406 : { +; 407 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); + + 00085 66 ba 06 00 mov dx, 6 + 00089 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 0008d ff 15 00 00 00 + 00 call QWORD PTR __imp_SetConsoleTextAttribute + +; 408 : printf("Label: %u\n", T->Label); + + 00093 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00097 8b 50 1c mov edx, DWORD PTR [rax+28] + 0009a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ + 000a1 e8 00 00 00 00 call printf + +; 409 : } + + 000a6 e9 8c 00 00 00 jmp $LN7@NcDebugPri +$LN6@NcDebugPri: + +; 410 : else +; 411 : { +; 412 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); + + 000ab 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000af 48 83 c0 30 add rax, 48 ; 00000030H + 000b3 48 8b c8 mov rcx, rax + 000b6 e8 00 00 00 00 call xed_decoded_inst_get_iclass + 000bb 89 45 44 mov DWORD PTR IClass$2[rbp], eax + +; 413 : if (T->Flags & CODE_FLAG_IS_REL_JMP) + + 000be 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000c2 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c5 83 e0 02 and eax, 2 + 000c8 85 c0 test eax, eax + 000ca 74 46 je SHORT $LN8@NcDebugPri + +; 414 : { +; 415 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); + + 000cc 66 ba 06 00 mov dx, 6 + 000d0 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 000d4 ff 15 00 00 00 + 00 call QWORD PTR __imp_SetConsoleTextAttribute + +; 416 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); + + 000da 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000de 8b 40 1c mov eax, DWORD PTR [rax+28] + 000e1 89 85 14 01 00 + 00 mov DWORD PTR tv128[rbp], eax + 000e7 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 000ea e8 00 00 00 00 call xed_iclass_enum_t2str + 000ef 48 89 85 18 01 + 00 00 mov QWORD PTR tv94[rbp], rax + 000f6 44 8b 85 14 01 + 00 00 mov r8d, DWORD PTR tv128[rbp] + 000fd 48 8b 95 18 01 + 00 00 mov rdx, QWORD PTR tv94[rbp] + 00104 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ + 0010b e8 00 00 00 00 call printf + +; 417 : } + + 00110 eb 25 jmp SHORT $LN9@NcDebugPri +$LN8@NcDebugPri: + +; 418 : else +; 419 : { +; 420 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); + + 00112 66 ba 03 00 mov dx, 3 + 00116 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 0011a ff 15 00 00 00 + 00 call QWORD PTR __imp_SetConsoleTextAttribute + +; 421 : printf("%s\n", XedIClassEnumToString(IClass)); + + 00120 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 00123 e8 00 00 00 00 call xed_iclass_enum_t2str + 00128 48 8b d0 mov rdx, rax + 0012b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@ + 00132 e8 00 00 00 00 call printf +$LN9@NcDebugPri: +$LN7@NcDebugPri: + +; 422 : } +; 423 : } +; 424 : } + + 00137 e9 25 ff ff ff jmp $LN2@NcDebugPri +$LN3@NcDebugPri: +$LN1@NcDebugPri: + +; 425 : } + + 0013c 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00143 5f pop rdi + 00144 5d pop rbp + 00145 c3 ret 0 +?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDebugPrint +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +T$1 = 8 +Next$2 = 40 +$T3 = 264 +tv77 = 280 +Block$ = 320 +?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeleteBlock, COMDAT + +; 385 : { + +$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 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 + +; 386 : if (!Block->Start || !Block->End) + + 00036 48 8b 85 40 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 40 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0004a 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0004f 75 02 jne SHORT $LN5@NcDeleteBl +$LN6@NcDeleteBl: + +; 387 : return; + + 00051 eb 71 jmp SHORT $LN1@NcDeleteBl +$LN5@NcDeleteBl: + +; 388 : +; 389 : for (PNATIVE_CODE_LINK T = Block->Start; T != Block->End->Next;) + + 00053 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN2@NcDeleteBl: + 00061 48 8b 85 40 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 4f je SHORT $LN3@NcDeleteBl + +; 390 : { +; 391 : PNATIVE_CODE_LINK Next = T->Next; + + 00075 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00079 48 8b 00 mov rax, QWORD PTR [rax] + 0007c 48 89 45 28 mov QWORD PTR Next$2[rbp], rax + +; 392 : delete T; + + 00080 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00084 48 89 85 08 01 + 00 00 mov QWORD PTR $T3[rbp], rax + 0008b 48 83 bd 08 01 + 00 00 00 cmp QWORD PTR $T3[rbp], 0 + 00093 74 1a je SHORT $LN8@NcDeleteBl + 00095 ba 01 00 00 00 mov edx, 1 + 0009a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR $T3[rbp] + 000a1 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000a6 48 89 85 18 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 000ad eb 0b jmp SHORT $LN9@NcDeleteBl +$LN8@NcDeleteBl: + 000af 48 c7 85 18 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv77[rbp], 0 +$LN9@NcDeleteBl: + +; 393 : T = Next; + + 000ba 48 8b 45 28 mov rax, QWORD PTR Next$2[rbp] + 000be 48 89 45 08 mov QWORD PTR T$1[rbp], rax + +; 394 : } + + 000c2 eb 9d jmp SHORT $LN2@NcDeleteBl +$LN3@NcDeleteBl: +$LN1@NcDeleteBl: + +; 395 : } + + 000c4 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000cb 5f pop rdi + 000cc 5d pop rbp + 000cd c3 ret 0 +?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeleteBlock +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +Block$ = 224 +?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcAssemble, COMDAT + +; 379 : { + +$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:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 380 : //TODO: handle post assembly editing for Jit obfuscation types(maybe a vector of post assembly processing traits inside of NATIVE_CODE_LINK) +; 381 : return NULL; + + 00036 33 c0 xor eax, eax + +; 382 : } + + 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 +?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcAssemble +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\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 + +; 347 : { + +$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 + +; 348 : 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 + +; 349 : ULONG Offset = 0; + + 0004b c7 45 24 00 00 + 00 00 mov DWORD PTR Offset$[rbp], 0 +$LN2@NcDisassem: + +; 350 : +; 351 : while (Offset < BufferSize) + + 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 + +; 352 : { +; 353 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; + + 00061 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00066 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0006b 48 89 85 88 01 + 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 + +; 354 : Link->Flags = CODE_FLAG_IS_INST; + + 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 + +; 355 : ULONG PossibleSize = min(15, BufferSize - Offset); + + 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 + +; 356 : 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 + +; 357 : if (DecodeError != XED_ERROR_NONE) + + 00121 83 bd 84 00 00 + 00 00 cmp DWORD PTR DecodeError$3[rbp], 0 + 00128 74 67 je SHORT $LN4@NcDisassem + +; 358 : { +; 359 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); + + 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 + +; 360 : NcDeleteBlock(Block); + + 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 + +; 361 : delete Link; + + 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: + +; 362 : return FALSE; + + 0018a 33 c0 xor eax, eax + 0018c e9 99 00 00 00 jmp $LN1@NcDisassem +$LN4@NcDisassem: + +; 363 : } +; 364 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); + + 00191 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00195 48 83 c0 30 add rax, 48 ; 00000030H + 00199 48 8b c8 mov rcx, rax + 0019c e8 00 00 00 00 call xed_decoded_inst_get_length + 001a1 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] + 001a5 89 41 28 mov DWORD PTR [rcx+40], eax + +; 365 : 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 + +; 366 : memcpy(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 + +; 367 : +; 368 : 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 + +; 369 : +; 370 : Offset += Link->RawDataSize; + + 00203 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00207 8b 40 28 mov eax, DWORD PTR [rax+40] + 0020a 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] + 0020d 03 c8 add ecx, eax + 0020f 8b c1 mov eax, ecx + 00211 89 45 24 mov DWORD PTR Offset$[rbp], eax + +; 371 : } + + 00214 e9 39 fe ff ff jmp $LN2@NcDisassem +$LN3@NcDisassem: + +; 372 : +; 373 : NcCreateLabels(Block); + + 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 + +; 374 : +; 375 : return TRUE; + + 00225 b8 01 00 00 00 mov eax, 1 +$LN1@NcDisassem: + +; 376 : } + + 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 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z +_TEXT SEGMENT +Block$ = 224 +?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z PROC ; NcDeepCopyBlock, COMDAT + +; 342 : { + +$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:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 343 : return NcDeepCopyPartialBlock(Block->Start, Block->End); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0003d 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 00041 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00048 48 8b 08 mov rcx, QWORD PTR [rax] + 0004b e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ; NcDeepCopyPartialBlock + +; 344 : } + + 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 +?NcDeepCopyBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU1@@Z ENDP ; NcDeepCopyBlock +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z +_TEXT SEGMENT +Block$ = 8 +$L0$4 = 40 +$L0$5 = 72 +$L0$6 = 104 +L$7 = 132 +CurLink$8 = 168 +Temp$9 = 200 +$T10 = 424 +$T11 = 456 +$T12 = 488 +tv139 = 504 +tv95 = 504 +tv82 = 504 +__$ArrayPad$ = 512 +Start$ = 560 +End$ = 568 +?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z PROC ; NcDeepCopyPartialBlock, COMDAT + +; 315 : { + +$LN18: + 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 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 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 00 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 316 : if (!Start || !End || !Start->Block || Start->Block != End->Block) + + 0004c 48 83 bd 30 02 + 00 00 00 cmp QWORD PTR Start$[rbp], 0 + 00054 74 30 je SHORT $LN9@NcDeepCopy + 00056 48 83 bd 38 02 + 00 00 00 cmp QWORD PTR End$[rbp], 0 + 0005e 74 26 je SHORT $LN9@NcDeepCopy + 00060 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00067 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 0006c 74 18 je SHORT $LN9@NcDeepCopy + 0006e 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00075 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR End$[rbp] + 0007c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00080 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 00084 74 07 je SHORT $LN8@NcDeepCopy +$LN9@NcDeepCopy: + +; 317 : return NULL; + + 00086 33 c0 xor eax, eax + 00088 e9 88 01 00 00 jmp $LN1@NcDeepCopy +$LN8@NcDeepCopy: + +; 318 : +; 319 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + 0008d b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00092 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00097 48 89 85 c8 01 + 00 00 mov QWORD PTR $T11[rbp], rax + 0009e 48 83 bd c8 01 + 00 00 00 cmp QWORD PTR $T11[rbp], 0 + 000a6 74 15 je SHORT $LN13@NcDeepCopy + 000a8 48 8b 8d c8 01 + 00 00 mov rcx, QWORD PTR $T11[rbp] + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 000b4 48 89 85 f8 01 + 00 00 mov QWORD PTR tv82[rbp], rax + 000bb eb 0b jmp SHORT $LN14@NcDeepCopy +$LN13@NcDeepCopy: + 000bd 48 c7 85 f8 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv82[rbp], 0 +$LN14@NcDeepCopy: + 000c8 48 8b 85 f8 01 + 00 00 mov rax, QWORD PTR tv82[rbp] + 000cf 48 89 85 a8 01 + 00 00 mov QWORD PTR $T10[rbp], rax + 000d6 48 8b 85 a8 01 + 00 00 mov rax, QWORD PTR $T10[rbp] + 000dd 48 89 45 08 mov QWORD PTR Block$[rbp], rax + +; 320 : if (!Block) + + 000e1 48 83 7d 08 00 cmp QWORD PTR Block$[rbp], 0 + 000e6 75 07 jne SHORT $LN10@NcDeepCopy + +; 321 : return NULL; + + 000e8 33 c0 xor eax, eax + 000ea e9 26 01 00 00 jmp $LN1@NcDeepCopy +$LN10@NcDeepCopy: + +; 322 : +; 323 : for (ULONG L : Start->Block->LabelIds) + + 000ef 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR Start$[rbp] + 000f6 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000fa 48 83 c0 10 add rax, 16 + 000fe 48 89 45 28 mov QWORD PTR $L0$4[rbp], rax + 00102 48 8b 4d 28 mov rcx, QWORD PTR $L0$4[rbp] + 00106 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin + 0010b 48 89 45 48 mov QWORD PTR $L0$5[rbp], rax + 0010f 48 8b 4d 28 mov rcx, QWORD PTR $L0$4[rbp] + 00113 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end + 00118 48 89 45 68 mov QWORD PTR $L0$6[rbp], rax + 0011c eb 0c jmp SHORT $LN4@NcDeepCopy +$LN2@NcDeepCopy: + 0011e 48 8b 45 48 mov rax, QWORD PTR $L0$5[rbp] + 00122 48 83 c0 04 add rax, 4 + 00126 48 89 45 48 mov QWORD PTR $L0$5[rbp], rax +$LN4@NcDeepCopy: + 0012a 48 8b 45 68 mov rax, QWORD PTR $L0$6[rbp] + 0012e 48 39 45 48 cmp QWORD PTR $L0$5[rbp], rax + 00132 74 30 je SHORT $LN3@NcDeepCopy + 00134 48 8b 45 48 mov rax, QWORD PTR $L0$5[rbp] + 00138 8b 00 mov eax, DWORD PTR [rax] + 0013a 89 85 84 00 00 + 00 mov DWORD PTR L$7[rbp], eax + +; 324 : Block->LabelIds.push_back(L); + + 00140 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 00144 48 83 c0 10 add rax, 16 + 00148 48 89 85 f8 01 + 00 00 mov QWORD PTR tv95[rbp], rax + 0014f 48 8d 95 84 00 + 00 00 lea rdx, QWORD PTR L$7[rbp] + 00156 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR tv95[rbp] + 0015d e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 00162 eb ba jmp SHORT $LN2@NcDeepCopy +$LN3@NcDeepCopy: + +; 325 : +; 326 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink != End->Next; CurLink = CurLink->Next) + + 00164 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR Start$[rbp] + 0016b 48 89 85 a8 00 + 00 00 mov QWORD PTR CurLink$8[rbp], rax + 00172 eb 11 jmp SHORT $LN7@NcDeepCopy +$LN5@NcDeepCopy: + 00174 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR CurLink$8[rbp] + 0017b 48 8b 00 mov rax, QWORD PTR [rax] + 0017e 48 89 85 a8 00 + 00 00 mov QWORD PTR CurLink$8[rbp], rax +$LN7@NcDeepCopy: + 00185 48 8b 85 38 02 + 00 00 mov rax, QWORD PTR End$[rbp] + 0018c 48 8b 00 mov rax, QWORD PTR [rax] + 0018f 48 39 85 a8 00 + 00 00 cmp QWORD PTR CurLink$8[rbp], rax + 00196 74 79 je SHORT $LN6@NcDeepCopy + +; 327 : { +; 328 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); + + 00198 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR CurLink$8[rbp] + 0019f e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink + 001a4 48 89 85 c8 00 + 00 00 mov QWORD PTR Temp$9[rbp], rax + +; 329 : if (!Temp) + + 001ab 48 83 bd c8 00 + 00 00 00 cmp QWORD PTR Temp$9[rbp], 0 + 001b3 75 47 jne SHORT $LN11@NcDeepCopy + +; 330 : { +; 331 : NcDeleteBlock(Block); + + 001b5 48 8b 4d 08 mov rcx, QWORD PTR Block$[rbp] + 001b9 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 332 : delete Block; + + 001be 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 001c2 48 89 85 e8 01 + 00 00 mov QWORD PTR $T12[rbp], rax + 001c9 48 83 bd e8 01 + 00 00 00 cmp QWORD PTR $T12[rbp], 0 + 001d1 74 1a je SHORT $LN15@NcDeepCopy + 001d3 ba 01 00 00 00 mov edx, 1 + 001d8 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR $T12[rbp] + 001df e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 001e4 48 89 85 f8 01 + 00 00 mov QWORD PTR tv139[rbp], rax + 001eb eb 0b jmp SHORT $LN16@NcDeepCopy +$LN15@NcDeepCopy: + 001ed 48 c7 85 f8 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv139[rbp], 0 +$LN16@NcDeepCopy: + +; 333 : return NULL; + + 001f8 33 c0 xor eax, eax + 001fa eb 19 jmp SHORT $LN1@NcDeepCopy +$LN11@NcDeepCopy: + +; 334 : } +; 335 : NcAppendToBlock(Block, Temp); + + 001fc 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR Temp$9[rbp] + 00203 48 8b 4d 08 mov rcx, QWORD PTR Block$[rbp] + 00207 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 336 : } + + 0020c e9 63 ff ff ff jmp $LN5@NcDeepCopy +$LN6@NcDeepCopy: + +; 337 : +; 338 : return Block; + + 00211 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] +$LN1@NcDeepCopy: + +; 339 : } + + 00215 48 8b f8 mov rdi, rax + 00218 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0021c 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcFrameData + 00223 e8 00 00 00 00 call _RTC_CheckStackVars + 00228 48 8b c7 mov rax, rdi + 0022b 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00232 48 33 cd xor rcx, rbp + 00235 e8 00 00 00 00 call __security_check_cookie + 0023a 48 8d a5 18 02 + 00 00 lea rsp, QWORD PTR [rbp+536] + 00241 5f pop rdi + 00242 5d pop rbp + 00243 c3 ret 0 +?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcDeepCopyPartialBlock +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +Block$ = 8 +$L0$4 = 40 +$L0$5 = 72 +$L0$6 = 104 +L$7 = 132 +CurLink$8 = 168 +Temp$9 = 200 +$T10 = 424 +$T11 = 456 +$T12 = 488 +tv139 = 504 +tv95 = 504 +tv82 = 504 +__$ArrayPad$ = 512 +Start$ = 560 +End$ = 568 +?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA PROC ; `NcDeepCopyPartialBlock'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d c8 01 + 00 00 mov rcx, QWORD PTR $T11[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??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA ENDP ; `NcDeepCopyPartialBlock'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +Block$ = 8 +$L0$4 = 40 +$L0$5 = 72 +$L0$6 = 104 +L$7 = 132 +CurLink$8 = 168 +Temp$9 = 200 +$T10 = 424 +$T11 = 456 +$T12 = 488 +tv139 = 504 +tv95 = 504 +tv82 = 504 +__$ArrayPad$ = 512 +Start$ = 560 +End$ = 568 +?dtor$0@?0??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA PROC ; `NcDeepCopyPartialBlock'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d c8 01 + 00 00 mov rcx, QWORD PTR $T11[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??NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA ENDP ; `NcDeepCopyPartialBlock'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\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 +tv148 = 408 +tv130 = 408 +tv81 = 408 +Link$ = 448 +?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z PROC ; NcDeepCopyLink, COMDAT + +; 295 : { + +$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 c8 01 + 00 00 sub rsp, 456 ; 000001c8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 72 00 00 00 mov ecx, 114 ; 00000072H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 e8 + 01 00 00 mov rcx, QWORD PTR [rsp+488] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 296 : if (Link->Flags & CODE_FLAG_IS_LABEL) + + 00036 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0003d 8b 40 18 mov eax, DWORD PTR [rax+24] + 00040 83 e0 01 and eax, 1 + 00043 85 c0 test eax, eax + 00045 74 67 je SHORT $LN2@NcDeepCopy + +; 297 : { +; 298 : return new NATIVE_CODE_LINK(Link->Label, NULL); + + 00047 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0004c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00051 48 89 85 28 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 00058 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T4[rbp], 0 + 00060 74 22 je SHORT $LN6@NcDeepCopy + 00062 45 33 c0 xor r8d, r8d + 00065 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 0006c 8b 50 1c mov edx, DWORD PTR [rax+28] + 0006f 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T4[rbp] + 00076 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0007b 48 89 85 98 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 00082 eb 0b jmp SHORT $LN7@NcDeepCopy +$LN6@NcDeepCopy: + 00084 48 c7 85 98 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv81[rbp], 0 +$LN7@NcDeepCopy: + 0008f 48 8b 85 98 01 + 00 00 mov rax, QWORD PTR tv81[rbp] + 00096 48 89 85 08 01 + 00 00 mov QWORD PTR $T3[rbp], rax + 0009d 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR $T3[rbp] + 000a4 e9 12 01 00 00 jmp $LN1@NcDeepCopy + +; 299 : } + + 000a9 e9 0d 01 00 00 jmp $LN1@NcDeepCopy +$LN2@NcDeepCopy: + +; 300 : else +; 301 : { PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); + + 000ae b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000b3 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000b8 48 89 85 68 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 000bf 48 83 bd 68 01 + 00 00 00 cmp QWORD PTR $T6[rbp], 0 + 000c7 74 35 je SHORT $LN8@NcDeepCopy + 000c9 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000d0 44 8b 48 28 mov r9d, DWORD PTR [rax+40] + 000d4 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000db 4c 8b 40 20 mov r8, QWORD PTR [rax+32] + 000df 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 000e6 8b 50 18 mov edx, DWORD PTR [rax+24] + 000e9 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 000f0 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000f5 48 89 85 98 01 + 00 00 mov QWORD PTR tv130[rbp], rax + 000fc eb 0b jmp SHORT $LN9@NcDeepCopy +$LN8@NcDeepCopy: + 000fe 48 c7 85 98 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv130[rbp], 0 +$LN9@NcDeepCopy: + 00109 48 8b 85 98 01 + 00 00 mov rax, QWORD PTR tv130[rbp] + 00110 48 89 85 48 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00117 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR $T5[rbp] + 0011e 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax + +; 302 : NewLink->Label = Link->Label; + + 00122 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00126 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0012d 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00130 89 48 1c mov DWORD PTR [rax+28], ecx + +; 303 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); + + 00133 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00137 48 83 c0 30 add rax, 48 ; 00000030H + 0013b 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00142 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00146 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0014d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00151 48 8b c8 mov rcx, rax + 00154 e8 00 00 00 00 call xed_decode + 00159 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax + +; 304 : if (DecodeError != XED_ERROR_NONE) + + 0015c 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 + 00160 74 55 je SHORT $LN4@NcDeepCopy + +; 305 : { +; 306 : printf("XedDecode failed in NcDeepCopyLink: %s\n", XedErrorEnumToString(DecodeError)); + + 00162 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] + 00165 e8 00 00 00 00 call xed_error_enum_t2str + 0016a 48 8b d0 mov rdx, rax + 0016d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0CI@IAPEEFOG@XedDecode?5failed?5in?5NcDeepCopyL@ + 00174 e8 00 00 00 00 call printf + +; 307 : delete NewLink; + + 00179 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 0017d 48 89 85 88 01 + 00 00 mov QWORD PTR $T7[rbp], rax + 00184 48 83 bd 88 01 + 00 00 00 cmp QWORD PTR $T7[rbp], 0 + 0018c 74 1a je SHORT $LN10@NcDeepCopy + 0018e ba 01 00 00 00 mov edx, 1 + 00193 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 0019a e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 0019f 48 89 85 98 01 + 00 00 mov QWORD PTR tv148[rbp], rax + 001a6 eb 0b jmp SHORT $LN11@NcDeepCopy +$LN10@NcDeepCopy: + 001a8 48 c7 85 98 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv148[rbp], 0 +$LN11@NcDeepCopy: + +; 308 : return NULL; + + 001b3 33 c0 xor eax, eax + 001b5 eb 04 jmp SHORT $LN1@NcDeepCopy +$LN4@NcDeepCopy: + +; 309 : } +; 310 : return NewLink; + + 001b7 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] +$LN1@NcDeepCopy: + +; 311 : } +; 312 : } + + 001bb 48 8d a5 a8 01 + 00 00 lea rsp, QWORD PTR [rbp+424] + 001c2 5f pop rdi + 001c3 5d pop rbp + 001c4 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 +$T3 = 264 +$T4 = 296 +$T5 = 328 +$T6 = 360 +$T7 = 392 +tv148 = 408 +tv130 = 408 +tv81 = 408 +Link$ = 448 +?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 20 lea rbp, QWORD PTR [rdx+32] + 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 +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 +tv148 = 408 +tv130 = 408 +tv81 = 408 +Link$ = 448 +?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 20 lea rbp, QWORD PTR [rdx+32] + 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 +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 +tv148 = 408 +tv130 = 408 +tv81 = 408 +Link$ = 448 +?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 20 lea rbp, QWORD PTR [rdx+32] + 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 +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 +tv148 = 408 +tv130 = 408 +tv81 = 408 +Link$ = 448 +?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 20 lea rbp, QWORD PTR [rdx+32] + 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 +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 + +; 255 : { + +$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 + +; 256 : PNATIVE_CODE_LINK T; +; 257 : if (Delta > 0) + + 0003a 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 00041 0f 8e a2 00 00 + 00 jle $LN10@NcValidate + +; 258 : { +; 259 : T = Jmp->Next; + + 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: + +; 260 : while (Delta > 0 && T) + + 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 + +; 261 : { +; 262 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 00065 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00069 8b 40 18 mov eax, DWORD PTR [rax+24] + 0006c 83 e0 01 and eax, 1 + 0006f 85 c0 test eax, eax + 00071 74 02 je SHORT $LN12@NcValidate + +; 263 : continue; + + 00073 eb e0 jmp SHORT $LN2@NcValidate +$LN12@NcValidate: + +; 264 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); + + 00075 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00079 48 83 c0 30 add rax, 48 ; 00000030H + 0007d 48 8b c8 mov rcx, rax + 00080 e8 00 00 00 00 call xed_decoded_inst_get_length + 00085 8b 8d 08 01 00 + 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 + +; 265 : T = T->Next; + + 00095 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00099 48 8b 00 mov rax, QWORD PTR [rax] + 0009c 48 89 45 08 mov QWORD PTR T$[rbp], rax + +; 266 : } + + 000a0 eb b3 jmp SHORT $LN21@NcValidate +$LN3@NcValidate: + +; 267 : if (Delta != 0 || !T) + + 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: + +; 268 : return NULL; + + 000b2 33 c0 xor eax, eax + 000b4 e9 db 00 00 00 jmp $LN1@NcValidate +$LN13@NcValidate: +$LN4@NcValidate: + +; 269 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) + + 000b9 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000be 74 1b je SHORT $LN5@NcValidate + 000c0 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c7 83 e0 01 and eax, 1 + 000ca 85 c0 test eax, eax + 000cc 74 0d je SHORT $LN5@NcValidate + +; 270 : T = T->Next; + + 000ce 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000d2 48 8b 00 mov rax, QWORD PTR [rax] + 000d5 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000d9 eb de jmp SHORT $LN4@NcValidate +$LN5@NcValidate: + +; 271 : return T; + + 000db 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000df e9 b0 00 00 00 jmp $LN1@NcValidate + +; 272 : } + + 000e4 e9 a4 00 00 00 jmp $LN11@NcValidate +$LN10@NcValidate: + +; 273 : else if (Delta < 0) + + 000e9 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 000f0 0f 8d 97 00 00 + 00 jge $LN15@NcValidate + +; 274 : { +; 275 : T = Jmp; + + 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: + +; 276 : while (T) + + 00101 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00106 74 49 je SHORT $LN7@NcValidate + +; 277 : { +; 278 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 00108 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0010c 8b 40 18 mov eax, DWORD PTR [rax+24] + 0010f 83 e0 01 and eax, 1 + 00112 85 c0 test eax, eax + 00114 74 02 je SHORT $LN16@NcValidate + +; 279 : continue; + + 00116 eb e9 jmp SHORT $LN6@NcValidate +$LN16@NcValidate: + +; 280 : Delta += XedDecodedInstGetLength(&T->XedInstruction); + + 00118 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0011c 48 83 c0 30 add rax, 48 ; 00000030H + 00120 48 8b c8 mov rcx, rax + 00123 e8 00 00 00 00 call xed_decoded_inst_get_length + 00128 8b 8d 08 01 00 + 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 + +; 281 : if (Delta >= 0) + + 00138 83 bd 08 01 00 + 00 00 cmp DWORD PTR Delta$[rbp], 0 + 0013f 7c 02 jl SHORT $LN17@NcValidate + +; 282 : break; + + 00141 eb 0e jmp SHORT $LN7@NcValidate +$LN17@NcValidate: + +; 283 : T = T->Prev; + + 00143 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00147 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0014b 48 89 45 08 mov QWORD PTR T$[rbp], rax + +; 284 : } + + 0014f eb b0 jmp SHORT $LN22@NcValidate +$LN7@NcValidate: + +; 285 : if (Delta != 0 || !T) + + 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: + +; 286 : return NULL; + + 00161 33 c0 xor eax, eax + 00163 eb 2f jmp SHORT $LN1@NcValidate +$LN18@NcValidate: +$LN8@NcValidate: + +; 287 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) + + 00165 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 0016a 74 1b je SHORT $LN9@NcValidate + 0016c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00170 8b 40 18 mov eax, DWORD PTR [rax+24] + 00173 83 e0 01 and eax, 1 + 00176 85 c0 test eax, eax + 00178 74 0d je SHORT $LN9@NcValidate + +; 288 : T = T->Next; + + 0017a 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0017e 48 8b 00 mov rax, QWORD PTR [rax] + 00181 48 89 45 08 mov QWORD PTR T$[rbp], rax + 00185 eb de jmp SHORT $LN8@NcValidate +$LN9@NcValidate: + +; 289 : return T; + + 00187 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0018b eb 07 jmp SHORT $LN1@NcValidate +$LN15@NcValidate: +$LN11@NcValidate: + +; 290 : } +; 291 : return Jmp; + + 0018d 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Jmp$[rbp] +$LN1@NcValidate: + +; 292 : } + + 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 +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@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 + +; 203 : { + +$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 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 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 20 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 204 : ULONG CurrentLabelId = 0; + + 00047 c7 45 04 00 00 + 00 00 mov DWORD PTR CurrentLabelId$[rbp], 0 + +; 205 : 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] + 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 + +; 206 : { +; 207 : if (!(T->Flags & CODE_FLAG_IS_INST)) + + 00074 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00078 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007b 83 e0 04 and eax, 4 + 0007e 85 c0 test eax, eax + 00080 75 02 jne SHORT $LN5@NcCreateLa + +; 208 : continue; + + 00082 eb da jmp SHORT $LN2@NcCreateLa +$LN5@NcCreateLa: + +; 209 : +; 210 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); + + 00084 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00088 48 83 c0 30 add rax, 48 ; 00000030H + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call xed_decoded_inst_get_category + 00094 89 45 44 mov DWORD PTR Category$5[rbp], eax + +; 211 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) + + 00097 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 + 0009b 74 08 je SHORT $LN6@NcCreateLa + 0009d 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH + 000a1 74 02 je SHORT $LN6@NcCreateLa + +; 212 : continue; + + 000a3 eb b9 jmp SHORT $LN2@NcCreateLa +$LN6@NcCreateLa: + +; 213 : +; 214 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); + + 000a5 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000a9 48 83 c0 30 add rax, 48 ; 00000030H + 000ad 48 8b c8 mov rcx, rax + 000b0 e8 00 00 00 00 call xed_decoded_inst_noperands + 000b5 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax + +; 215 : if (OperandCount < 1) + + 000b8 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 + 000bc 73 02 jae SHORT $LN7@NcCreateLa + +; 216 : continue; + + 000be eb 9e jmp SHORT $LN2@NcCreateLa +$LN7@NcCreateLa: + +; 217 : +; 218 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); + + 000c0 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000c4 48 83 c0 30 add rax, 48 ; 00000030H + 000c8 48 8b c8 mov rcx, rax + 000cb e8 00 00 00 00 call xed_decoded_inst_inst + 000d0 48 89 85 88 00 + 00 00 mov QWORD PTR Inst$7[rbp], rax + +; 219 : if (!Inst) + + 000d7 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR Inst$7[rbp], 0 + 000df 75 05 jne SHORT $LN8@NcCreateLa + +; 220 : continue; + + 000e1 e9 78 ff ff ff jmp $LN2@NcCreateLa +$LN8@NcCreateLa: + +; 221 : +; 222 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); + + 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 + +; 223 : if (!Operand) + + 000fb 48 83 bd a8 00 + 00 00 00 cmp QWORD PTR Operand$8[rbp], 0 + 00103 75 05 jne SHORT $LN9@NcCreateLa + +; 224 : continue; + + 00105 e9 54 ff ff ff jmp $LN2@NcCreateLa +$LN9@NcCreateLa: + +; 225 : +; 226 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); + + 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 + +; 227 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) + + 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 + +; 228 : continue; + + 0012e e9 2b ff ff ff jmp $LN2@NcCreateLa +$LN10@NcCreateLa: + +; 229 : +; 230 : 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 + +; 231 : 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 + +; 232 : 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 + +; 233 : { +; 234 : 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 + +; 235 : return FALSE; + + 00187 33 c0 xor eax, eax + 00189 e9 f2 00 00 00 jmp $LN1@NcCreateLa +$LN11@NcCreateLa: + +; 236 : } +; 237 : +; 238 : 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 + +; 239 : { +; 240 : 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 + +; 241 : } + + 001c6 e9 9a 00 00 00 jmp $LN13@NcCreateLa +$LN12@NcCreateLa: + +; 242 : else +; 243 : { +; 244 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); + + 001cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 001d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 001d5 48 89 85 08 02 + 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 + +; 245 : Block->LabelIds.push_back(CurrentLabelId); + + 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 + +; 246 : T->Label = CurrentLabelId; + + 00253 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00257 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] + 0025a 89 48 1c mov DWORD PTR [rax+28], ecx + +; 247 : ++CurrentLabelId; + + 0025d 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] + 00260 ff c0 inc eax + 00262 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax +$LN13@NcCreateLa: + +; 248 : } +; 249 : T->Flags |= CODE_FLAG_IS_REL_JMP; + + 00265 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00269 8b 40 18 mov eax, DWORD PTR [rax+24] + 0026c 83 c8 02 or eax, 2 + 0026f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00273 89 41 18 mov DWORD PTR [rcx+24], eax + +; 250 : } + + 00276 e9 e3 fd ff ff jmp $LN2@NcCreateLa +$LN3@NcCreateLa: + +; 251 : return TRUE; + + 0027b b8 01 00 00 00 mov eax, 1 +$LN1@NcCreateLa: + +; 252 : } + + 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 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:\$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 + +; 183 : { + +$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 + +; 184 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) + + 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: + +; 185 : return FALSE; + + 0007d 33 c0 xor eax, eax + 0007f e9 fa 00 00 00 jmp $LN1@NcInsertBl +$LN5@NcInsertBl: + +; 186 : +; 187 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) + + 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 + +; 188 : NcFixLabelsForBlocks(Link->Block, Block); + + 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: + +; 189 : +; 190 : if (Link->Prev) + + 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 + +; 191 : Link->Prev->Next = Block->Start; + + 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: + +; 192 : Block->Start->Prev = Link->Prev; + + 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 + +; 193 : Block->End->Next = Link; + + 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 + +; 194 : Link->Prev = Block->End; + + 0012c 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Link$[rbp] + 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 + +; 195 : +; 196 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 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 15 je SHORT $LN3@NcInsertBl + +; 197 : T->Block = Link->Block; + + 00164 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00168 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0016f 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00173 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00177 eb d9 jmp SHORT $LN2@NcInsertBl +$LN3@NcInsertBl: + +; 198 : +; 199 : return TRUE; + + 00179 b8 01 00 00 00 mov eax, 1 +$LN1@NcInsertBl: + +; 200 : } + + 0017e 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00185 5f pop rdi + 00186 5d pop rbp + 00187 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 + +; 163 : { + +$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 + +; 164 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) + + 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: + +; 165 : return FALSE; + + 00091 33 c0 xor eax, eax + 00093 e9 f7 00 00 00 jmp $LN1@NcInsertBl +$LN5@NcInsertBl: + +; 166 : +; 167 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) + + 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 + +; 168 : NcFixLabelsForBlocks(Link->Block, Block); + + 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] + 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: + +; 169 : +; 170 : if (Link->Next) + + 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 + +; 171 : Link->Next->Prev = Block->End; + + 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: + +; 172 : Block->End->Next = Link->Next; + + 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 + +; 173 : Block->Start->Prev = Link; + + 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 + +; 174 : Link->Next = Block->Start; + + 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 + +; 175 : +; 176 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 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 15 je SHORT $LN3@NcInsertBl + +; 177 : T->Block = Link->Block; + + 00175 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00179 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00180 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00184 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00188 eb d9 jmp SHORT $LN2@NcInsertBl +$LN3@NcInsertBl: + +; 178 : +; 179 : return TRUE; + + 0018a b8 01 00 00 00 mov eax, 1 +$LN1@NcInsertBl: + +; 180 : } + + 0018f 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00196 5f pop rdi + 00197 5d pop rbp + 00198 c3 ret 0 +?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockAfter +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z +_TEXT SEGMENT +T$4 = 8 +Lid$5 = 36 +$T6 = 260 +$T7 = 296 +$T8 = 344 +$T9 = 376 +$T10 = 424 +$T11 = 456 +$T12 = 504 +$T13 = 548 +tv176 = 568 +tv86 = 568 +tv179 = 576 +tv135 = 584 +tv130 = 592 +tv181 = 600 +tv89 = 608 +tv196 = 616 +tv186 = 624 +tv158 = 632 +tv150 = 640 +tv197 = 648 +tv191 = 656 +tv156 = 664 +tv162 = 672 +__$ArrayPad$ = 680 +Block1$ = 720 +Block2$ = 728 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcFixLabelsForBlocks, COMDAT + +; 150 : { + +$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 d8 02 + 00 00 sub rsp, 728 ; 000002d8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 b6 00 00 00 mov ecx, 182 ; 000000b6H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 f8 + 02 00 00 mov rcx, QWORD PTR [rsp+760] + 0002f 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 a8 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00040 c7 85 24 02 00 + 00 00 00 00 00 mov DWORD PTR $T13[rbp], 0 + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 151 : for (PNATIVE_CODE_LINK T = Block2->Start; T; T = T->Next) + + 00056 48 8b 85 d8 02 + 00 00 mov rax, QWORD PTR Block2$[rbp] + 0005d 48 8b 00 mov rax, QWORD PTR [rax] + 00060 48 89 45 08 mov QWORD PTR T$4[rbp], rax + 00064 eb 0b jmp SHORT $LN4@NcFixLabel +$LN2@NcFixLabel: + 00066 48 8b 45 08 mov rax, QWORD PTR T$4[rbp] + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 89 45 08 mov QWORD PTR T$4[rbp], rax +$LN4@NcFixLabel: + 00071 48 83 7d 08 00 cmp QWORD PTR T$4[rbp], 0 + 00076 0f 84 26 02 00 + 00 je $LN3@NcFixLabel + +; 152 : { +; 153 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) + + 0007c 48 8b 45 08 mov rax, QWORD PTR T$4[rbp] + 00080 8b 40 18 mov eax, DWORD PTR [rax+24] + 00083 83 e0 01 and eax, 1 + 00086 85 c0 test eax, eax + 00088 0f 84 64 01 00 + 00 je $LN7@NcFixLabel + 0008e 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR $T7[rbp] + 00095 48 89 85 58 01 + 00 00 mov QWORD PTR $T8[rbp], rax + 0009c 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 000a3 48 83 c0 10 add rax, 16 + 000a7 48 89 85 38 02 + 00 00 mov QWORD PTR tv86[rbp], rax + 000ae 48 8b 95 58 01 + 00 00 mov rdx, QWORD PTR $T8[rbp] + 000b5 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv86[rbp] + 000bc 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 + 000c1 48 89 85 40 02 + 00 00 mov QWORD PTR tv179[rbp], rax + 000c8 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR tv179[rbp] + 000cf 48 89 85 48 02 + 00 00 mov QWORD PTR tv135[rbp], rax + 000d6 48 8d 85 78 01 + 00 00 lea rax, QWORD PTR $T9[rbp] + 000dd 48 89 85 a8 01 + 00 00 mov QWORD PTR $T10[rbp], rax + 000e4 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 000eb 48 83 c0 10 add rax, 16 + 000ef 48 89 85 50 02 + 00 00 mov QWORD PTR tv130[rbp], rax + 000f6 48 8b 95 a8 01 + 00 00 mov rdx, QWORD PTR $T10[rbp] + 000fd 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR tv130[rbp] + 00104 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 + 00109 48 89 85 58 02 + 00 00 mov QWORD PTR tv181[rbp], rax + 00110 48 8b 85 58 02 + 00 00 mov rax, QWORD PTR tv181[rbp] + 00117 48 89 85 60 02 + 00 00 mov QWORD PTR tv89[rbp], rax + 0011e 48 8b 45 08 mov rax, QWORD PTR T$4[rbp] + 00122 48 83 c0 1c add rax, 28 + 00126 4c 8b c8 mov r9, rax + 00129 4c 8b 85 48 02 + 00 00 mov r8, QWORD PTR tv135[rbp] + 00130 48 8b 95 60 02 + 00 00 mov rdx, QWORD PTR tv89[rbp] + 00137 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR $T11[rbp] + 0013e 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> + 00143 48 89 85 68 02 + 00 00 mov QWORD PTR tv196[rbp], rax + 0014a 48 8b 85 68 02 + 00 00 mov rax, QWORD PTR tv196[rbp] + 00151 48 89 85 70 02 + 00 00 mov QWORD PTR tv186[rbp], rax + 00158 8b 85 24 02 00 + 00 mov eax, DWORD PTR $T13[rbp] + 0015e 83 c8 01 or eax, 1 + 00161 89 85 24 02 00 + 00 mov DWORD PTR $T13[rbp], eax + 00167 48 8b 85 70 02 + 00 00 mov rax, QWORD PTR tv186[rbp] + 0016e 48 89 85 78 02 + 00 00 mov QWORD PTR tv158[rbp], rax + 00175 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 0017c 48 83 c0 10 add rax, 16 + 00180 48 89 85 80 02 + 00 00 mov QWORD PTR tv150[rbp], rax + 00187 48 8d 95 f8 01 + 00 00 lea rdx, QWORD PTR $T12[rbp] + 0018e 48 8b 8d 80 02 + 00 00 mov rcx, QWORD PTR tv150[rbp] + 00195 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 + 0019a 48 89 85 88 02 + 00 00 mov QWORD PTR tv197[rbp], rax + 001a1 48 8b 85 88 02 + 00 00 mov rax, QWORD PTR tv197[rbp] + 001a8 48 89 85 90 02 + 00 00 mov QWORD PTR tv191[rbp], rax + 001af 8b 85 24 02 00 + 00 mov eax, DWORD PTR $T13[rbp] + 001b5 83 c8 02 or eax, 2 + 001b8 89 85 24 02 00 + 00 mov DWORD PTR $T13[rbp], eax + 001be 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR tv191[rbp] + 001c5 48 89 85 98 02 + 00 00 mov QWORD PTR tv156[rbp], rax + 001cc 48 8b 95 98 02 + 00 00 mov rdx, QWORD PTR tv156[rbp] + 001d3 48 8b 8d 78 02 + 00 00 mov rcx, QWORD PTR tv158[rbp] + 001da 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!= + 001df 0f b6 c0 movzx eax, al + 001e2 85 c0 test eax, eax + 001e4 74 0c je SHORT $LN7@NcFixLabel + 001e6 c7 85 a0 02 00 + 00 01 00 00 00 mov DWORD PTR tv162[rbp], 1 + 001f0 eb 0a jmp SHORT $LN8@NcFixLabel +$LN7@NcFixLabel: + 001f2 c7 85 a0 02 00 + 00 00 00 00 00 mov DWORD PTR tv162[rbp], 0 +$LN8@NcFixLabel: + 001fc 0f b6 85 a0 02 + 00 00 movzx eax, BYTE PTR tv162[rbp] + 00203 88 85 04 01 00 + 00 mov BYTE PTR $T6[rbp], al + 00209 8b 85 24 02 00 + 00 mov eax, DWORD PTR $T13[rbp] + 0020f 83 e0 02 and eax, 2 + 00212 85 c0 test eax, eax + 00214 74 14 je SHORT $LN15@NcFixLabel + 00216 83 a5 24 02 00 + 00 fd and DWORD PTR $T13[rbp], -3 + 0021d 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR $T12[rbp] + 00224 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00229 90 npad 1 +$LN15@NcFixLabel: + 0022a 8b 85 24 02 00 + 00 mov eax, DWORD PTR $T13[rbp] + 00230 83 e0 01 and eax, 1 + 00233 85 c0 test eax, eax + 00235 74 13 je SHORT $LN16@NcFixLabel + 00237 83 a5 24 02 00 + 00 fe and DWORD PTR $T13[rbp], -2 + 0023e 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR $T11[rbp] + 00245 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN16@NcFixLabel: + 0024a 0f b6 85 04 01 + 00 00 movzx eax, BYTE PTR $T6[rbp] + 00251 85 c0 test eax, eax + 00253 74 48 je SHORT $LN5@NcFixLabel + +; 154 : { +; 155 : ULONG Lid = NcGenUnusedLabelId(Block1); + + 00255 48 8b 8d d0 02 + 00 00 mov rcx, QWORD PTR Block1$[rbp] + 0025c e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00261 89 45 24 mov DWORD PTR Lid$5[rbp], eax + +; 156 : NcChangeLabelId(Block2, T->Label, Lid); + + 00264 44 8b 45 24 mov r8d, DWORD PTR Lid$5[rbp] + 00268 48 8b 45 08 mov rax, QWORD PTR T$4[rbp] + 0026c 8b 50 1c mov edx, DWORD PTR [rax+28] + 0026f 48 8b 8d d8 02 + 00 00 mov rcx, QWORD PTR Block2$[rbp] + 00276 e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId + +; 157 : Block1->LabelIds.push_back(Lid); + + 0027b 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Block1$[rbp] + 00282 48 83 c0 10 add rax, 16 + 00286 48 89 85 38 02 + 00 00 mov QWORD PTR tv176[rbp], rax + 0028d 48 8d 55 24 lea rdx, QWORD PTR Lid$5[rbp] + 00291 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv176[rbp] + 00298 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back +$LN5@NcFixLabel: + +; 158 : } +; 159 : } + + 0029d e9 c4 fd ff ff jmp $LN2@NcFixLabel +$LN3@NcFixLabel: + +; 160 : } + + 002a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 002a6 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z$rtcFrameData + 002ad e8 00 00 00 00 call _RTC_CheckStackVars + 002b2 48 8b 8d a8 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 002b9 48 33 cd xor rcx, rbp + 002bc e8 00 00 00 00 call __security_check_cookie + 002c1 48 8d a5 b8 02 + 00 00 lea rsp, QWORD PTR [rbp+696] + 002c8 5f pop rdi + 002c9 5d pop rbp + 002ca c3 ret 0 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcFixLabelsForBlocks +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +T$4 = 8 +Lid$5 = 36 +$T6 = 260 +$T7 = 296 +$T8 = 344 +$T9 = 376 +$T10 = 424 +$T11 = 456 +$T12 = 504 +$T13 = 548 +tv176 = 568 +tv86 = 568 +tv179 = 576 +tv135 = 584 +tv130 = 592 +tv181 = 600 +tv89 = 608 +tv196 = 616 +tv186 = 624 +tv158 = 632 +tv150 = 640 +tv197 = 648 +tv191 = 656 +tv156 = 664 +tv162 = 672 +__$ArrayPad$ = 680 +Block1$ = 720 +Block2$ = 728 +?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 24 02 00 + 00 mov eax, DWORD PTR $T13[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 24 02 00 + 00 fe and DWORD PTR $T13[rbp], -2 + 00028 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR $T11[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$4 = 8 +Lid$5 = 36 +$T6 = 260 +$T7 = 296 +$T8 = 344 +$T9 = 376 +$T10 = 424 +$T11 = 456 +$T12 = 504 +$T13 = 548 +tv176 = 568 +tv86 = 568 +tv179 = 576 +tv135 = 584 +tv130 = 592 +tv181 = 600 +tv89 = 608 +tv196 = 616 +tv186 = 624 +tv158 = 632 +tv150 = 640 +tv197 = 648 +tv191 = 656 +tv156 = 664 +tv162 = 672 +__$ArrayPad$ = 680 +Block1$ = 720 +Block2$ = 728 +?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 24 02 00 + 00 mov eax, DWORD PTR $T13[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 24 02 00 + 00 fd and DWORD PTR $T13[rbp], -3 + 00028 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR $T12[rbp] + 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN14@dtor$3: + 00034 48 83 c4 28 add rsp, 40 ; 00000028H + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$3 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +T$4 = 8 +Lid$5 = 36 +$T6 = 260 +$T7 = 296 +$T8 = 344 +$T9 = 376 +$T10 = 424 +$T11 = 456 +$T12 = 504 +$T13 = 548 +tv176 = 568 +tv86 = 568 +tv179 = 576 +tv135 = 584 +tv130 = 592 +tv181 = 600 +tv89 = 608 +tv196 = 616 +tv186 = 624 +tv158 = 632 +tv150 = 640 +tv197 = 648 +tv191 = 656 +tv156 = 664 +tv162 = 672 +__$ArrayPad$ = 680 +Block1$ = 720 +Block2$ = 728 +?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 24 02 00 + 00 mov eax, DWORD PTR $T13[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 24 02 00 + 00 fe and DWORD PTR $T13[rbp], -2 + 00028 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR $T11[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$4 = 8 +Lid$5 = 36 +$T6 = 260 +$T7 = 296 +$T8 = 344 +$T9 = 376 +$T10 = 424 +$T11 = 456 +$T12 = 504 +$T13 = 548 +tv176 = 568 +tv86 = 568 +tv179 = 576 +tv135 = 584 +tv130 = 592 +tv181 = 600 +tv89 = 608 +tv196 = 616 +tv186 = 624 +tv158 = 632 +tv150 = 640 +tv197 = 648 +tv191 = 656 +tv156 = 664 +tv162 = 672 +__$ArrayPad$ = 680 +Block1$ = 720 +Block2$ = 728 +?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 24 02 00 + 00 mov eax, DWORD PTR $T13[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 24 02 00 + 00 fd and DWORD PTR $T13[rbp], -3 + 00028 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR $T12[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 +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv81 = 504 +tv159 = 512 +tv130 = 520 +tv93 = 528 +tv161 = 536 +tv84 = 544 +tv166 = 552 +tv163 = 560 +tv153 = 568 +tv145 = 576 +tv167 = 584 +tv165 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcGenUnusedLabelId, COMDAT + +; 133 : { + +$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 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 60 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 134 : ULONG ReturnLabelId = rand(); + + 00047 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 0004d 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax +$LN2@NcGenUnuse: + +; 135 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) + + 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] + 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 tv159[rbp], rax + 0008a 48 8b 85 00 02 + 00 00 mov rax, QWORD PTR tv159[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] + 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 tv161[rbp], rax + 000d2 48 8b 85 18 02 + 00 00 mov rax, QWORD PTR tv161[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 tv166[rbp], rax + 00105 48 8b 85 28 02 + 00 00 mov rax, QWORD PTR tv166[rbp] + 0010c 48 89 85 30 02 + 00 00 mov QWORD PTR tv163[rbp], rax + 00113 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR tv163[rbp] + 0011a 48 89 85 38 02 + 00 00 mov QWORD PTR tv153[rbp], rax + 00121 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00128 48 83 c0 10 add rax, 16 + 0012c 48 89 85 40 02 + 00 00 mov QWORD PTR tv145[rbp], rax + 00133 48 8d 95 d8 01 + 00 00 lea rdx, QWORD PTR $T10[rbp] + 0013a 48 8b 8d 40 02 + 00 00 mov rcx, QWORD PTR tv145[rbp] + 00141 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 00146 48 89 85 48 02 + 00 00 mov QWORD PTR tv167[rbp], rax + 0014d 48 8b 85 48 02 + 00 00 mov rax, QWORD PTR tv167[rbp] + 00154 48 89 85 50 02 + 00 00 mov QWORD PTR tv165[rbp], rax + 0015b 48 8b 85 50 02 + 00 00 mov rax, QWORD PTR tv165[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 + +; 136 : ReturnLabelId = rand(); + + 001a6 ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 001ac 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 001af e9 9c fe ff ff jmp $LN2@NcGenUnuse +$LN3@NcGenUnuse: + +; 137 : return ReturnLabelId; + + 001b4 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] + +; 138 : } + + 001b7 8b f8 mov edi, eax + 001b9 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001bd 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 001c4 e8 00 00 00 00 call _RTC_CheckStackVars + 001c9 8b c7 mov eax, edi + 001cb 48 8b 8d 60 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 001d2 48 33 cd xor rcx, rbp + 001d5 e8 00 00 00 00 call __security_check_cookie + 001da 48 8d a5 78 02 + 00 00 lea rsp, QWORD PTR [rbp+632] + 001e1 5f pop rdi + 001e2 5d pop rbp + 001e3 c3 ret 0 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv81 = 504 +tv159 = 512 +tv130 = 520 +tv93 = 528 +tv161 = 536 +tv84 = 544 +tv166 = 552 +tv163 = 560 +tv153 = 568 +tv145 = 576 +tv167 = 584 +tv165 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv81 = 504 +tv159 = 512 +tv130 = 520 +tv93 = 528 +tv161 = 536 +tv84 = 544 +tv166 = 552 +tv163 = 560 +tv153 = 568 +tv145 = 576 +tv167 = 584 +tv165 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv81 = 504 +tv159 = 512 +tv130 = 520 +tv93 = 528 +tv161 = 536 +tv84 = 544 +tv166 = 552 +tv163 = 560 +tv153 = 568 +tv145 = 576 +tv167 = 584 +tv165 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +ReturnLabelId$ = 4 +$T4 = 228 +$T5 = 264 +$T6 = 312 +$T7 = 344 +$T8 = 392 +$T9 = 424 +$T10 = 472 +tv81 = 504 +tv159 = 512 +tv130 = 520 +tv93 = 528 +tv161 = 536 +tv84 = 544 +tv166 = 552 +tv163 = 560 +tv153 = 568 +tv145 = 576 +tv167 = 584 +tv165 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d d8 01 + 00 00 lea rcx, QWORD PTR $T10[rbp] + 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z +_TEXT SEGMENT +T$1 = 8 +Block$ = 256 +Original$ = 264 +New$ = 272 +?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z PROC ; NcChangeLabelId, COMDAT + +; 141 : { + +$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 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 + +; 142 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 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 3a je SHORT $LN3@NcChangeLa + +; 143 : { +; 144 : if (((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_IS_REL_JMP)) && T->Label == Original) + + 00061 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00065 8b 40 18 mov eax, DWORD PTR [rax+24] + 00068 83 e0 01 and eax, 1 + 0006b 85 c0 test eax, eax + 0006d 75 0e jne SHORT $LN6@NcChangeLa + 0006f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00073 8b 40 18 mov eax, DWORD PTR [rax+24] + 00076 83 e0 02 and eax, 2 + 00079 85 c0 test eax, eax + 0007b 74 1c je SHORT $LN5@NcChangeLa +$LN6@NcChangeLa: + 0007d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00081 8b 8d 08 01 00 + 00 mov ecx, DWORD PTR Original$[rbp] + 00087 39 48 1c cmp DWORD PTR [rax+28], ecx + 0008a 75 0d jne SHORT $LN5@NcChangeLa + +; 145 : T->Label = New; + + 0008c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00090 8b 8d 10 01 00 + 00 mov ecx, DWORD PTR New$[rbp] + 00096 89 48 1c mov DWORD PTR [rax+28], ecx +$LN5@NcChangeLa: + +; 146 : } + + 00099 eb b4 jmp SHORT $LN2@NcChangeLa +$LN3@NcChangeLa: + +; 147 : } + + 0009b 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 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 ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +TotalSize$ = 4 +T$1 = 40 +Block$ = 288 +?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCalcBlockSize, COMDAT + +; 121 : { + +$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 + +; 122 : ULONG TotalSize = 0; + + 00036 c7 45 04 00 00 + 00 00 mov DWORD PTR TotalSize$[rbp], 0 + +; 123 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 0003d 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00044 48 8b 00 mov rax, QWORD PTR [rax] + 00047 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004b eb 0b jmp SHORT $LN4@NcCalcBloc +$LN2@NcCalcBloc: + 0004d 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00051 48 8b 00 mov rax, QWORD PTR [rax] + 00054 48 89 45 28 mov QWORD PTR T$1[rbp], rax +$LN4@NcCalcBloc: + 00058 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0005d 74 23 je SHORT $LN3@NcCalcBloc + +; 124 : { +; 125 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 0005f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00063 8b 40 18 mov eax, DWORD PTR [rax+24] + 00066 83 e0 01 and eax, 1 + 00069 85 c0 test eax, eax + 0006b 74 02 je SHORT $LN5@NcCalcBloc + +; 126 : continue; + + 0006d eb de jmp SHORT $LN2@NcCalcBloc +$LN5@NcCalcBloc: + +; 127 : TotalSize += T->RawDataSize; + + 0006f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00073 8b 40 28 mov eax, DWORD PTR [rax+40] + 00076 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] + 00079 03 c8 add ecx, eax + 0007b 8b c1 mov eax, ecx + 0007d 89 45 04 mov DWORD PTR TotalSize$[rbp], eax + +; 128 : } + + 00080 eb cb jmp SHORT $LN2@NcCalcBloc +$LN3@NcCalcBloc: + +; 129 : return TotalSize; + + 00082 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + +; 130 : } + + 00085 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 +?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCalcBlockSize +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +Link$ = 224 +?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z PROC ; NcUnlink, COMDAT + +; 110 : { + +$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 + +; 111 : if (Link) + + 00036 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 0003e 74 4c je SHORT $LN2@NcUnlink + +; 112 : { +; 113 : if (Link->Next) + + 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 + +; 114 : Link->Next->Prev = Link->Prev; + + 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: + +; 115 : if (Link->Prev) + + 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 + +; 116 : Link->Prev->Next = Link->Next; + + 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: + +; 117 : } +; 118 : } + + 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 + +; 98 : { + +$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 + +; 99 : if (Link1) + + 0003b 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR Link1$[rbp], 0 + 00043 74 5c je SHORT $LN2@NcInsertLi + +; 100 : { +; 101 : Link2->Next = Link1; + + 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 + +; 102 : Link2->Prev = Link1->Prev; + + 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 + +; 103 : Link1->Prev = Link2; + + 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 + +; 104 : if (Link2->Prev) + + 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 + +; 105 : Link2->Prev->Next = Link2; + + 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: + +; 106 : } +; 107 : } + + 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 + +; 86 : { + +$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 + +; 87 : if (Link1) + + 0003b 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR Link1$[rbp], 0 + 00043 74 59 je SHORT $LN2@NcInsertLi + +; 88 : { +; 89 : Link2->Prev = Link1; + + 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 + +; 90 : Link2->Next = Link1->Next; + + 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 + +; 91 : Link1->Next = Link2; + + 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 + +; 92 : if (Link2->Next) + + 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 + +; 93 : Link2->Next->Prev = Link2; + + 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: + +; 94 : } +; 95 : } + + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +Block$ = 224 +Link$ = 232 +?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z PROC ; NcPrependToBlock, COMDAT + +; 66 : { + +$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 + +; 67 : if (!Link) + + 0003b 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 00043 75 05 jne SHORT $LN2@NcPrependT + +; 68 : return; + + 00045 e9 9b 00 00 00 jmp $LN1@NcPrependT +$LN2@NcPrependT: + +; 69 : +; 70 : Link->Block = Block; + + 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 + +; 71 : Link->Next = Block->Start; + + 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 + +; 72 : Link->Prev = NULL; + + 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 + +; 73 : +; 74 : if (!Block->End || !Block->Start) + + 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: + +; 75 : { +; 76 : Block->Start = Block->End = Link; + + 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 + +; 77 : } + + 000bd eb 26 jmp SHORT $LN4@NcPrependT +$LN3@NcPrependT: + +; 78 : else +; 79 : { +; 80 : Block->Start->Prev = Link; + + 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 + +; 81 : Block->Start = Link; + + 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: + +; 82 : } +; 83 : } + + 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 + +; 46 : { + +$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 + +; 47 : if (!Link) + + 0003b 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR Link$[rbp], 0 + 00043 75 05 jne SHORT $LN2@NcAppendTo + +; 48 : return; + + 00045 e9 9d 00 00 00 jmp $LN1@NcAppendTo +$LN2@NcAppendTo: + +; 49 : +; 50 : Link->Block = Block; + + 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 + +; 51 : Link->Prev = Block->End; + + 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 + +; 52 : Link->Next = NULL; + + 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 + +; 53 : +; 54 : if (!Block->End || !Block->Start) + + 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: + +; 55 : { +; 56 : Block->Start = Block->End = Link; + + 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 + +; 57 : } + + 000be eb 27 jmp SHORT $LN4@NcAppendTo +$LN3@NcAppendTo: + +; 58 : else +; 59 : { +; 60 : Block->End->Next = Link; + + 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 + +; 61 : Block->End = Link; + + 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: + +; 62 : } +; 63 : } + + 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 +; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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] + 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 +; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 83 c0 10 add rax, 16 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$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 + +; 40 : { + +$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 > + +; 41 : Start = End = NULL; + + 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 + +; 42 : LabelIds.clear(); + + 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 + +; 43 : } + + 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 + +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1349 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@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 + +; 1343 : constexpr _Ty1& _Get_first() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ PROC ; std::_Vector_val >::_Vector_val >, COMDAT + +; 375 : _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} + +$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 + +; 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 + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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] + 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 + +; 1737 : } + + 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 + +; 1731 : _Alty& _Getal() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 + +; 1733 : } + + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +_TEXT SEGMENT +_Lock$ = 4 +_Pnext$ = 40 +_Pnextptr$4 = 72 +__$ArrayPad$ = 280 +this$ = 320 +_First$ = 328 +_Last$ = 336 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT + +; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range + +$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 + +; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1713 : _Lockit _Lock(_LOCK_DEBUG); + + 00051 ba 03 00 00 00 mov edx, 3 + 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005a ff 15 00 00 00 + 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: + +; 1716 : while (*_Pnext) { + + 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00076 48 83 38 00 cmp QWORD PTR [rax], 0 + 0007a 74 5c je SHORT $LN3@Orphan_ran + +; 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@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 + +; 1703 : [[noreturn]] static void _Xlength() { + +$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 + +; 1704 : _Xlength_error("vector too long"); + + 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: + +; 1705 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +_TEXT SEGMENT +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT + +; 1685 : void _Tidy() noexcept { // free all storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1686 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 70 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1687 : pointer& _Myfirst = _My_data._Myfirst; + + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + +; 1688 : pointer& _Mylast = _My_data._Mylast; + + 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00051 48 83 c0 10 add rax, 16 + 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 1689 : pointer& _Myend = _My_data._Myend; + + 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005d 48 83 c0 18 add rax, 24 + 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + +; 1690 : +; 1691 : _My_data._Orphan_all(); + + 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array + + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 + 00 je $LN2@Tidy + +; 1694 : _Destroy(_Myfirst, _Mylast); + + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 00096 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 02 sar rax, 2 + 000be 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + +; 1696 : +; 1697 : _Myfirst = pointer(); + + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1698 : _Mylast = pointer(); + + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1699 : _Myend = pointer(); + + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: + +; 1700 : } +; 1701 : } + + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_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 + +; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { + +$LN4: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 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 + +; 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] + 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1669 : pointer& _Myfirst = _My_data._Myfirst; + + 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 08 add rax, 8 + 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + +; 1670 : pointer& _Mylast = _My_data._Mylast; + + 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00060 48 83 c0 10 add rax, 16 + 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 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 + +; 1674 : +; 1675 : if (_Myfirst) { // destroy and deallocate old array + + 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00081 48 83 38 00 cmp QWORD PTR [rax], 0 + 00085 74 71 je SHORT $LN2@Change_arr + +; 1676 : _Destroy(_Myfirst, _Mylast); + + 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0008b 4c 8b 00 mov r8, QWORD PTR [rax] + 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00092 48 8b 10 mov rdx, QWORD PTR [rax] + 00095 48 8b 8d 70 01 + 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 + +; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 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: + +; 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 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 + +; 1682 : _Myend = _Newvec + _Newcapacity; + + 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 + +; 1683 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z +_TEXT SEGMENT +_Oldcapacity$ = 8 +_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 + +; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { + +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 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@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity + 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax + +; 1618 : +; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { + + 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_ + +; 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@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ENDP ; std::vector >::_Calculate_growth +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT + +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + +; 1613 : } + + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_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 + +; 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@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_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@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 + +; 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] + 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 > + +; 1598 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT + +; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator + +$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@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 + +; 1493 : auto& _My_data = _Mypair._Myval2; + + 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 02 sar rax, 2 + +; 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@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 + +; 1487 : _NODISCARD size_type max_size() 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 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@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] + +; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1490 : } + + 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@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::max_size +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +_TEXT SEGMENT +_My_data$ = 8 +this$ = 256 +?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::size, COMDAT + +; 1482 : _NODISCARD size_type size() const noexcept { + +$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 + +; 1483 : auto& _My_data = _Mypair._Myval2; + + 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 + +; 1484 : return static_cast(_My_data._Mylast - _My_data._Myfirst); + + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004d 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00051 48 2b c1 sub rax, rcx + 00054 48 c1 f8 02 sar rax, 2 + +; 1485 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +_TEXT SEGMENT +this$ = 224 +?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_end, COMDAT + +; 1469 : pointer _Unchecked_end() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1470 : return _Mypair._Myval2._Mylast; + + 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] + +; 1471 : } + + 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 +?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_end +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ +_TEXT SEGMENT +this$ = 224 +?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_begin, COMDAT + +; 1461 : pointer _Unchecked_begin() noexcept { + +$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 + +; 1462 : return _Mypair._Myval2._Myfirst; + + 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] + +; 1463 : } + + 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 +?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_begin +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +_TEXT SEGMENT +_My_data$ = 8 +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 + +; 1419 : _NODISCARD iterator end() 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 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 + +; 1421 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); + + 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 0004f 48 89 85 d8 00 + 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] + +; 1422 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ +_TEXT SEGMENT +_My_data$ = 8 +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 + +; 1409 : _NODISCARD iterator begin() 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 18 01 + 00 00 sub rsp, 280 ; 00000118H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1410 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 10 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1411 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); + + 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 0004f 48 89 85 d8 00 + 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] + +; 1412 : } + + 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 + +; 1383 : void clear() noexcept { // erase all + +$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 + +; 1385 : pointer& _Myfirst = _My_data._Myfirst; + + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + +; 1386 : pointer& _Mylast = _My_data._Mylast; + + 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00051 48 83 c0 10 add rax, 16 + 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 1387 : +; 1388 : _My_data._Orphan_all(); + + 00059 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005d e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + +; 1389 : _Destroy(_Myfirst, _Mylast); + + 00062 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00066 4c 8b 00 mov r8, QWORD PTR [rax] + 00069 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0006d 48 8b 10 mov rdx, QWORD PTR [rax] + 00070 48 8b 8d 40 01 + 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 + +; 1390 : _Mylast = _Myfirst; + + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 00084 48 8b 09 mov rcx, QWORD PTR [rcx] + 00087 48 89 08 mov QWORD PTR [rax], rcx + +; 1391 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z +_TEXT SEGMENT +this$ = 224 +_Val$ = 232 +?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z PROC ; std::vector >::push_back, COMDAT + +; 716 : void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 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:__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 + +; 718 : } + + 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 +?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ENDP ; std::vector >::push_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT + +; 672 : ~vector() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 673 : _Tidy(); + + 00047 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); + + 00053 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); + + 00073 48 c7 85 04 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } + + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_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 + +; 445 : vector() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 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] + 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><> + +; 446 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); + + 00057 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005e 48 89 85 f8 00 + 00 00 mov QWORD PTR 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 > + +; 447 : } + + 0008f 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 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.27.29110\include\xmemory +; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z +_TEXT SEGMENT +__formal$ = 224 +?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT + +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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 + +; 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@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ENDP ; std::_Default_allocator_traits >::max_size +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@K@std@@QEAAPEAK_K@Z PROC ; std::allocator::allocate, COMDAT + +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { + +$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@$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> + +; 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@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 + +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 804 : } + + 0005a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0?$allocator@K@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0?$allocator@K@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT + +; 795 : constexpr allocator() noexcept {} + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??0?$allocator@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 f0 00 00 00 mov edx, 240 ; 000000f0H + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??1_NATIVE_CODE_LINK@@QEAA@XZ +_TEXT SEGMENT +$T1 = 200 +this$ = 256 +??1_NATIVE_CODE_LINK@@QEAA@XZ PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK, COMDAT + +; 34 : { + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 35 : if (RawData) + + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 + 00042 74 24 je SHORT $LN2@NATIVE_COD + +; 36 : delete RawData; + + 00044 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0004f 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00056 ba 01 00 00 00 mov edx, 1 + 0005b 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 00062 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00067 90 npad 1 +$LN2@NATIVE_COD: + +; 37 : } + + 00068 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0006f 5f pop rdi + 00070 5d pop rbp + 00071 c3 ret 0 +??1_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z +_TEXT SEGMENT +$T1 = 200 +this$ = 256 +F$ = 264 +Rd$ = 272 +Rds$ = 280 +??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT + +; 25 : { + +$LN5: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 0000a 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 + +; 24 : : _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 + +; 26 : Flags = F; + + 00051 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 8b 8d 08 01 00 + 00 mov ecx, DWORD PTR F$[rbp] + 0005e 89 48 18 mov DWORD PTR [rax+24], ecx + +; 27 : RawDataSize = Rds; + + 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 + +; 28 : RawData = new UCHAR[Rds]; + + 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 + +; 29 : if (Rd) + + 00097 48 83 bd 10 01 + 00 00 00 cmp QWORD PTR Rd$[rbp], 0 + 0009f 74 21 je SHORT $LN2@NATIVE_COD + +; 30 : memcpy(RawData, Rd, Rds); + + 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 + 000c1 90 npad 1 +$LN2@NATIVE_COD: + +; 31 : } + + 000c2 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000c9 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000d0 5f pop rdi + 000d1 5d pop rbp + 000d2 c3 ret 0 +??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@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 +?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@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@KPEAXK@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 +?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXK@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@KPEAXK@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; 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 + +; 17 : { + +$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 + +; 16 : : _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 + +; 18 : Block = B; + + 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 + +; 19 : Label = LabelId; + + 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 + +; 20 : Flags = CODE_FLAG_IS_LABEL; + + 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 + +; 21 : } + + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_NATIVE_CODE_LINK@@QEAA@XZ PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK, COMDAT + +; 4 : { + +$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:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : XedDecodedInstZero(&XedInstruction); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 c0 30 add rax, 48 ; 00000030H + 00041 48 8b c8 mov rcx, rax + 00044 e8 00 00 00 00 call xed_decoded_inst_zero + +; 6 : XedDecodedInstSetMode(&XedInstruction, XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b); + + 00049 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00050 48 83 c0 30 add rax, 48 ; 00000030H + 00054 41 b8 08 00 00 + 00 mov r8d, 8 + 0005a ba 01 00 00 00 mov edx, 1 + 0005f 48 8b c8 mov rcx, rax + 00062 e8 00 00 00 00 call xed_decoded_inst_set_mode + +; 7 : Flags = 0UL; + + 00067 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006e c7 40 18 00 00 + 00 00 mov DWORD PTR [rax+24], 0 + +; 8 : Next = Prev = NULL; + + 00075 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007c 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00084 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0008b 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 9 : Block = NULL; + + 00092 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00099 48 c7 40 10 00 + 00 00 00 mov QWORD PTR [rax+16], 0 + +; 10 : Label = 0UL; + + 000a1 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a8 c7 40 1c 00 00 + 00 00 mov DWORD PTR [rax+28], 0 + +; 11 : RawData = NULL; + + 000af 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b6 48 c7 40 20 00 + 00 00 00 mov QWORD PTR [rax+32], 0 + +; 12 : RawDataSize = 0UL; + + 000be 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000c5 c7 40 28 00 00 + 00 00 mov DWORD PTR [rax+40], 0 + +; 13 : } + + 000cc 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d3 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000da 5f pop rdi + 000db 5d pop rbp + 000dc c3 ret 0 +??0_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; COMDAT xed_decoded_inst_get_length +_TEXT SEGMENT +p$ = 224 +xed_decoded_inst_get_length PROC ; COMDAT + +; 282 : xed_decoded_inst_get_length(const xed_decoded_inst_t* p) { + + 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:__F7815311_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 283 : return p->_decoded_length; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 0003d 0f b6 80 a6 00 + 00 00 movzx eax, BYTE PTR [rax+166] + +; 284 : } + + 00044 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 +xed_decoded_inst_get_length ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; COMDAT xed_decoded_inst_set_mode +_TEXT SEGMENT +dstate$ = 8 +__$ArrayPad$ = 216 +p$ = 256 +mmode$ = 264 +stack_addr_width$ = 272 +xed_decoded_inst_set_mode PROC ; COMDAT + +; 259 : { + + 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 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 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 260 : xed_state_t dstate; +; 261 : dstate.mmode = mmode; + + 00050 8b 85 08 01 00 + 00 mov eax, DWORD PTR mmode$[rbp] + 00056 89 45 08 mov DWORD PTR dstate$[rbp], eax + +; 262 : dstate.stack_addr_width = stack_addr_width; + + 00059 8b 85 10 01 00 + 00 mov eax, DWORD PTR stack_addr_width$[rbp] + 0005f 89 45 0c mov DWORD PTR dstate$[rbp+4], eax + +; 263 : xed_operand_values_set_mode(p, &dstate); + + 00062 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] + 00066 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR p$[rbp] + 0006d e8 00 00 00 00 call xed_operand_values_set_mode + +; 264 : } + + 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00076 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:xed_decoded_inst_set_mode$rtcFrameData + 0007d e8 00 00 00 00 call _RTC_CheckStackVars + 00082 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00089 48 33 cd xor rcx, rbp + 0008c e8 00 00 00 00 call __security_check_cookie + 00091 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 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:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; COMDAT xed_decoded_inst_noperands +_TEXT SEGMENT +noperands$ = 4 +p$ = 256 +xed_decoded_inst_noperands PROC ; COMDAT + +; 170 : xed_decoded_inst_noperands(const xed_decoded_inst_t* p) { + + 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:__F7815311_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)); + + 00036 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR p$[rbp] + 0003d e8 00 00 00 00 call xed_decoded_inst_inst + 00042 48 8b c8 mov rcx, rax + 00045 e8 00 00 00 00 call xed_inst_noperands + 0004a 89 45 04 mov DWORD PTR noperands$[rbp], eax + +; 172 : return noperands; + + 0004d 8b 45 04 mov eax, DWORD PTR noperands$[rbp] + +; 173 : } + + 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 +xed_decoded_inst_noperands ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; COMDAT xed_decoded_inst_get_iclass +_TEXT SEGMENT +p$ = 224 +xed_decoded_inst_get_iclass PROC ; COMDAT + +; 75 : xed_decoded_inst_get_iclass( const xed_decoded_inst_t* p){ + + 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:__F7815311_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN4@xed_decode: + +; 76 : xed_assert(p->_inst != 0); + + 00036 33 c0 xor eax, eax + 00038 85 c0 test eax, eax + 0003a 75 fa jne SHORT $LN4@xed_decode + +; 77 : return xed_inst_iclass(p->_inst); + + 0003c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 00043 48 8b 88 a8 00 + 00 00 mov rcx, QWORD PTR [rax+168] + 0004a e8 00 00 00 00 call xed_inst_iclass + +; 78 : } + + 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 +xed_decoded_inst_get_iclass ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; COMDAT xed_decoded_inst_get_category +_TEXT SEGMENT +p$ = 224 +xed_decoded_inst_get_category PROC ; COMDAT + +; 54 : xed_decoded_inst_get_category(const xed_decoded_inst_t* p) { + + 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:__F7815311_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN4@xed_decode: + +; 55 : xed_assert(p->_inst != 0); + + 00036 33 c0 xor eax, eax + 00038 85 c0 test eax, eax + 0003a 75 fa jne SHORT $LN4@xed_decode + +; 56 : return xed_inst_category(p->_inst); + + 0003c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 00043 48 8b 88 a8 00 + 00 00 mov rcx, QWORD PTR [rax+168] + 0004a e8 00 00 00 00 call xed_inst_category + +; 57 : } + + 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 +xed_decoded_inst_get_category ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; COMDAT xed_decoded_inst_inst +_TEXT SEGMENT +p$ = 224 +xed_decoded_inst_inst PROC ; COMDAT + +; 46 : xed_decoded_inst_inst( const xed_decoded_inst_t* p) { + + 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:__F7815311_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 47 : return p->_inst; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 0003d 48 8b 80 a8 00 + 00 00 mov rax, QWORD PTR [rax+168] + +; 48 : } + + 00044 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 +xed_decoded_inst_inst ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; COMDAT xed_inst_noperands +_TEXT SEGMENT +p$ = 224 +xed_inst_noperands PROC ; COMDAT + +; 312 : static XED_INLINE unsigned int xed_inst_noperands(const xed_inst_t* p) { + + 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:__4E05E119_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 313 : return p->_noperands; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] + +; 314 : } + + 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 +xed_inst_noperands ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; COMDAT xed_inst_category +_TEXT SEGMENT +p$ = 224 +xed_inst_category PROC ; COMDAT + +; 297 : static XED_INLINE xed_category_enum_t xed_inst_category(const xed_inst_t* p) { + + 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:__4E05E119_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 298 : return xed_iform_to_category(xed_inst_iform_enum(p)); + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR p$[rbp] + 0003d e8 00 00 00 00 call xed_inst_iform_enum + 00042 8b c8 mov ecx, eax + 00044 e8 00 00 00 00 call xed_iform_to_category + +; 299 : } + + 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 +xed_inst_category ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; COMDAT xed_inst_iclass +_TEXT SEGMENT +p$ = 224 +xed_inst_iclass PROC ; COMDAT + +; 293 : static XED_INLINE xed_iclass_enum_t xed_inst_iclass(const xed_inst_t* p) { + + 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:__4E05E119_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 294 : return xed_iform_to_iclass(xed_inst_iform_enum(p)); + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR p$[rbp] + 0003d e8 00 00 00 00 call xed_inst_iform_enum + 00042 8b c8 mov ecx, eax + 00044 e8 00 00 00 00 call xed_iform_to_iclass + +; 295 : } + + 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 +xed_inst_iclass ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; COMDAT xed_inst_iform_enum +_TEXT SEGMENT +p$ = 224 +xed_inst_iform_enum PROC ; COMDAT + +; 289 : static XED_INLINE xed_iform_enum_t xed_inst_iform_enum(const xed_inst_t* p) { + + 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:__4E05E119_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 290 : return (xed_iform_enum_t)p->_iform_enum; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 0003d 0f b7 40 06 movzx eax, WORD PTR [rax+6] + +; 291 : } + + 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 +xed_inst_iform_enum ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; COMDAT xed_operand_type +_TEXT SEGMENT +p$ = 224 +xed_operand_type PROC ; COMDAT + +; 96 : xed_operand_type(const xed_operand_t* p) { + + 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:__4E05E119_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 97 : return (xed_operand_type_enum_t)p->_type; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR p$[rbp] + 0003d 0f b6 40 04 movzx eax, BYTE PTR [rax+4] + +; 98 : } + + 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 +xed_operand_type ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-iform-map.h +; COMDAT xed_iform_to_iclass +_TEXT SEGMENT +ii$ = 8 +iform$ = 256 +xed_iform_to_iclass PROC ; COMDAT + +; 74 : XED_INLINE xed_iclass_enum_t xed_iform_to_iclass(xed_iform_enum_t iform) { + + 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 00004 55 push rbp + 00005 57 push rdi + 00006 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00012 48 8b fc mov rdi, rsp + 00015 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001f f3 ab rep stosd + 00021 8b 8c 24 28 01 + 00 00 mov ecx, DWORD PTR [rsp+296] + 00028 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__209FD46F_xed-iform-map@h + 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 75 : const xed_iform_info_t* ii = xed_iform_map(iform); + + 00034 8b 8d 00 01 00 + 00 mov ecx, DWORD PTR iform$[rbp] + 0003a e8 00 00 00 00 call xed_iform_map + 0003f 48 89 45 08 mov QWORD PTR ii$[rbp], rax + +; 76 : if (ii) + + 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; + + 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; + + 00057 33 c0 xor eax, eax +$LN1@xed_iform_: + +; 79 : } + + 00059 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 +xed_iform_to_iclass ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ios +; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z +_TEXT SEGMENT +_Iosbase$ = 224 +?hex@std@@YAAEAVios_base@1@AEAV21@@Z PROC ; std::hex, COMDAT + +; 206 : inline ios_base& __CLRCALL_OR_CDECL hex(ios_base& _Iosbase) { // set basefield to hex + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); + + 00036 41 b8 00 0e 00 + 00 mov r8d, 3584 ; 00000e00H + 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H + 00041 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] + 00048 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z + +; 208 : return _Iosbase; + + 0004e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Iosbase$[rbp] + +; 209 : } + + 00055 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 +?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +_TEXT SEGMENT +?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT + +; 400 : _NODISCARD static constexpr int_type eof() noexcept { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 401 : return static_cast(EOF); + + 0002a b8 ff ff ff ff mov eax, -1 + +; 402 : } + + 0002f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00036 5f pop rdi + 00037 5d pop rbp + 00038 c3 ret 0 +?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +_TEXT SEGMENT +tv65 = 192 +_Left$ = 240 +_Right$ = 248 +?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT + +; 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 + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 393 : return _Left == _Right; + + 0003b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Left$[rbp] + 00042 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Right$[rbp] + 00049 8b 09 mov ecx, DWORD PTR [rcx] + 0004b 39 08 cmp DWORD PTR [rax], ecx + 0004d 75 0c jne SHORT $LN3@eq_int_typ + 0004f c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 + 00059 eb 0a jmp SHORT $LN4@eq_int_typ +$LN3@eq_int_typ: + 0005b c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 +$LN4@eq_int_typ: + 00065 0f b6 85 c0 00 + 00 00 movzx eax, BYTE PTR tv65[rbp] + +; 394 : } + + 0006c 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 +?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z +_TEXT SEGMENT +$T1 = 200 +tv78 = 216 +_Obj$ = 256 +<_Args_0>$ = 264 +??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z PROC ; std::_Construct_in_place, COMDAT + +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR _Obj$[rbp] + 00042 e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof + 00047 48 8b d0 mov rdx, rax + 0004a b9 10 00 00 00 mov ecx, 16 + 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00054 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0005b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00062 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward + 00067 48 8b 00 mov rax, QWORD PTR [rax] + 0006a 48 89 85 d8 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 00071 48 8b 95 d8 00 + 00 00 mov rdx, QWORD PTR tv78[rbp] + 00078 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 0007f e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy + 00084 90 npad 1 + +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 00085 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 +??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ENDP ; std::_Construct_in_place +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +_TEXT SEGMENT +_Pnext$1 = 8 +this$ = 256 +?_Orphan_me@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me, COMDAT + +; 1184 : void _Orphan_me() noexcept { + +$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 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 46 00 00 00 mov ecx, 70 ; 00000046H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 38 + 01 00 00 mov rcx, QWORD PTR [rsp+312] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1185 : if (_Myproxy) { // adopted, remove self from list + + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 0f 84 da 00 00 + 00 je $LN10@Orphan_me + +; 1186 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; + + 00047 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 83 c0 08 add rax, 8 + 00055 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax +$LN2@Orphan_me: + +; 1187 : while (*_Pnext && *_Pnext != this) { + + 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 + +; 1188 : _Pnext = &(*_Pnext)->_Mynextiter; + + 00073 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00077 48 8b 00 mov rax, QWORD PTR [rax] + 0007a 48 83 c0 08 add rax, 8 + 0007e 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + +; 1189 : } + + 00082 eb d5 jmp SHORT $LN2@Orphan_me +$LN6@Orphan_me: + +; 1190 : +; 1191 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); + + 00084 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00088 48 83 38 00 cmp QWORD PTR [rax], 0 + 0008c 74 02 je SHORT $LN9@Orphan_me + 0008e eb 6b jmp SHORT $LN12@Orphan_me +$LN9@Orphan_me: + 00090 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ + 00097 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0009c 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000a8 45 33 c9 xor r9d, r9d + 000ab 41 b8 a7 04 00 + 00 mov r8d, 1191 ; 000004a7H + 000b1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000b8 b9 02 00 00 00 mov ecx, 2 + 000bd ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 000c3 83 f8 01 cmp eax, 1 + 000c6 75 03 jne SHORT $LN14@Orphan_me + 000c8 cc int 3 + 000c9 33 c0 xor eax, eax +$LN14@Orphan_me: + 000cb 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000d4 41 b9 a7 04 00 + 00 mov r9d, 1191 ; 000004a7H + 000da 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000e1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ + 000e8 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ + 000ef ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 75 95 jne SHORT $LN9@Orphan_me +$LN12@Orphan_me: + 000fb 33 c0 xor eax, eax + 000fd 85 c0 test eax, eax + 000ff 75 83 jne SHORT $LN6@Orphan_me + +; 1192 : *_Pnext = _Mynextiter; + + 00101 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00105 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0010c 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00110 48 89 08 mov QWORD PTR [rax], rcx + +; 1193 : _Myproxy = nullptr; + + 00113 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0011a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN10@Orphan_me: + +; 1194 : } +; 1195 : } + + 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.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 + +; 1179 : const _Container_base12* _Getcont() const noexcept { + +$LN5: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1180 : return _Myproxy ? _Myproxy->_Mycont : nullptr; + + 00036 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 74 16 je SHORT $LN3@Getcont + 00043 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 8b 00 mov rax, QWORD PTR [rax] + 00050 48 89 85 c0 00 + 00 00 mov QWORD PTR tv68[rbp], rax + 00057 eb 0b jmp SHORT $LN4@Getcont +$LN3@Getcont: + 00059 48 c7 85 c0 00 + 00 00 00 00 00 + 00 mov QWORD PTR tv68[rbp], 0 +$LN4@Getcont: + 00064 48 8b 85 c0 00 + 00 00 mov rax, QWORD PTR tv68[rbp] + +; 1181 : } + + 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 +?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ENDP ; std::_Iterator_base12::_Getcont +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z +_TEXT SEGMENT +_Parent_proxy$5 = 8 +_Lock$6 = 36 +_Lock$7 = 68 +__$ArrayPad$ = 280 +this$ = 320 +_Parent$ = 328 +?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z PROC ; std::_Iterator_base12::_Adopt, COMDAT + +; 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 48 01 + 00 00 sub rsp, 328 ; 00000148H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002f 48 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 + +; 1152 : if (_Parent) { + + 0004c 48 83 bd 48 01 + 00 00 00 cmp QWORD PTR _Parent$[rbp], 0 + 00054 74 75 je SHORT $LN2@Adopt + +; 1153 : // have a parent, do adoption +; 1154 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; + + 00056 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR _Parent$[rbp] + 0005d 48 8b 00 mov rax, QWORD PTR [rax] + 00060 48 89 45 08 mov QWORD PTR _Parent_proxy$5[rbp], rax + +; 1155 : +; 1156 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1157 : if (_Myproxy != _Parent_proxy) { // change parentage + + 00064 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006b 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] + 0006f 48 39 08 cmp QWORD PTR [rax], rcx + 00072 74 55 je SHORT $LN4@Adopt + +; 1158 : _Lockit _Lock(_LOCK_DEBUG); + + 00074 ba 03 00 00 00 mov edx, 3 + 00079 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] + 0007d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1159 : _Orphan_me(); + + 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; + + 0008f 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00096 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] + 0009a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0009e 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1161 : _Parent_proxy->_Myfirstiter = this; + + 000a2 48 8b 45 08 mov rax, QWORD PTR _Parent_proxy$5[rbp] + 000a6 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1162 : _Myproxy = _Parent_proxy; + + 000b1 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b8 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] + 000bc 48 89 08 mov QWORD PTR [rax], rcx + +; 1163 : } + + 000bf 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] + 000c3 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN4@Adopt: + +; 1164 : +; 1165 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1166 : _Myproxy = _Parent_proxy; +; 1167 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1168 : } else { + + 000c9 eb 25 jmp SHORT $LN3@Adopt +$LN2@Adopt: + +; 1169 : // no future parent, just disown current parent +; 1170 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1171 : _Lockit _Lock(_LOCK_DEBUG); + + 000cb ba 03 00 00 00 mov edx, 3 + 000d0 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] + 000d4 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1172 : _Orphan_me(); + + 000da 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000e1 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + +; 1173 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1174 : _Myproxy = nullptr; +; 1175 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1176 : } + + 000e6 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] + 000ea ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN3@Adopt: + +; 1177 : } + + 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.27.29110\include\xmemory +; COMDAT ??1_Iterator_base12@std@@QEAA@XZ +_TEXT SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +??1_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::~_Iterator_base12, COMDAT + +; 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 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 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 + +; 1145 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1146 : _Lockit _Lock(_LOCK_DEBUG); + + 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] + 0005d e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + +; 1148 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1149 : } + + 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.27.29110\include\xmemory +; COMDAT ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z +_TEXT SEGMENT +_Lock$4 = 4 +__$ArrayPad$ = 216 +this$ = 256 +_Right$ = 264 +??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z PROC ; std::_Iterator_base12::operator=, COMDAT + +; 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 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 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 + +; 1128 : if (_Myproxy != _Right._Myproxy) { + + 0004c 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Right$[rbp] + 0005a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005d 48 39 08 cmp QWORD PTR [rax], rcx + 00060 74 4d je SHORT $LN2@operator + +; 1129 : if (_Right._Myproxy) { + + 00062 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 1b je SHORT $LN3@operator + +; 1130 : _Adopt(_Right._Myproxy->_Mycont); + + 0006f 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00076 48 8b 00 mov rax, QWORD PTR [rax] + 00079 48 8b 10 mov rdx, QWORD PTR [rax] + 0007c 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00083 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + +; 1131 : } else { // becoming invalid, disown current parent + + 00088 eb 25 jmp SHORT $LN2@operator +$LN3@operator: + +; 1132 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1133 : _Lockit _Lock(_LOCK_DEBUG); + + 0008a ba 03 00 00 00 mov edx, 3 + 0008f 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 00093 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1134 : _Orphan_me(); + + 00099 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a0 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + +; 1135 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1136 : _Myproxy = nullptr; +; 1137 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1138 : } + + 000a5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000a9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN2@operator: + +; 1139 : } +; 1140 : +; 1141 : return *this; + + 000af 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1142 : } + + 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.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 + +; 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 + 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 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + 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 + +; 1124 : *this = _Right; + + 00058 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Right$[rbp] + 0005f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00066 e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= + +; 1125 : } + + 0006b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00072 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b c3 ret 0 +??0_Iterator_base12@std@@QEAA@AEBU01@@Z ENDP ; std::_Iterator_base12::_Iterator_base12 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0_Iterator_base12@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT + +; 1121 : _Iterator_base12() noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) {} // construct orphaned iterator + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + 00044 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 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 +??0_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::_Iterator_base12 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_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 ??0_Container_base12@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT + +; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + 00044 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 +??0_Container_base12@std@@QEAA@XZ ENDP ; std::_Container_base12::_Container_base12 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.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 + +; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] + 00049 48 89 08 mov QWORD PTR [rax], rcx + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 0005b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ENDP ; std::_Container_proxy::_Container_proxy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +_TEXT SEGMENT +_Ptr_user$ = 8 +_Ptr_container$ = 40 +_Min_back_shift$ = 72 +_Back_shift$ = 104 +_Ptr$ = 352 +_Bytes$ = 360 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT + +; 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 +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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -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 + +; 130 : { + +$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 + +; 130 : { + + 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 + +; 131 : } + + 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 +; COMDAT ??_Gexception@std@@UEAAPEAXI@Z +_TEXT SEGMENT +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 + +; 94 : { + +$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 f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 95 : return _Data._What ? _Data._What : "Unknown exception"; + + 00036 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 14 je SHORT $LN3@what + 00044 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 + 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.27.29110\include\vcruntime_exception.h +; COMDAT ??1exception@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1exception@std@@UEAA@XZ PROC ; std::exception::~exception, COMDAT + +; 89 : { + +$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 + 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 + +; 90 : __std_exception_destroy(&_Data); + + 00047 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 c0 08 add rax, 8 + 00052 48 8b c8 mov rcx, rax + 00055 e8 00 00 00 00 call __std_exception_destroy + 0005a 90 npad 1 + +; 91 : } + + 0005b 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 +??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0exception@std@@QEAA@AEBV01@@Z +_TEXT SEGMENT +this$ = 224 +_Other$ = 232 +??0exception@std@@QEAA@AEBV01@@Z PROC ; std::exception::exception, COMDAT + +; 72 : { + +$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 + 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 + +; 71 : : _Data() + + 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 + +; 73 : __std_exception_copy(&_Other._Data, &_Data); + + 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 + +; 74 : } + + 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 + +; 66 : { + +$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 + +; 65 : : _Data() + + 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 + +; 67 : _Data._What = _Message; + + 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 + +; 68 : } + + 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 + +; 645 : _NODISCARD static constexpr long long(max)() noexcept { + +$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 + +; 646 : return LLONG_MAX; + + 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 +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\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 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] + 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 28 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 957 : int _Result; +; 958 : va_list _ArgList; +; 959 : __crt_va_start(_ArgList, _Format); + + 00056 48 8d 85 58 01 + 00 00 lea rax, QWORD PTR _Format$[rbp+8] + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + +; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); + + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp___acrt_iob_func + 00077 48 89 85 20 01 + 00 00 mov QWORD PTR tv75[rbp], rax + 0007e 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv77[rbp] + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 + 00 00 mov rdx, QWORD PTR _Format$[rbp] + 0008f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR tv75[rbp] + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + +; 961 : __crt_va_end(_ArgList); + + 0009e 48 c7 45 28 00 + 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 + +; 962 : return _Result; + + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + +; 963 : } + + 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 + 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] + 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] + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 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 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 + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); + + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _ArgList$[rbp] + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 + 00 00 mov r9, QWORD PTR _Locale$[rbp] + 0005d 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Format$[rbp] + 00064 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR _Stream$[rbp] + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp___stdio_common_vfprintf + +; 646 : } + + 00074 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 +_vfprintf_l ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h +; COMDAT __local_stdio_printf_options +_TEXT SEGMENT +__local_stdio_printf_options PROC ; COMDAT + +; 90 : { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 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 + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : static unsigned __int64 _OptionsStorage; +; 92 : return &_OptionsStorage; + + 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 : } + + 00031 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +__local_stdio_printf_options ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h +; COMDAT ??2@YAPEAX_KPEAX@Z +_TEXT SEGMENT +_Size$ = 224 +_Where$ = 232 +??2@YAPEAX_KPEAX@Z PROC ; operator new, COMDAT + +; 167 : { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 168 : (void)_Size; +; 169 : return _Where; + + 0003b 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Where$[rbp] + +; 170 : } + + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??2@YAPEAX_KPEAX@Z ENDP ; operator new +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..8558a1e --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Nop.cod @@ -0,0 +1,1833 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__0A9363B8_Nop@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop +PUBLIC ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z ; NcEmitNopGroup +PUBLIC __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN ??2@YAPEAX_K@Z:PROC ; operator new +EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN xed_decode:PROC +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK +EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD imagerel $LN6 + DD imagerel $LN6+243 + DD imagerel $unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA DD imagerel ?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA + DD imagerel ?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA+44 + DD imagerel $unwind$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN10 + DD imagerel $LN10+219 + DD imagerel $unwind$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA + DD imagerel ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 06H + DB 00H + DB 00H + DB 0aaH + DB 02H + DB 'p' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 028H + DD imagerel $stateUnwindMap$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z + DD imagerel $ip2state$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DD 025052811H + DD 010d2312H + DD 070060029H + DD 05005H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 06H + DB 00H + DB 00H + DB 0a0H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 028H + DD imagerel $stateUnwindMap$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ + DD imagerel $ip2state$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 025052f19H + DD 010a230fH + DD 07003002fH + DD 05002H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ + DD 0162H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcName$0 DB 052H ; NcEmitNop + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcVarDesc DD 024H ; NcEmitNop + DD 01H + DQ FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcName$0 + ORG $+48 +?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcFrameData DD 01H ; NcEmitNop + DD 00H + DQ FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z +_TEXT SEGMENT +Block$ = 8 +$T1 = 232 +$T2 = 264 +tv76 = 280 +Count$ = 320 +?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z PROC ; NcEmitNopGroup, COMDAT + +; 12 : { + +$LN10: + 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 00004 55 push rbp + 00005 57 push rdi + 00006 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00012 48 8b fc mov rdi, rsp + 00015 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001f f3 ab rep stosd + 00021 8b 8c 24 68 01 + 00 00 mov ecx, DWORD PTR [rsp+360] + 00028 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 13 : if (Count < 1) + + 00034 83 bd 40 01 00 + 00 01 cmp DWORD PTR Count$[rbp], 1 + 0003b 73 07 jae SHORT $LN4@NcEmitNopG + +; 14 : return NULL; + + 0003d 33 c0 xor eax, eax + 0003f e9 8d 00 00 00 jmp $LN1@NcEmitNopG +$LN4@NcEmitNopG: + +; 15 : +; 16 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; + + 00044 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00049 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0004e 48 89 85 08 01 + 00 00 mov QWORD PTR $T2[rbp], rax + 00055 48 83 bd 08 01 + 00 00 00 cmp QWORD PTR $T2[rbp], 0 + 0005d 74 15 je SHORT $LN7@NcEmitNopG + 0005f 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR $T2[rbp] + 00066 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0006b 48 89 85 18 01 + 00 00 mov QWORD PTR tv76[rbp], rax + 00072 eb 0b jmp SHORT $LN8@NcEmitNopG +$LN7@NcEmitNopG: + 00074 48 c7 85 18 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv76[rbp], 0 +$LN8@NcEmitNopG: + 0007f 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR tv76[rbp] + 00086 48 89 85 e8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0008d 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR $T1[rbp] + 00094 48 89 45 08 mov QWORD PTR Block$[rbp], rax + +; 17 : if (!Block) + + 00098 48 83 7d 08 00 cmp QWORD PTR Block$[rbp], 0 + 0009d 75 04 jne SHORT $LN2@NcEmitNopG + +; 18 : return NULL; + + 0009f 33 c0 xor eax, eax + 000a1 eb 2e jmp SHORT $LN1@NcEmitNopG +$LN2@NcEmitNopG: + +; 19 : +; 20 : while (Count) + + 000a3 83 bd 40 01 00 + 00 00 cmp DWORD PTR Count$[rbp], 0 + 000aa 74 21 je SHORT $LN3@NcEmitNopG + +; 21 : { +; 22 : NcAppendToBlock(Block, NcEmitNop()); + + 000ac e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop + 000b1 48 8b d0 mov rdx, rax + 000b4 48 8b 4d 08 mov rcx, QWORD PTR Block$[rbp] + 000b8 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 23 : Count--; + + 000bd 8b 85 40 01 00 + 00 mov eax, DWORD PTR Count$[rbp] + 000c3 ff c8 dec eax + 000c5 89 85 40 01 00 + 00 mov DWORD PTR Count$[rbp], eax + +; 24 : } + + 000cb eb d6 jmp SHORT $LN2@NcEmitNopG +$LN3@NcEmitNopG: + +; 25 : +; 26 : return Block; + + 000cd 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] +$LN1@NcEmitNopG: + +; 27 : } + + 000d1 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000d8 5f pop rdi + 000d9 5d pop rbp + 000da c3 ret 0 +?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z ENDP ; NcEmitNopGroup +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +Block$ = 8 +$T1 = 232 +$T2 = 264 +tv76 = 280 +Count$ = 320 +?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `NcEmitNopGroup'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR $T2[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `NcEmitNopGroup'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +Block$ = 8 +$T1 = 232 +$T2 = 264 +tv76 = 280 +Count$ = 320 +?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `NcEmitNopGroup'::`1'::dtor$0 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H + 00019 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR $T2[rbp] + 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `NcEmitNopGroup'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ +_TEXT SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ PROC ; NcEmitNop, COMDAT + +; 4 : { + +$LN6: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00025 48 33 c5 xor rax, rbp + 00028 48 89 85 40 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : UCHAR RawData[] = { 0x90 }; + + 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); + + 0003f b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00044 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00049 48 89 85 28 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00050 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00058 74 24 je SHORT $LN3@NcEmitNop + 0005a 41 b9 01 00 00 + 00 mov r9d, 1 + 00060 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00064 ba 04 00 00 00 mov edx, 4 + 00069 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 00070 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00075 48 89 85 38 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 0007c eb 0b jmp SHORT $LN4@NcEmitNop +$LN3@NcEmitNop: + 0007e 48 c7 85 38 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@NcEmitNop: + 00089 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 00090 48 89 85 08 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 00097 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 0009e 48 89 45 28 mov QWORD PTR Link$[rbp], rax + +; 7 : XedDecode(&Link->XedInstruction, Link->RawData, 1); + + 000a2 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000a6 48 83 c0 30 add rax, 48 ; 00000030H + 000aa 41 b8 01 00 00 + 00 mov r8d, 1 + 000b0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000b4 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000b8 48 8b c8 mov rcx, rax + 000bb e8 00 00 00 00 call xed_decode + +; 8 : return Link; + + 000c0 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + +; 9 : } + + 000c4 48 8b f8 mov rdi, rax + 000c7 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000cb 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcFrameData + 000d2 e8 00 00 00 00 call _RTC_CheckStackVars + 000d7 48 8b c7 mov rax, rdi + 000da 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000e1 48 33 cd xor rcx, rbp + 000e4 e8 00 00 00 00 call __security_check_cookie + 000e9 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 000f0 5f pop rdi + 000f1 5d pop rbp + 000f2 c3 ret 0 +?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ENDP ; NcEmitNop +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA PROC ; `NcEmitNop'::`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 28 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??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA ENDP ; `NcEmitNop'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA PROC ; `NcEmitNop'::`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 28 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??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA ENDP ; `NcEmitNop'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..f8a28c7 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Obfuscator.cod @@ -0,0 +1,8 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +END diff --git a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod new file mode 100644 index 0000000..18dfb5f --- /dev/null +++ b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod @@ -0,0 +1,9523 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__BCD1AF07_OpaqueBranching@cpp DB 01H +__BF2A7ACC_vector DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ??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 ??$_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 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ; _NATIVE_CODE_LINK::`scalar deleting destructor' +PUBLIC ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate +PUBLIC ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate +PUBLIC ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size +PUBLIC ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > +PUBLIC ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back +PUBLIC ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size +PUBLIC ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity +PUBLIC ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove +PUBLIC ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 +PUBLIC ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept +PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy +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 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy +PUBLIC ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +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 +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 ?_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 +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 ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass +PUBLIC ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc +PUBLIC ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel +PUBLIC ?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ; ObfGenOpaqueBranch +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@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 ??$?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 ??$_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 ??$_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 ?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 __JustMyCode_Default +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@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string' +PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +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 +EXTRN memmove:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp_rand:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN __imp__CrtDbgReport:PROC +EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC +EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC +EXTRN __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 +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN xed_decode:PROC +EXTRN xed_encoder_request_zero_set_mode:PROC +EXTRN xed_encode:PROC +EXTRN xed_convert_to_encoder_request:PROC +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ??1_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK +EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock +EXTRN ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcPrependToBlock +EXTRN ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcGenUnusedLabelId +EXTRN ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcInsertBlockAfter +EXTRN ?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z:PROC ; NcDeepCopyPartialBlock +EXTRN ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDeleteBlock +EXTRN _CxxThrowException:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN ??_7type_info@@6B@:BYTE ; type_info::`vftable' +EXTRN __ImageBase:BYTE +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??2@YAPEAX_KPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+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+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+139 + DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+146 + DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$??1exception@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 + DD imagerel $LN5+119 + DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 + DD imagerel $LN3+118 + DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 + DD imagerel $LN3+83 + DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 + DD imagerel $LN21+476 + DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 + DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$xed_relbr DD imagerel xed_relbr + 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+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+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+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+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+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$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+202 + DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD imagerel $LN3 + DD imagerel $LN3+88 + DD imagerel $unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+125 + DD imagerel $unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+98 + DD imagerel $unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD imagerel $LN3 + DD imagerel $LN3+120 + DD imagerel $unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD imagerel $LN3 + DD imagerel $LN3+120 + DD imagerel $unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD imagerel $LN3 + DD imagerel $LN3+142 + DD imagerel $unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 + DD imagerel $LN3+108 + DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD imagerel $LN5 + DD imagerel $LN5+200 + DD imagerel $unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD imagerel $LN4 + DD imagerel $LN4+322 + DD imagerel $unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+280 + DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN9 + DD imagerel $LN9+267 + DD imagerel $unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $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$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD imagerel $LN21 + DD imagerel $LN21+284 + DD imagerel $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+607 + DD imagerel $unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD imagerel ?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA + DD imagerel ?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 + DD imagerel $LN11+581 + DD imagerel $unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD imagerel ?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA + DD imagerel ?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN29 + DD imagerel $LN29+1160 + DD imagerel $unwind$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA DD imagerel ?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA + DD imagerel ?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA DD imagerel ?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA + DD imagerel ?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA+44 + DD imagerel $unwind$?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD imagerel $LN4 + DD imagerel $LN4+205 + DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DD imagerel $LN3 + 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@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+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+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+616 + DD imagerel $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA + DD imagerel ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA+94 + DD imagerel $unwind$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$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$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 + DD imagerel $LN5+117 + DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 + DD imagerel $LN4+121 + DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_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+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 $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$??$_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$?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$??$_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+156 + DD imagerel $unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_R1A@?0A@EA@bad_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 ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ +CONST SEGMENT +??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ DB '"' + DB 00H, 'i', 00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H + DB 'd', 00H, ' ', 00H, 'a', 00H, 'r', 00H, 'g', 00H, 'u', 00H, 'm' + DB 00H, 'e', 00H, 'n', 00H, 't', 00H, '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ +CONST SEGMENT +??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H + DB 'd', 00H, 'j', 00H, 'u', 00H, 's', 00H, 't', 00H, '_', 00H, 'm' + DB 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H, 'l', 00H, 'l', 00H + DB 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o' + DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H + DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +CONST SEGMENT +??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' + DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H + DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' + DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H + DB '6', 00H, ')', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H, 'r' + DB 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' ', 00H + DB 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H, ' ' + DB 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o', 00H + DB '\', 00H, '2', 00H, '0', 00H, '1', 00H, '9', 00H, '\', 00H, 'C' + DB 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'u', 00H, 'n', 00H, 'i', 00H + DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' + DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H + DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' + DB 00H, '2', 00H, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H + DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_02DKCKIIND@?$CFs@ +CONST SEGMENT +??_C@_02DKCKIIND@?$CFs@ DB '%s', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BB@FCMFBGOM@invalid?5argument@ +CONST SEGMENT +??_C@_0BB@FCMFBGOM@invalid?5argument@ DB 'invalid argument', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +_DATA ENDS +; COMDAT _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$??$_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$?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 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 +$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H + DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 +$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H + DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?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 +$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@AEBK@Z DD 025052f01H + DD 01132318H + DD 0700c002bH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 060H + DD imagerel $ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD 025052f01H + DD 01132318H + DD 0700c002bH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DB 0aH + DB 00H + DB 00H + DB 'a', 0dH + DB 02H + DB '~' + DB 00H + DB 'B' + DB 04H + DB '~' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DB 04H + DB 0eH + DD imagerel ?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA + DB 036H + DD imagerel ?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DB 028H + DD imagerel $stateUnwindMap$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z + DD imagerel $ip2state$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z DD 025054019H + DD 01132318H + DD 0700c007bH + DD 0500bH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z + DD 03c2H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcName$0 DB 04aH ; ObfGenOpaqueBranch + DB 063H + DB 063H + DB 04cH + DB 061H + DB 062H + DB 065H + DB 06cH + DB 00H + ORG $+7 +?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcName$1 DB 04aH ; ObfGenOpaqueBranch + DB 06dH + DB 070H + DB 04cH + DB 061H + DB 062H + DB 065H + DB 06cH + DB 00H + ORG $+7 +?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcVarDesc DD 084H ; ObfGenOpaqueBranch + DD 04H + DQ FLAT:?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcName$1 + DD 064H + DD 04H + DQ FLAT:?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcName$0 + ORG $+96 +?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcFrameData DD 02H ; ObfGenOpaqueBranch + DD 00H + DQ FLAT:?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H + DB 00H + DB 00H + DB 0a5H, 04H + DB 02H + DB 096H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H + DD imagerel $stateUnwindMap$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z + DD imagerel $ip2state$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H + DD 01123317H + DD 0700b00e0H + DD 05009600aH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z + DD 06f2H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$0 DB 04dH ; ObfGenJmpToLabel + DB 061H + DB 063H + DB 068H + DB 069H + DB 06eH + DB 065H + DB 053H + DB 074H + DB 061H + DB 074H + DB 065H + DB 00H + ORG $+3 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$1 DB 045H ; ObfGenJmpToLabel + DB 06eH + DB 063H + DB 06fH + DB 064H + DB 065H + DB 072H + DB 049H + DB 06eH + DB 073H + DB 074H + DB 072H + DB 075H + DB 063H + DB 074H + DB 069H + DB 06fH + DB 06eH + DB 00H + ORG $+5 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$2 DB 045H ; ObfGenJmpToLabel + DB 06eH + DB 063H + DB 06fH + DB 064H + DB 065H + DB 072H + DB 052H + DB 065H + DB 071H + DB 075H + DB 065H + DB 073H + DB 074H + DB 00H + ORG $+1 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$3 DB 045H ; ObfGenJmpToLabel + DB 06eH + DB 063H + DB 06fH + DB 064H + DB 065H + DB 042H + DB 075H + DB 066H + DB 066H + DB 065H + DB 072H + DB 00H + ORG $+3 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$4 DB 052H ; ObfGenJmpToLabel + DB 065H + DB 074H + DB 075H + DB 072H + DB 06eH + DB 065H + DB 064H + DB 053H + DB 069H + DB 07aH + DB 065H + DB 00H + ORG $+11 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc DD 0324H ; ObfGenJmpToLabel + DD 04H + DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$4 + DD 02f8H + DD 0fH + DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$3 + DD 0220H + DD 0c0H + DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$2 + DD 060H + DD 01a0H + DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$1 + DD 038H + DD 08H + DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$0 + ORG $+240 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData DD 05H ; ObfGenJmpToLabel + DD 00H + DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H + DB 00H + DB 00H + DB 0dH, 05H + DB 02H + DB 096H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H + DD imagerel $stateUnwindMap$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z + DD imagerel $ip2state$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H + DD 01123317H + DD 0700b00e4H + DD 05009600aH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z + DD 0712H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$0 DB 04dH ; ObfGenRandomJcc + DB 061H + DB 063H + DB 068H + DB 069H + DB 06eH + DB 065H + DB 053H + DB 074H + DB 061H + DB 074H + DB 065H + DB 00H + ORG $+3 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$1 DB 045H ; ObfGenRandomJcc + DB 06eH + DB 063H + DB 06fH + DB 064H + DB 065H + DB 072H + DB 049H + DB 06eH + DB 073H + DB 074H + DB 072H + DB 075H + DB 063H + DB 074H + DB 069H + DB 06fH + DB 06eH + DB 00H + ORG $+5 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$2 DB 045H ; ObfGenRandomJcc + DB 06eH + DB 063H + DB 06fH + DB 064H + DB 065H + DB 072H + DB 052H + DB 065H + DB 071H + DB 075H + DB 065H + DB 073H + DB 074H + DB 00H + ORG $+1 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$3 DB 045H ; ObfGenRandomJcc + DB 06eH + DB 063H + DB 06fH + DB 064H + DB 065H + DB 042H + DB 075H + DB 066H + DB 066H + DB 065H + DB 072H + DB 00H + ORG $+3 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$4 DB 052H ; ObfGenRandomJcc + DB 065H + DB 074H + DB 075H + DB 072H + DB 06eH + DB 065H + DB 064H + DB 053H + DB 069H + DB 07aH + DB 065H + DB 00H + ORG $+11 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc DD 0324H ; ObfGenRandomJcc + DD 04H + DQ FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$4 + DD 02f8H + DD 0fH + DQ FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$3 + DD 0220H + DD 0c0H + DQ FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$2 + DD 060H + DD 01a0H + DQ FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$1 + DD 038H + DD 08H + DQ FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcName$0 + ORG $+240 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData DD 05H ; ObfGenRandomJcc + DD 00H + DQ FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$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_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@@QEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025052a19H + 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@@AEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +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 +$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054519H + DD 0118231dH + DD 070110029H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0138H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_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@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range + DD 04H + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 + ORG $+48 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range + DD 00H + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025051e01H + DD 010a230fH + DD 07003001dH + DD 05002H +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$?_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 025052f01H + DD 01132318H + DD 0700c0025H + DD 0500bH +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 +$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 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H + 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 +$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +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 +$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 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +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 0128H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +xed_relbr$rtcName$0 DB 06fH + 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 +; 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\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\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\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\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@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@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 + +; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { + +$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 + +; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 727 : _Alty& _Al = _Getal(); + + 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 + +; 728 : auto& _My_data = _Mypair._Myval2; + + 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 + +; 729 : pointer& _Myfirst = _My_data._Myfirst; + + 0005b 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 0005f 48 83 c0 08 add rax, 8 + 00063 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax + +; 730 : pointer& _Mylast = _My_data._Mylast; + + 00067 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 0006b 48 83 c0 10 add rax, 16 + 0006f 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax + +; 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); + + 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 + +; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); + + 00092 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00096 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 0009a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0009d 48 8b 00 mov rax, QWORD PTR [rax] + 000a0 48 2b c1 sub rax, rcx + 000a3 48 c1 f8 02 sar rax, 2 + 000a7 48 89 85 a8 00 + 00 00 mov QWORD PTR _Oldsize$[rbp], rax + +; 736 : +; 737 : if (_Oldsize == max_size()) { + + 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 + +; 738 : _Xlength(); + + 000c3 e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +$LN2@Emplace_re: + +; 739 : } +; 740 : +; 741 : const size_type _Newsize = _Oldsize + 1; + + 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 + +; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); + + 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 + +; 743 : +; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); + + 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 + +; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; + + 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 + +; 746 : pointer _Constructed_first = _Constructed_last; + + 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 + +; 747 : +; 748 : _TRY_BEGIN +; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); + + 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 + +; 750 : _Constructed_first = _Newvec + _Whereoff; + + 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 + +; 751 : +; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee + + 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0019a 48 8b 00 mov rax, QWORD PTR [rax] + 0019d 48 39 85 58 02 + 00 00 cmp QWORD PTR _Whereptr$[rbp], rax + 001a4 75 23 jne SHORT $LN4@Emplace_re + +; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); + + 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 + +; 754 : } else { // provide basic guarantee + + 001c7 eb 60 jmp SHORT $LN5@Emplace_re +$LN4@Emplace_re: + +; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); + + 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 + +; 756 : _Constructed_first = _Newvec; + + 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 + +; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); + + 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 +_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] +__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 +_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] +__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.27.29110\include\xmemory +; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z +_TEXT SEGMENT +$T1 = 200 +__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 + +; 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 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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 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@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 + +; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 684 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 685 : pointer& _Mylast = _My_data._Mylast; + + 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004a 48 83 c0 10 add rax, 16 + 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + +; 686 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity +; 687 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); + + 00052 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00059 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0005e 48 89 85 18 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 00065 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00069 48 8b 08 mov rcx, QWORD PTR [rax] + 0006c e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00071 48 89 85 20 01 + 00 00 mov QWORD PTR tv79[rbp], rax + 00078 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007f e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00084 48 89 85 28 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0008b 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv81[rbp] + 00092 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00099 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 000a0 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + +; 688 : _Orphan_range(_Mylast, _Mylast); + + 000a5 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000a9 4c 8b 00 mov r8, QWORD PTR [rax] + 000ac 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000b0 48 8b 10 mov rdx, QWORD PTR [rax] + 000b3 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ba e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range + +; 689 : _Ty& _Result = *_Mylast; + + 000bf 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000c3 48 8b 00 mov rax, QWORD PTR [rax] + 000c6 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + +; 690 : ++_Mylast; + + 000ca 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000ce 48 8b 00 mov rax, QWORD PTR [rax] + 000d1 48 83 c0 04 add rax, 4 + 000d5 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] + 000d9 48 89 01 mov QWORD PTR [rcx], rax + +; 691 : #if _HAS_CXX17 +; 692 : return _Result; + + 000dc 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + +; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 694 : (void) _Result; +; 695 : #endif // _HAS_CXX17 +; 696 : } + + 000e0 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000e7 5f pop rdi + 000e8 5d pop rbp + 000e9 c3 ret 0 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits +; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT + +; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1455 : return static_cast<_Ty&&>(_Arg); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1456 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z +_TEXT SEGMENT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv83 = 280 +tv81 = 288 +this$ = 336 +<_Val_0>$ = 344 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z PROC ; std::vector >::emplace_back, COMDAT + +; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { + +$LN4: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 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 + +; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 702 : auto& _My_data = _Mypair._Myval2; + + 0003b 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 703 : pointer& _Mylast = _My_data._Mylast; + + 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0004a 48 83 c0 10 add rax, 16 + 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax + +; 704 : if (_Mylast != _My_data._Myend) { + + 00052 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00056 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 0005a 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] + 0005e 48 39 08 cmp QWORD PTR [rax], rcx + 00061 74 1d je SHORT $LN2@emplace_ba + +; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); + + 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: + +; 706 : } +; 707 : +; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); + + 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 + +; 709 : #if _HAS_CXX17 +; 710 : return _Result; + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] +$LN1@emplace_ba: + +; 711 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 712 : (void) _Result; +; 713 : #endif // _HAS_CXX17 +; 714 : } + + 000c3 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000ca 5f pop rdi + 000cb 5d pop rbp + 000cc c3 ret 0 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ENDP ; std::vector >::emplace_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z +_TEXT SEGMENT +NotTaken$ = 8 +Taken$ = 40 +JccLabel$ = 68 +JmpLabel$ = 100 +Jcc$ = 136 +Jmp$ = 168 +$T5 = 584 +$T6 = 616 +$T7 = 648 +$T8 = 680 +$T9 = 712 +$T10 = 744 +$T11 = 776 +$T12 = 808 +$T13 = 840 +$T14 = 872 +$T15 = 904 +tv214 = 920 +tv204 = 920 +tv189 = 920 +tv171 = 920 +tv165 = 920 +tv159 = 920 +tv150 = 920 +tv144 = 920 +tv134 = 920 +tv128 = 920 +tv84 = 920 +__$ArrayPad$ = 928 +Start$ = 976 +End$ = 984 +?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z PROC ; ObfGenOpaqueBranch, COMDAT + +; 89 : { + +$LN29: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec d8 03 + 00 00 sub rsp, 984 ; 000003d8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 f6 00 00 00 mov ecx, 246 ; 000000f6H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 f8 + 03 00 00 mov rcx, QWORD PTR [rsp+1016] + 0002f 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 a0 03 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 90 : if (!Start || !End || !Start->Block || Start->Block != End->Block) + + 0004c 48 83 bd d0 03 + 00 00 00 cmp QWORD PTR Start$[rbp], 0 + 00054 74 30 je SHORT $LN3@ObfGenOpaq + 00056 48 83 bd d8 03 + 00 00 00 cmp QWORD PTR End$[rbp], 0 + 0005e 74 26 je SHORT $LN3@ObfGenOpaq + 00060 48 8b 85 d0 03 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00067 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 0006c 74 18 je SHORT $LN3@ObfGenOpaq + 0006e 48 8b 85 d0 03 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00075 48 8b 8d d8 03 + 00 00 mov rcx, QWORD PTR End$[rbp] + 0007c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00080 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 00084 74 07 je SHORT $LN2@ObfGenOpaq +$LN3@ObfGenOpaq: + +; 91 : return NULL; + + 00086 33 c0 xor eax, eax + 00088 e9 cc 03 00 00 jmp $LN1@ObfGenOpaq +$LN2@ObfGenOpaq: + +; 92 : +; 93 : PNATIVE_CODE_BLOCK NotTaken = NcDeepCopyPartialBlock(Start, End); + + 0008d 48 8b 95 d8 03 + 00 00 mov rdx, QWORD PTR End$[rbp] + 00094 48 8b 8d d0 03 + 00 00 mov rcx, QWORD PTR Start$[rbp] + 0009b e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ; NcDeepCopyPartialBlock + 000a0 48 89 45 08 mov QWORD PTR NotTaken$[rbp], rax + +; 94 : if (!NotTaken) + + 000a4 48 83 7d 08 00 cmp QWORD PTR NotTaken$[rbp], 0 + 000a9 75 07 jne SHORT $LN4@ObfGenOpaq + +; 95 : { +; 96 : return NULL; + + 000ab 33 c0 xor eax, eax + 000ad e9 a7 03 00 00 jmp $LN1@ObfGenOpaq +$LN4@ObfGenOpaq: + +; 97 : } +; 98 : PNATIVE_CODE_BLOCK Taken = NcDeepCopyPartialBlock(Start, End); + + 000b2 48 8b 95 d8 03 + 00 00 mov rdx, QWORD PTR End$[rbp] + 000b9 48 8b 8d d0 03 + 00 00 mov rcx, QWORD PTR Start$[rbp] + 000c0 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ; NcDeepCopyPartialBlock + 000c5 48 89 45 28 mov QWORD PTR Taken$[rbp], rax + +; 99 : if (!Taken) + + 000c9 48 83 7d 28 00 cmp QWORD PTR Taken$[rbp], 0 + 000ce 75 4a jne SHORT $LN5@ObfGenOpaq + +; 100 : { +; 101 : NcDeleteBlock(NotTaken); + + 000d0 48 8b 4d 08 mov rcx, QWORD PTR NotTaken$[rbp] + 000d4 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 102 : delete NotTaken; + + 000d9 48 8b 45 08 mov rax, QWORD PTR NotTaken$[rbp] + 000dd 48 89 85 48 02 + 00 00 mov QWORD PTR $T5[rbp], rax + 000e4 48 83 bd 48 02 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 000ec 74 1a je SHORT $LN9@ObfGenOpaq + 000ee ba 01 00 00 00 mov edx, 1 + 000f3 48 8b 8d 48 02 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000fa e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 000ff 48 89 85 98 03 + 00 00 mov QWORD PTR tv84[rbp], rax + 00106 eb 0b jmp SHORT $LN10@ObfGenOpaq +$LN9@ObfGenOpaq: + 00108 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv84[rbp], 0 +$LN10@ObfGenOpaq: + +; 103 : return NULL; + + 00113 33 c0 xor eax, eax + 00115 e9 3f 03 00 00 jmp $LN1@ObfGenOpaq +$LN5@ObfGenOpaq: + +; 104 : } +; 105 : +; 106 : ULONG JccLabel = NcGenUnusedLabelId(Start->Block); + + 0011a 48 8b 85 d0 03 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00121 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 00125 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 0012a 89 45 44 mov DWORD PTR JccLabel$[rbp], eax + +; 107 : ULONG JmpLabel = NcGenUnusedLabelId(Start->Block); + + 0012d 48 8b 85 d0 03 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00134 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 00138 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 0013d 89 45 64 mov DWORD PTR JmpLabel$[rbp], eax + +; 108 : Start->Block->LabelIds.push_back(JccLabel); + + 00140 48 8b 85 d0 03 + 00 00 mov rax, QWORD PTR Start$[rbp] + 00147 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0014b 48 83 c0 10 add rax, 16 + 0014f 48 89 85 98 03 + 00 00 mov QWORD PTR tv128[rbp], rax + 00156 48 8d 55 44 lea rdx, QWORD PTR JccLabel$[rbp] + 0015a 48 8b 8d 98 03 + 00 00 mov rcx, QWORD PTR tv128[rbp] + 00161 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + +; 109 : Start->Block->LabelIds.push_back(JmpLabel); + + 00166 48 8b 85 d0 03 + 00 00 mov rax, QWORD PTR Start$[rbp] + 0016d 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00171 48 83 c0 10 add rax, 16 + 00175 48 89 85 98 03 + 00 00 mov QWORD PTR tv134[rbp], rax + 0017c 48 8d 55 64 lea rdx, QWORD PTR JmpLabel$[rbp] + 00180 48 8b 8d 98 03 + 00 00 mov rcx, QWORD PTR tv134[rbp] + 00187 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + +; 110 : +; 111 : PNATIVE_CODE_LINK Jcc = ObfGenRandomJcc(JccLabel); + + 0018c ba 20 00 00 00 mov edx, 32 ; 00000020H + 00191 8b 4d 44 mov ecx, DWORD PTR JccLabel$[rbp] + 00194 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc + 00199 48 89 85 88 00 + 00 00 mov QWORD PTR Jcc$[rbp], rax + +; 112 : if (!Jcc) + + 001a0 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR Jcc$[rbp], 0 + 001a8 0f 85 8d 00 00 + 00 jne $LN6@ObfGenOpaq + +; 113 : { +; 114 : NcDeleteBlock(Taken); + + 001ae 48 8b 4d 28 mov rcx, QWORD PTR Taken$[rbp] + 001b2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 115 : delete Taken; + + 001b7 48 8b 45 28 mov rax, QWORD PTR Taken$[rbp] + 001bb 48 89 85 68 02 + 00 00 mov QWORD PTR $T6[rbp], rax + 001c2 48 83 bd 68 02 + 00 00 00 cmp QWORD PTR $T6[rbp], 0 + 001ca 74 1a je SHORT $LN11@ObfGenOpaq + 001cc ba 01 00 00 00 mov edx, 1 + 001d1 48 8b 8d 68 02 + 00 00 mov rcx, QWORD PTR $T6[rbp] + 001d8 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 001dd 48 89 85 98 03 + 00 00 mov QWORD PTR tv144[rbp], rax + 001e4 eb 0b jmp SHORT $LN12@ObfGenOpaq +$LN11@ObfGenOpaq: + 001e6 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv144[rbp], 0 +$LN12@ObfGenOpaq: + +; 116 : NcDeleteBlock(NotTaken); + + 001f1 48 8b 4d 08 mov rcx, QWORD PTR NotTaken$[rbp] + 001f5 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 117 : delete NotTaken; + + 001fa 48 8b 45 08 mov rax, QWORD PTR NotTaken$[rbp] + 001fe 48 89 85 88 02 + 00 00 mov QWORD PTR $T7[rbp], rax + 00205 48 83 bd 88 02 + 00 00 00 cmp QWORD PTR $T7[rbp], 0 + 0020d 74 1a je SHORT $LN13@ObfGenOpaq + 0020f ba 01 00 00 00 mov edx, 1 + 00214 48 8b 8d 88 02 + 00 00 mov rcx, QWORD PTR $T7[rbp] + 0021b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00220 48 89 85 98 03 + 00 00 mov QWORD PTR tv150[rbp], rax + 00227 eb 0b jmp SHORT $LN14@ObfGenOpaq +$LN13@ObfGenOpaq: + 00229 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv150[rbp], 0 +$LN14@ObfGenOpaq: + +; 118 : return NULL; + + 00234 33 c0 xor eax, eax + 00236 e9 1e 02 00 00 jmp $LN1@ObfGenOpaq +$LN6@ObfGenOpaq: + +; 119 : } +; 120 : PNATIVE_CODE_LINK Jmp = ObfGenJmpToLabel(JmpLabel); + + 0023b ba 20 00 00 00 mov edx, 32 ; 00000020H + 00240 8b 4d 64 mov ecx, DWORD PTR JmpLabel$[rbp] + 00243 e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel + 00248 48 89 85 a8 00 + 00 00 mov QWORD PTR Jmp$[rbp], rax + +; 121 : if (!Jmp) + + 0024f 48 83 bd a8 00 + 00 00 00 cmp QWORD PTR Jmp$[rbp], 0 + 00257 0f 85 ca 00 00 + 00 jne $LN7@ObfGenOpaq + +; 122 : { +; 123 : delete Jcc; + + 0025d 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR Jcc$[rbp] + 00264 48 89 85 a8 02 + 00 00 mov QWORD PTR $T8[rbp], rax + 0026b 48 83 bd a8 02 + 00 00 00 cmp QWORD PTR $T8[rbp], 0 + 00273 74 1a je SHORT $LN15@ObfGenOpaq + 00275 ba 01 00 00 00 mov edx, 1 + 0027a 48 8b 8d a8 02 + 00 00 mov rcx, QWORD PTR $T8[rbp] + 00281 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00286 48 89 85 98 03 + 00 00 mov QWORD PTR tv159[rbp], rax + 0028d eb 0b jmp SHORT $LN16@ObfGenOpaq +$LN15@ObfGenOpaq: + 0028f 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv159[rbp], 0 +$LN16@ObfGenOpaq: + +; 124 : NcDeleteBlock(Taken); + + 0029a 48 8b 4d 28 mov rcx, QWORD PTR Taken$[rbp] + 0029e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 125 : delete Taken; + + 002a3 48 8b 45 28 mov rax, QWORD PTR Taken$[rbp] + 002a7 48 89 85 c8 02 + 00 00 mov QWORD PTR $T9[rbp], rax + 002ae 48 83 bd c8 02 + 00 00 00 cmp QWORD PTR $T9[rbp], 0 + 002b6 74 1a je SHORT $LN17@ObfGenOpaq + 002b8 ba 01 00 00 00 mov edx, 1 + 002bd 48 8b 8d c8 02 + 00 00 mov rcx, QWORD PTR $T9[rbp] + 002c4 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 002c9 48 89 85 98 03 + 00 00 mov QWORD PTR tv165[rbp], rax + 002d0 eb 0b jmp SHORT $LN18@ObfGenOpaq +$LN17@ObfGenOpaq: + 002d2 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv165[rbp], 0 +$LN18@ObfGenOpaq: + +; 126 : NcDeleteBlock(NotTaken); + + 002dd 48 8b 4d 08 mov rcx, QWORD PTR NotTaken$[rbp] + 002e1 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + +; 127 : delete NotTaken; + + 002e6 48 8b 45 08 mov rax, QWORD PTR NotTaken$[rbp] + 002ea 48 89 85 e8 02 + 00 00 mov QWORD PTR $T10[rbp], rax + 002f1 48 83 bd e8 02 + 00 00 00 cmp QWORD PTR $T10[rbp], 0 + 002f9 74 1a je SHORT $LN19@ObfGenOpaq + 002fb ba 01 00 00 00 mov edx, 1 + 00300 48 8b 8d e8 02 + 00 00 mov rcx, QWORD PTR $T10[rbp] + 00307 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0030c 48 89 85 98 03 + 00 00 mov QWORD PTR tv171[rbp], rax + 00313 eb 0b jmp SHORT $LN20@ObfGenOpaq +$LN19@ObfGenOpaq: + 00315 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv171[rbp], 0 +$LN20@ObfGenOpaq: + +; 128 : return NULL; + + 00320 33 c0 xor eax, eax + 00322 e9 32 01 00 00 jmp $LN1@ObfGenOpaq +$LN7@ObfGenOpaq: + +; 129 : } +; 130 : +; 131 : NcPrependToBlock(NotTaken, Jcc); + + 00327 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR Jcc$[rbp] + 0032e 48 8b 4d 08 mov rcx, QWORD PTR NotTaken$[rbp] + 00332 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + +; 132 : NcAppendToBlock(NotTaken, Jmp); + + 00337 48 8b 95 a8 00 + 00 00 mov rdx, QWORD PTR Jmp$[rbp] + 0033e 48 8b 4d 08 mov rcx, QWORD PTR NotTaken$[rbp] + 00342 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 133 : +; 134 : NcPrependToBlock(Taken, new NATIVE_CODE_LINK(JccLabel, Taken)); + + 00347 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0034c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00351 48 89 85 28 03 + 00 00 mov QWORD PTR $T12[rbp], rax + 00358 48 83 bd 28 03 + 00 00 00 cmp QWORD PTR $T12[rbp], 0 + 00360 74 1c je SHORT $LN21@ObfGenOpaq + 00362 4c 8b 45 28 mov r8, QWORD PTR Taken$[rbp] + 00366 8b 55 44 mov edx, DWORD PTR JccLabel$[rbp] + 00369 48 8b 8d 28 03 + 00 00 mov rcx, QWORD PTR $T12[rbp] + 00370 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00375 48 89 85 98 03 + 00 00 mov QWORD PTR tv189[rbp], rax + 0037c eb 0b jmp SHORT $LN22@ObfGenOpaq +$LN21@ObfGenOpaq: + 0037e 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv189[rbp], 0 +$LN22@ObfGenOpaq: + 00389 48 8b 85 98 03 + 00 00 mov rax, QWORD PTR tv189[rbp] + 00390 48 89 85 08 03 + 00 00 mov QWORD PTR $T11[rbp], rax + 00397 48 8b 95 08 03 + 00 00 mov rdx, QWORD PTR $T11[rbp] + 0039e 48 8b 4d 28 mov rcx, QWORD PTR Taken$[rbp] + 003a2 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + +; 135 : NcAppendToBlock(Taken, new NATIVE_CODE_LINK(JmpLabel, Taken)); + + 003a7 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 003ac e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 003b1 48 89 85 68 03 + 00 00 mov QWORD PTR $T14[rbp], rax + 003b8 48 83 bd 68 03 + 00 00 00 cmp QWORD PTR $T14[rbp], 0 + 003c0 74 1c je SHORT $LN23@ObfGenOpaq + 003c2 4c 8b 45 28 mov r8, QWORD PTR Taken$[rbp] + 003c6 8b 55 64 mov edx, DWORD PTR JmpLabel$[rbp] + 003c9 48 8b 8d 68 03 + 00 00 mov rcx, QWORD PTR $T14[rbp] + 003d0 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 003d5 48 89 85 98 03 + 00 00 mov QWORD PTR tv204[rbp], rax + 003dc eb 0b jmp SHORT $LN24@ObfGenOpaq +$LN23@ObfGenOpaq: + 003de 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv204[rbp], 0 +$LN24@ObfGenOpaq: + 003e9 48 8b 85 98 03 + 00 00 mov rax, QWORD PTR tv204[rbp] + 003f0 48 89 85 48 03 + 00 00 mov QWORD PTR $T13[rbp], rax + 003f7 48 8b 95 48 03 + 00 00 mov rdx, QWORD PTR $T13[rbp] + 003fe 48 8b 4d 28 mov rcx, QWORD PTR Taken$[rbp] + 00402 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 136 : +; 137 : NcInsertBlockAfter(NotTaken->End, Taken, FALSE); + + 00407 45 33 c0 xor r8d, r8d + 0040a 48 8b 55 28 mov rdx, QWORD PTR Taken$[rbp] + 0040e 48 8b 45 08 mov rax, QWORD PTR NotTaken$[rbp] + 00412 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00416 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + +; 138 : +; 139 : delete Taken; + + 0041b 48 8b 45 28 mov rax, QWORD PTR Taken$[rbp] + 0041f 48 89 85 88 03 + 00 00 mov QWORD PTR $T15[rbp], rax + 00426 48 83 bd 88 03 + 00 00 00 cmp QWORD PTR $T15[rbp], 0 + 0042e 74 1a je SHORT $LN25@ObfGenOpaq + 00430 ba 01 00 00 00 mov edx, 1 + 00435 48 8b 8d 88 03 + 00 00 mov rcx, QWORD PTR $T15[rbp] + 0043c e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00441 48 89 85 98 03 + 00 00 mov QWORD PTR tv214[rbp], rax + 00448 eb 0b jmp SHORT $LN26@ObfGenOpaq +$LN25@ObfGenOpaq: + 0044a 48 c7 85 98 03 + 00 00 00 00 00 + 00 mov QWORD PTR tv214[rbp], 0 +$LN26@ObfGenOpaq: + +; 140 : return NotTaken; + + 00455 48 8b 45 08 mov rax, QWORD PTR NotTaken$[rbp] +$LN1@ObfGenOpaq: + +; 141 : } + + 00459 48 8b f8 mov rdi, rax + 0045c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00460 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z$rtcFrameData + 00467 e8 00 00 00 00 call _RTC_CheckStackVars + 0046c 48 8b c7 mov rax, rdi + 0046f 48 8b 8d a0 03 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00476 48 33 cd xor rcx, rbp + 00479 e8 00 00 00 00 call __security_check_cookie + 0047e 48 8d a5 b8 03 + 00 00 lea rsp, QWORD PTR [rbp+952] + 00485 5f pop rdi + 00486 5d pop rbp + 00487 c3 ret 0 +?ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z ENDP ; ObfGenOpaqueBranch +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +NotTaken$ = 8 +Taken$ = 40 +JccLabel$ = 68 +JmpLabel$ = 100 +Jcc$ = 136 +Jmp$ = 168 +$T5 = 584 +$T6 = 616 +$T7 = 648 +$T8 = 680 +$T9 = 712 +$T10 = 744 +$T11 = 776 +$T12 = 808 +$T13 = 840 +$T14 = 872 +$T15 = 904 +tv214 = 920 +tv204 = 920 +tv189 = 920 +tv171 = 920 +tv165 = 920 +tv159 = 920 +tv150 = 920 +tv144 = 920 +tv134 = 920 +tv128 = 920 +tv84 = 920 +__$ArrayPad$ = 928 +Start$ = 976 +End$ = 984 +?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA PROC ; `ObfGenOpaqueBranch'::`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 28 03 + 00 00 mov rcx, QWORD PTR $T12[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??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA ENDP ; `ObfGenOpaqueBranch'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +NotTaken$ = 8 +Taken$ = 40 +JccLabel$ = 68 +JmpLabel$ = 100 +Jcc$ = 136 +Jmp$ = 168 +$T5 = 584 +$T6 = 616 +$T7 = 648 +$T8 = 680 +$T9 = 712 +$T10 = 744 +$T11 = 776 +$T12 = 808 +$T13 = 840 +$T14 = 872 +$T15 = 904 +tv214 = 920 +tv204 = 920 +tv189 = 920 +tv171 = 920 +tv165 = 920 +tv159 = 920 +tv150 = 920 +tv144 = 920 +tv134 = 920 +tv128 = 920 +tv84 = 920 +__$ArrayPad$ = 928 +Start$ = 976 +End$ = 984 +?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA PROC ; `ObfGenOpaqueBranch'::`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 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00019 48 8b 8d 68 03 + 00 00 mov rcx, QWORD PTR $T14[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??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA ENDP ; `ObfGenOpaqueBranch'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +NotTaken$ = 8 +Taken$ = 40 +JccLabel$ = 68 +JmpLabel$ = 100 +Jcc$ = 136 +Jmp$ = 168 +$T5 = 584 +$T6 = 616 +$T7 = 648 +$T8 = 680 +$T9 = 712 +$T10 = 744 +$T11 = 776 +$T12 = 808 +$T13 = 840 +$T14 = 872 +$T15 = 904 +tv214 = 920 +tv204 = 920 +tv189 = 920 +tv171 = 920 +tv165 = 920 +tv159 = 920 +tv150 = 920 +tv144 = 920 +tv134 = 920 +tv128 = 920 +tv84 = 920 +__$ArrayPad$ = 928 +Start$ = 976 +End$ = 984 +?dtor$0@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA PROC ; `ObfGenOpaqueBranch'::`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 28 03 + 00 00 mov rcx, QWORD PTR $T12[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??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA ENDP ; `ObfGenOpaqueBranch'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +NotTaken$ = 8 +Taken$ = 40 +JccLabel$ = 68 +JmpLabel$ = 100 +Jcc$ = 136 +Jmp$ = 168 +$T5 = 584 +$T6 = 616 +$T7 = 648 +$T8 = 680 +$T9 = 712 +$T10 = 744 +$T11 = 776 +$T12 = 808 +$T13 = 840 +$T14 = 872 +$T15 = 904 +tv214 = 920 +tv204 = 920 +tv189 = 920 +tv171 = 920 +tv165 = 920 +tv159 = 920 +tv150 = 920 +tv144 = 920 +tv134 = 920 +tv128 = 920 +tv84 = 920 +__$ArrayPad$ = 928 +Start$ = 976 +End$ = 984 +?dtor$1@?0??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA PROC ; `ObfGenOpaqueBranch'::`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 ba f0 00 00 00 mov edx, 240 ; 000000f0H + 00019 48 8b 8d 68 03 + 00 00 mov rcx, QWORD PTR $T14[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??ObfGenOpaqueBranch@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@0@Z@4HA ENDP ; `ObfGenOpaqueBranch'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z +_TEXT SEGMENT +MachineState$ = 8 +EncoderInstruction$ = 48 +EncoderRequest$ = 496 +EncodeBuffer$ = 712 +ReturnedSize$ = 756 +Link$ = 792 +$T8 = 1400 +$T9 = 1480 +$T10 = 1560 +$T11 = 1592 +$T12 = 1624 +$T13 = 1664 +tv144 = 1720 +tv132 = 1720 +__$ArrayPad$ = 1728 +LabelId$ = 1776 +DisplacementWidth$ = 1784 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z PROC ; ObfGenJmpToLabel, COMDAT + +; 58 : { + +$LN11: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 00008 55 push rbp + 00009 56 push rsi + 0000a 57 push rdi + 0000b 48 81 ec 00 07 + 00 00 sub rsp, 1792 ; 00000700H + 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00017 48 8b fc mov rdi, rsp + 0001a b9 c0 01 00 00 mov ecx, 448 ; 000001c0H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 8b 8c 24 28 07 + 00 00 mov ecx, DWORD PTR [rsp+1832] + 0002d 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 c0 06 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 59 : XED_STATE MachineState; +; 60 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; + + 0004a c7 45 08 01 00 + 00 00 mov DWORD PTR MachineState$[rbp], 1 + +; 61 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; + + 00051 c7 45 0c 08 00 + 00 00 mov DWORD PTR MachineState$[rbp+4], 8 + +; 62 : XED_ENCODER_INSTRUCTION EncoderInstruction; +; 63 : XED_ENCODER_REQUEST EncoderRequest; +; 64 : UCHAR EncodeBuffer[15]; +; 65 : UINT ReturnedSize; +; 66 : +; 67 : XedInst1(&EncoderInstruction, MachineState, XED_ICLASS_JMP, DisplacementWidth, XedRelBr(0, DisplacementWidth)); + + 00058 44 8b 85 f8 06 + 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] + 0005f 33 d2 xor edx, edx + 00061 48 8d 8d c8 05 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 00068 e8 00 00 00 00 call xed_relbr + 0006d 48 8d 8d 78 05 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 00074 48 8b f9 mov rdi, rcx + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 48 8d 85 80 06 + 00 00 lea rax, QWORD PTR $T13[rbp] + 00088 48 8d 8d 78 05 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 0008f 48 8b f8 mov rdi, rax + 00092 48 8b f1 mov rsi, rcx + 00095 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009a f3 a4 rep movsb + 0009c 48 8d 85 80 06 + 00 00 lea rax, QWORD PTR $T13[rbp] + 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000a8 44 8b 8d f8 06 + 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] + 000af 41 b8 3c 01 00 + 00 mov r8d, 316 ; 0000013cH + 000b5 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] + 000b9 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000bd e8 00 00 00 00 call xed_inst1 + +; 68 : +; 69 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); + + 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] + 000cd e8 00 00 00 00 call xed_encoder_request_zero_set_mode + +; 70 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) + + 000d2 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000d6 48 8d 8d f0 01 + 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] + 000dd e8 00 00 00 00 call xed_convert_to_encoder_request + 000e2 85 c0 test eax, eax + 000e4 75 07 jne SHORT $LN2@ObfGenJmpT + +; 71 : return NULL; + + 000e6 33 c0 xor eax, eax + 000e8 e9 28 01 00 00 jmp $LN1@ObfGenJmpT +$LN2@ObfGenJmpT: + +; 72 : +; 73 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) + + 000ed 4c 8d 8d f4 02 + 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] + 000f4 41 b8 0f 00 00 + 00 mov r8d, 15 + 000fa 48 8d 95 c8 02 + 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] + 00101 48 8d 8d f0 01 + 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] + 00108 e8 00 00 00 00 call xed_encode + 0010d 85 c0 test eax, eax + 0010f 74 07 je SHORT $LN3@ObfGenJmpT + +; 74 : return NULL; + + 00111 33 c0 xor eax, eax + 00113 e9 fd 00 00 00 jmp $LN1@ObfGenJmpT +$LN3@ObfGenJmpT: + +; 75 : +; 76 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); + + 00118 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0011d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00122 48 89 85 38 06 + 00 00 mov QWORD PTR $T11[rbp], rax + 00129 48 83 bd 38 06 + 00 00 00 cmp QWORD PTR $T11[rbp], 0 + 00131 74 28 je SHORT $LN6@ObfGenJmpT + 00133 44 8b 8d f4 02 + 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] + 0013a 4c 8d 85 c8 02 + 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] + 00141 ba 04 00 00 00 mov edx, 4 + 00146 48 8b 8d 38 06 + 00 00 mov rcx, QWORD PTR $T11[rbp] + 0014d e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00152 48 89 85 b8 06 + 00 00 mov QWORD PTR tv132[rbp], rax + 00159 eb 0b jmp SHORT $LN7@ObfGenJmpT +$LN6@ObfGenJmpT: + 0015b 48 c7 85 b8 06 + 00 00 00 00 00 + 00 mov QWORD PTR tv132[rbp], 0 +$LN7@ObfGenJmpT: + 00166 48 8b 85 b8 06 + 00 00 mov rax, QWORD PTR tv132[rbp] + 0016d 48 89 85 18 06 + 00 00 mov QWORD PTR $T10[rbp], rax + 00174 48 8b 85 18 06 + 00 00 mov rax, QWORD PTR $T10[rbp] + 0017b 48 89 85 18 03 + 00 00 mov QWORD PTR Link$[rbp], rax + +; 77 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) + + 00182 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00189 48 83 c0 30 add rax, 48 ; 00000030H + 0018d 48 8b 8d 18 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 00194 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00198 48 8b 8d 18 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 0019f 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001a3 48 8b c8 mov rcx, rax + 001a6 e8 00 00 00 00 call xed_decode + 001ab 85 c0 test eax, eax + 001ad 74 41 je SHORT $LN4@ObfGenJmpT + +; 78 : { +; 79 : delete Link; + + 001af 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 001b6 48 89 85 58 06 + 00 00 mov QWORD PTR $T12[rbp], rax + 001bd 48 83 bd 58 06 + 00 00 00 cmp QWORD PTR $T12[rbp], 0 + 001c5 74 1a je SHORT $LN8@ObfGenJmpT + 001c7 ba 01 00 00 00 mov edx, 1 + 001cc 48 8b 8d 58 06 + 00 00 mov rcx, QWORD PTR $T12[rbp] + 001d3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001d8 48 89 85 b8 06 + 00 00 mov QWORD PTR tv144[rbp], rax + 001df eb 0b jmp SHORT $LN9@ObfGenJmpT +$LN8@ObfGenJmpT: + 001e1 48 c7 85 b8 06 + 00 00 00 00 00 + 00 mov QWORD PTR tv144[rbp], 0 +$LN9@ObfGenJmpT: + +; 80 : return NULL; + + 001ec 33 c0 xor eax, eax + 001ee eb 25 jmp SHORT $LN1@ObfGenJmpT +$LN4@ObfGenJmpT: + +; 81 : } +; 82 : Link->Label = LabelId; + + 001f0 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 001f7 8b 8d f0 06 00 + 00 mov ecx, DWORD PTR LabelId$[rbp] + 001fd 89 48 1c mov DWORD PTR [rax+28], ecx + +; 83 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); + + 00200 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00207 c7 40 18 06 00 + 00 00 mov DWORD PTR [rax+24], 6 + +; 84 : +; 85 : return Link; + + 0020e 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] +$LN1@ObfGenJmpT: + +; 86 : } + + 00215 48 8b f8 mov rdi, rax + 00218 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0021c 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData + 00223 e8 00 00 00 00 call _RTC_CheckStackVars + 00228 48 8b c7 mov rax, rdi + 0022b 48 8b 8d c0 06 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00232 48 33 cd xor rcx, rbp + 00235 e8 00 00 00 00 call __security_check_cookie + 0023a 48 8d a5 d0 06 + 00 00 lea rsp, QWORD PTR [rbp+1744] + 00241 5f pop rdi + 00242 5e pop rsi + 00243 5d pop rbp + 00244 c3 ret 0 +?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenJmpToLabel +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +MachineState$ = 8 +EncoderInstruction$ = 48 +EncoderRequest$ = 496 +EncodeBuffer$ = 712 +ReturnedSize$ = 756 +Link$ = 792 +$T8 = 1400 +$T9 = 1480 +$T10 = 1560 +$T11 = 1592 +$T12 = 1624 +$T13 = 1664 +tv144 = 1720 +tv132 = 1720 +__$ArrayPad$ = 1728 +LabelId$ = 1776 +DisplacementWidth$ = 1784 +?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA PROC ; `ObfGenJmpToLabel'::`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 f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?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 +; COMDAT text$x +text$x SEGMENT +MachineState$ = 8 +EncoderInstruction$ = 48 +EncoderRequest$ = 496 +EncodeBuffer$ = 712 +ReturnedSize$ = 756 +Link$ = 792 +$T8 = 1400 +$T9 = 1480 +$T10 = 1560 +$T11 = 1592 +$T12 = 1624 +$T13 = 1664 +tv144 = 1720 +tv132 = 1720 +__$ArrayPad$ = 1728 +LabelId$ = 1776 +DisplacementWidth$ = 1784 +?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA PROC ; `ObfGenJmpToLabel'::`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 f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenJmpToLabel'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z +_TEXT SEGMENT +MachineState$ = 8 +EncoderInstruction$ = 48 +EncoderRequest$ = 496 +EncodeBuffer$ = 712 +ReturnedSize$ = 756 +Link$ = 792 +$T8 = 1400 +$T9 = 1480 +$T10 = 1560 +$T11 = 1592 +$T12 = 1624 +$T13 = 1656 +$T14 = 1696 +tv77 = 1748 +tv148 = 1752 +tv136 = 1752 +__$ArrayPad$ = 1760 +LabelId$ = 1808 +DisplacementWidth$ = 1816 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z PROC ; ObfGenRandomJcc, COMDAT + +; 27 : { + +$LN11: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 00008 55 push rbp + 00009 56 push rsi + 0000a 57 push rdi + 0000b 48 81 ec 20 07 + 00 00 sub rsp, 1824 ; 00000720H + 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00017 48 8b fc mov rdi, rsp + 0001a b9 c8 01 00 00 mov ecx, 456 ; 000001c8H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 8b 8c 24 48 07 + 00 00 mov ecx, DWORD PTR [rsp+1864] + 0002d 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 e0 06 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 28 : XED_STATE MachineState; +; 29 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; + + 0004a c7 45 08 01 00 + 00 00 mov DWORD PTR MachineState$[rbp], 1 + +; 30 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; + + 00051 c7 45 0c 08 00 + 00 00 mov DWORD PTR MachineState$[rbp+4], 8 + +; 31 : XED_ENCODER_INSTRUCTION EncoderInstruction; +; 32 : XED_ENCODER_REQUEST EncoderRequest; +; 33 : UCHAR EncodeBuffer[15]; +; 34 : UINT ReturnedSize; +; 35 : +; 36 : XedInst1(&EncoderInstruction, MachineState, ObfGetRandomJccClass(), DisplacementWidth, XedRelBr(0, DisplacementWidth)); + + 00058 44 8b 85 18 07 + 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] + 0005f 33 d2 xor edx, edx + 00061 48 8d 8d c8 05 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 00068 e8 00 00 00 00 call xed_relbr + 0006d 48 8d 8d 78 05 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 00074 48 8b f9 mov rdi, rcx + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass + 00086 89 85 d4 06 00 + 00 mov DWORD PTR tv77[rbp], eax + 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 + 00097 48 8d 85 a0 06 + 00 00 lea rax, QWORD PTR $T14[rbp] + 0009e 48 8d 8d 78 05 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 000a5 48 8b f8 mov rdi, rax + 000a8 48 8b f1 mov rsi, rcx + 000ab b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b0 f3 a4 rep movsb + 000b2 48 8d 85 a0 06 + 00 00 lea rax, QWORD PTR $T14[rbp] + 000b9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000be 44 8b 8d 18 07 + 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] + 000c5 44 8b 85 d4 06 + 00 00 mov r8d, DWORD PTR tv77[rbp] + 000cc 48 8b 95 18 06 + 00 00 mov rdx, QWORD PTR $T10[rbp] + 000d3 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000d7 e8 00 00 00 00 call xed_inst1 + +; 37 : +; 38 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); + + 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] + 000e7 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + +; 39 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) + + 000ec 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000f0 48 8d 8d f0 01 + 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] + 000f7 e8 00 00 00 00 call xed_convert_to_encoder_request + 000fc 85 c0 test eax, eax + 000fe 75 07 jne SHORT $LN2@ObfGenRand + +; 40 : return NULL; + + 00100 33 c0 xor eax, eax + 00102 e9 28 01 00 00 jmp $LN1@ObfGenRand +$LN2@ObfGenRand: + +; 41 : +; 42 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) + + 00107 4c 8d 8d f4 02 + 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] + 0010e 41 b8 0f 00 00 + 00 mov r8d, 15 + 00114 48 8d 95 c8 02 + 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] + 0011b 48 8d 8d f0 01 + 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] + 00122 e8 00 00 00 00 call xed_encode + 00127 85 c0 test eax, eax + 00129 74 07 je SHORT $LN3@ObfGenRand + +; 43 : return NULL; + + 0012b 33 c0 xor eax, eax + 0012d e9 fd 00 00 00 jmp $LN1@ObfGenRand +$LN3@ObfGenRand: + +; 44 : +; 45 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); + + 00132 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00137 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0013c 48 89 85 58 06 + 00 00 mov QWORD PTR $T12[rbp], rax + 00143 48 83 bd 58 06 + 00 00 00 cmp QWORD PTR $T12[rbp], 0 + 0014b 74 28 je SHORT $LN6@ObfGenRand + 0014d 44 8b 8d f4 02 + 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] + 00154 4c 8d 85 c8 02 + 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] + 0015b ba 04 00 00 00 mov edx, 4 + 00160 48 8b 8d 58 06 + 00 00 mov rcx, QWORD PTR $T12[rbp] + 00167 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0016c 48 89 85 d8 06 + 00 00 mov QWORD PTR tv136[rbp], rax + 00173 eb 0b jmp SHORT $LN7@ObfGenRand +$LN6@ObfGenRand: + 00175 48 c7 85 d8 06 + 00 00 00 00 00 + 00 mov QWORD PTR tv136[rbp], 0 +$LN7@ObfGenRand: + 00180 48 8b 85 d8 06 + 00 00 mov rax, QWORD PTR tv136[rbp] + 00187 48 89 85 38 06 + 00 00 mov QWORD PTR $T11[rbp], rax + 0018e 48 8b 85 38 06 + 00 00 mov rax, QWORD PTR $T11[rbp] + 00195 48 89 85 18 03 + 00 00 mov QWORD PTR Link$[rbp], rax + +; 46 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) + + 0019c 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 001a3 48 83 c0 30 add rax, 48 ; 00000030H + 001a7 48 8b 8d 18 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 001ae 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001b2 48 8b 8d 18 03 + 00 00 mov rcx, QWORD PTR Link$[rbp] + 001b9 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001bd 48 8b c8 mov rcx, rax + 001c0 e8 00 00 00 00 call xed_decode + 001c5 85 c0 test eax, eax + 001c7 74 41 je SHORT $LN4@ObfGenRand + +; 47 : { +; 48 : delete Link; + + 001c9 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 001d0 48 89 85 78 06 + 00 00 mov QWORD PTR $T13[rbp], rax + 001d7 48 83 bd 78 06 + 00 00 00 cmp QWORD PTR $T13[rbp], 0 + 001df 74 1a je SHORT $LN8@ObfGenRand + 001e1 ba 01 00 00 00 mov edx, 1 + 001e6 48 8b 8d 78 06 + 00 00 mov rcx, QWORD PTR $T13[rbp] + 001ed e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001f2 48 89 85 d8 06 + 00 00 mov QWORD PTR tv148[rbp], rax + 001f9 eb 0b jmp SHORT $LN9@ObfGenRand +$LN8@ObfGenRand: + 001fb 48 c7 85 d8 06 + 00 00 00 00 00 + 00 mov QWORD PTR tv148[rbp], 0 +$LN9@ObfGenRand: + +; 49 : return NULL; + + 00206 33 c0 xor eax, eax + 00208 eb 25 jmp SHORT $LN1@ObfGenRand +$LN4@ObfGenRand: + +; 50 : } +; 51 : Link->Label = LabelId; + + 0020a 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00211 8b 8d 10 07 00 + 00 mov ecx, DWORD PTR LabelId$[rbp] + 00217 89 48 1c mov DWORD PTR [rax+28], ecx + +; 52 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); + + 0021a 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] + 00221 c7 40 18 06 00 + 00 00 mov DWORD PTR [rax+24], 6 + +; 53 : +; 54 : return Link; + + 00228 48 8b 85 18 03 + 00 00 mov rax, QWORD PTR Link$[rbp] +$LN1@ObfGenRand: + +; 55 : } + + 0022f 48 8b f8 mov rdi, rax + 00232 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00236 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData + 0023d e8 00 00 00 00 call _RTC_CheckStackVars + 00242 48 8b c7 mov rax, rdi + 00245 48 8b 8d e0 06 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0024c 48 33 cd xor rcx, rbp + 0024f e8 00 00 00 00 call __security_check_cookie + 00254 48 8d a5 f0 06 + 00 00 lea rsp, QWORD PTR [rbp+1776] + 0025b 5f pop rdi + 0025c 5e pop rsi + 0025d 5d pop rbp + 0025e c3 ret 0 +?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenRandomJcc +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +MachineState$ = 8 +EncoderInstruction$ = 48 +EncoderRequest$ = 496 +EncodeBuffer$ = 712 +ReturnedSize$ = 756 +Link$ = 792 +$T8 = 1400 +$T9 = 1480 +$T10 = 1560 +$T11 = 1592 +$T12 = 1624 +$T13 = 1656 +$T14 = 1696 +tv77 = 1748 +tv148 = 1752 +tv136 = 1752 +__$ArrayPad$ = 1760 +LabelId$ = 1808 +DisplacementWidth$ = 1816 +?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA PROC ; `ObfGenRandomJcc'::`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 f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?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 +; COMDAT text$x +text$x SEGMENT +MachineState$ = 8 +EncoderInstruction$ = 48 +EncoderRequest$ = 496 +EncodeBuffer$ = 712 +ReturnedSize$ = 756 +Link$ = 792 +$T8 = 1400 +$T9 = 1480 +$T10 = 1560 +$T11 = 1592 +$T12 = 1624 +$T13 = 1656 +$T14 = 1696 +tv77 = 1748 +tv148 = 1752 +tv136 = 1752 +__$ArrayPad$ = 1760 +LabelId$ = 1808 +DisplacementWidth$ = 1816 +?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA PROC ; `ObfGenRandomJcc'::`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 f0 00 00 00 mov edx, 240 ; 000000f0H + 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 + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenRandomJcc'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ +_TEXT SEGMENT +tv66 = 192 +?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ PROC ; ObfGetRandomJccClass, COMDAT + +; 4 : { + +$LN21: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001c f3 ab rep stosd + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : switch (rand() % 15) + + 0002a ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 00030 99 cdq + 00031 b9 0f 00 00 00 mov ecx, 15 + 00036 f7 f9 idiv ecx + 00038 8b c2 mov eax, edx + 0003a 89 85 c0 00 00 + 00 mov DWORD PTR tv66[rbp], eax + 00040 83 bd c0 00 00 + 00 0e cmp DWORD PTR tv66[rbp], 14 + 00047 0f 87 83 00 00 + 00 ja $LN2@ObfGetRand + 0004d 48 63 85 c0 00 + 00 00 movsxd rax, DWORD PTR tv66[rbp] + 00054 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__ImageBase + 0005b 8b 84 81 00 00 + 00 00 mov eax, DWORD PTR $LN20@ObfGetRand[rcx+rax*4] + 00062 48 03 c1 add rax, rcx + 00065 ff e0 jmp rax +$LN4@ObfGetRand: + +; 6 : { +; 7 : case 0: return XED_ICLASS_JL; + + 00067 b8 3a 01 00 00 mov eax, 314 ; 0000013aH + 0006c eb 67 jmp SHORT $LN1@ObfGetRand +$LN5@ObfGetRand: + +; 8 : case 1: return XED_ICLASS_JLE; + + 0006e b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 00073 eb 60 jmp SHORT $LN1@ObfGetRand +$LN6@ObfGetRand: + +; 9 : case 2: return XED_ICLASS_JNB; + + 00075 b8 3e 01 00 00 mov eax, 318 ; 0000013eH + 0007a eb 59 jmp SHORT $LN1@ObfGetRand +$LN7@ObfGetRand: + +; 10 : case 3: return XED_ICLASS_JNBE; + + 0007c b8 3f 01 00 00 mov eax, 319 ; 0000013fH + 00081 eb 52 jmp SHORT $LN1@ObfGetRand +$LN8@ObfGetRand: + +; 11 : case 4: return XED_ICLASS_JNL; + + 00083 b8 40 01 00 00 mov eax, 320 ; 00000140H + 00088 eb 4b jmp SHORT $LN1@ObfGetRand +$LN9@ObfGetRand: + +; 12 : case 5: return XED_ICLASS_JNLE; + + 0008a b8 41 01 00 00 mov eax, 321 ; 00000141H + 0008f eb 44 jmp SHORT $LN1@ObfGetRand +$LN10@ObfGetRand: + +; 13 : case 6: return XED_ICLASS_JNO; + + 00091 b8 42 01 00 00 mov eax, 322 ; 00000142H + 00096 eb 3d jmp SHORT $LN1@ObfGetRand +$LN11@ObfGetRand: + +; 14 : case 7: return XED_ICLASS_JNP; + + 00098 b8 43 01 00 00 mov eax, 323 ; 00000143H + 0009d eb 36 jmp SHORT $LN1@ObfGetRand +$LN12@ObfGetRand: + +; 15 : case 8: return XED_ICLASS_JNS; + + 0009f b8 44 01 00 00 mov eax, 324 ; 00000144H + 000a4 eb 2f jmp SHORT $LN1@ObfGetRand +$LN13@ObfGetRand: + +; 16 : case 9: return XED_ICLASS_JNZ; + + 000a6 b8 45 01 00 00 mov eax, 325 ; 00000145H + 000ab eb 28 jmp SHORT $LN1@ObfGetRand +$LN14@ObfGetRand: + +; 17 : case 10: return XED_ICLASS_JO; + + 000ad b8 46 01 00 00 mov eax, 326 ; 00000146H + 000b2 eb 21 jmp SHORT $LN1@ObfGetRand +$LN15@ObfGetRand: + +; 18 : case 11: return XED_ICLASS_JP; + + 000b4 b8 47 01 00 00 mov eax, 327 ; 00000147H + 000b9 eb 1a jmp SHORT $LN1@ObfGetRand +$LN16@ObfGetRand: + +; 19 : case 12: return XED_ICLASS_JRCXZ; + + 000bb b8 48 01 00 00 mov eax, 328 ; 00000148H + 000c0 eb 13 jmp SHORT $LN1@ObfGetRand +$LN17@ObfGetRand: + +; 20 : case 13: return XED_ICLASS_JS; + + 000c2 b8 49 01 00 00 mov eax, 329 ; 00000149H + 000c7 eb 0c jmp SHORT $LN1@ObfGetRand +$LN18@ObfGetRand: + +; 21 : case 14: return XED_ICLASS_JZ; + + 000c9 b8 4a 01 00 00 mov eax, 330 ; 0000014aH + 000ce eb 05 jmp SHORT $LN1@ObfGetRand +$LN2@ObfGetRand: + +; 22 : } +; 23 : return XED_ICLASS_JLE; + + 000d0 b8 3b 01 00 00 mov eax, 315 ; 0000013bH +$LN1@ObfGetRand: + +; 24 : } + + 000d5 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 + 000df 90 npad 1 +$LN20@ObfGetRand: + 000e0 00 00 00 00 DD $LN4@ObfGetRand + 000e4 00 00 00 00 DD $LN5@ObfGetRand + 000e8 00 00 00 00 DD $LN6@ObfGetRand + 000ec 00 00 00 00 DD $LN7@ObfGetRand + 000f0 00 00 00 00 DD $LN8@ObfGetRand + 000f4 00 00 00 00 DD $LN9@ObfGetRand + 000f8 00 00 00 00 DD $LN10@ObfGetRand + 000fc 00 00 00 00 DD $LN11@ObfGetRand + 00100 00 00 00 00 DD $LN12@ObfGetRand + 00104 00 00 00 00 DD $LN13@ObfGetRand + 00108 00 00 00 00 DD $LN14@ObfGetRand + 0010c 00 00 00 00 DD $LN15@ObfGetRand + 00110 00 00 00 00 DD $LN16@ObfGetRand + 00114 00 00 00 00 DD $LN17@ObfGetRand + 00118 00 00 00 00 DD $LN18@ObfGetRand +?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ENDP ; ObfGetRandomJccClass +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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] + 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 +; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 83 c0 10 add rax, 16 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT + +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1349 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@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 + +; 1343 : constexpr _Ty1& _Get_first() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT + +; 1735 : const _Alty& _Getal() const noexcept { + +$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(); + + 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 + +; 1737 : } + + 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 + +; 1731 : _Alty& _Getal() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 00045 90 npad 1 + +; 1733 : } + + 00046 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +_TEXT SEGMENT +_Lock$ = 4 +_Pnext$ = 40 +_Pnextptr$4 = 72 +__$ArrayPad$ = 280 +this$ = 320 +_First$ = 328 +_Last$ = 336 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT + +; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range + +$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 + +; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1713 : _Lockit _Lock(_LOCK_DEBUG); + + 00051 ba 03 00 00 00 mov edx, 3 + 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005a ff 15 00 00 00 + 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: + +; 1716 : while (*_Pnext) { + + 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] + 00076 48 83 38 00 cmp QWORD PTR [rax], 0 + 0007a 74 5c je SHORT $LN3@Orphan_ran + +; 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@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 + +; 1703 : [[noreturn]] static void _Xlength() { + +$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 + +; 1704 : _Xlength_error("vector too long"); + + 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: + +; 1705 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +_TEXT SEGMENT +_My_data$ = 8 +_Myfirst$ = 40 +_Mylast$ = 72 +_Myend$ = 104 +tv90 = 312 +tv88 = 320 +tv86 = 328 +this$ = 368 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT + +; 1685 : void _Tidy() noexcept { // free all storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1686 : auto& _My_data = _Mypair._Myval2; + + 00036 48 8b 85 70 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1687 : pointer& _Myfirst = _My_data._Myfirst; + + 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00045 48 83 c0 08 add rax, 8 + 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + +; 1688 : pointer& _Mylast = _My_data._Mylast; + + 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00051 48 83 c0 10 add rax, 16 + 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 1689 : pointer& _Myend = _My_data._Myend; + + 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0005d 48 83 c0 18 add rax, 24 + 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + +; 1690 : +; 1691 : _My_data._Orphan_all(); + + 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + +; 1692 : +; 1693 : if (_Myfirst) { // destroy and deallocate old array + + 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00072 48 83 38 00 cmp QWORD PTR [rax], 0 + 00076 0f 84 92 00 00 + 00 je $LN2@Tidy + +; 1694 : _Destroy(_Myfirst, _Mylast); + + 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00080 4c 8b 00 mov r8, QWORD PTR [rax] + 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00087 48 8b 10 mov rdx, QWORD PTR [rax] + 0008a 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 00096 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000b4 48 8b 00 mov rax, QWORD PTR [rax] + 000b7 48 2b c1 sub rax, rcx + 000ba 48 c1 f8 02 sar rax, 2 + 000be 48 89 85 40 01 + 00 00 mov QWORD PTR tv88[rbp], rax + 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000c9 48 8b 00 mov rax, QWORD PTR [rax] + 000cc 48 89 85 48 01 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv90[rbp] + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + +; 1696 : +; 1697 : _Myfirst = pointer(); + + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1698 : _Mylast = pointer(); + + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1699 : _Myend = pointer(); + + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: + +; 1700 : } +; 1701 : } + + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_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 + +; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { + +$LN4: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 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 + +; 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] + 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1669 : pointer& _Myfirst = _My_data._Myfirst; + + 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 08 add rax, 8 + 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + +; 1670 : pointer& _Mylast = _My_data._Mylast; + + 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00060 48 83 c0 10 add rax, 16 + 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + +; 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 + +; 1674 : +; 1675 : if (_Myfirst) { // destroy and deallocate old array + + 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00081 48 83 38 00 cmp QWORD PTR [rax], 0 + 00085 74 71 je SHORT $LN2@Change_arr + +; 1676 : _Destroy(_Myfirst, _Mylast); + + 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0008b 4c 8b 00 mov r8, QWORD PTR [rax] + 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00092 48 8b 10 mov rdx, QWORD PTR [rax] + 00095 48 8b 8d 70 01 + 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 + +; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 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: + +; 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 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 + +; 1682 : _Myend = _Newvec + _Newcapacity; + + 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 + +; 1683 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z +_TEXT SEGMENT +_Oldcapacity$ = 8 +_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 + +; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { + +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 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@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity + 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax + +; 1618 : +; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { + + 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_ + +; 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@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ENDP ; std::vector >::_Calculate_growth +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT + +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0004c 4c 8b c0 mov r8, rax + 0004f 48 8b 95 f0 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + +; 1613 : } + + 00062 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b c3 ret 0 +?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_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 + +; 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@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_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@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 + +; 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] + 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 > + +; 1598 : } + + 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:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z +_TEXT SEGMENT +this$ = 224 +_First$ = 232 +_Last$ = 240 +_Dest$ = 248 +?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT + +; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator + +$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@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 + +; 1493 : auto& _My_data = _Mypair._Myval2; + + 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 02 sar rax, 2 + +; 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@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::capacity +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 + +; 1487 : _NODISCARD size_type max_size() 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 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@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] + +; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1490 : } + + 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@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::max_size +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z +_TEXT SEGMENT +this$ = 224 +_Val$ = 232 +?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z PROC ; std::vector >::push_back, COMDAT + +; 716 : void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee + +$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:__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 + +; 718 : } + + 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 +?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ENDP ; std::vector >::push_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT + +; 672 : ~vector() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 18 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 673 : _Tidy(); + + 00047 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); + + 00053 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] + 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); + + 00073 48 c7 85 04 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 0008c 48 8b c8 mov rcx, rax + 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange + 00094 48 8b d0 mov rdx, rax + 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 0009b e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal > + +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } + + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 c3 ret 0 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z +_TEXT SEGMENT +__formal$ = 224 +?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT + +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { + +$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 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH + +; 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@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ENDP ; std::_Default_allocator_traits >::max_size +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@K@std@@QEAAPEAK_K@Z PROC ; std::allocator::allocate, COMDAT + +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { + +$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@$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> + +; 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@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 + +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 802 : // no overflow check on the following multiply; we assume _Allocate did that check +; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + +; 804 : } + + 0005a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 +?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; 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 f0 00 00 00 mov edx, 240 ; 000000f0H + 0004c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 +??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-encoder-hl.h +; COMDAT xed_inst1 +_TEXT SEGMENT +inst$ = 224 +mode$ = 232 +iclass$ = 240 +effective_operand_width$ = 248 +op0$ = 256 +xed_inst1 PROC ; COMDAT + +; 490 : xed_encoder_operand_t op0) { + + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 56 push rsi + 00016 57 push rdi + 00017 48 81 ec e0 00 + 00 00 sub rsp, 224 ; 000000e0H + 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00023 48 8b fc mov rdi, rsp + 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H + 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00030 f3 ab rep stosd + 00032 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0003a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__21860875_xed-encoder-hl@h + 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 491 : +; 492 : inst->mode=mode; + + 00046 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR inst$[rbp] + 0004d 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR mode$[rbp] + 00054 48 89 08 mov QWORD PTR [rax], rcx + +; 493 : inst->iclass = iclass; + + 00057 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR inst$[rbp] + 0005e 8b 8d f0 00 00 + 00 mov ecx, DWORD PTR iclass$[rbp] + 00064 89 48 08 mov DWORD PTR [rax+8], ecx + +; 494 : inst->effective_operand_width = effective_operand_width; + + 00067 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR inst$[rbp] + 0006e 8b 8d f8 00 00 + 00 mov ecx, DWORD PTR effective_operand_width$[rbp] + 00074 89 48 0c mov DWORD PTR [rax+12], ecx + +; 495 : inst->effective_address_width = 0; + + 00077 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR inst$[rbp] + 0007e c7 40 10 00 00 + 00 00 mov DWORD PTR [rax+16], 0 + +; 496 : inst->prefixes.i = 0; + + 00085 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR inst$[rbp] + 0008c c7 40 14 00 00 + 00 00 mov DWORD PTR [rax+20], 0 + +; 497 : inst->operands[0] = op0; + + 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H + 00098 48 6b c0 00 imul rax, rax, 0 + 0009c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR inst$[rbp] + 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 000a8 48 8b b5 00 01 + 00 00 mov rsi, QWORD PTR op0$[rbp] + 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b4 f3 a4 rep movsb + +; 498 : inst->noperands = 1; + + 000b6 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR inst$[rbp] + 000bd c7 40 18 01 00 + 00 00 mov DWORD PTR [rax+24], 1 + +; 499 : } + + 000c4 48 8d a5 c0 00 + 00 00 lea rsp, QWORD PTR [rbp+192] + 000cb 5f pop rdi + 000cc 5e pop rsi + 000cd 5d pop rbp + 000ce c3 ret 0 +xed_inst1 ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-encoder-hl.h +; COMDAT xed_relbr +_TEXT SEGMENT +o$ = 8 +__$ArrayPad$ = 264 +$T4 = 304 +brdisp$ = 312 +width_bits$ = 320 +xed_relbr PROC ; COMDAT + +; 105 : xed_uint_t width_bits) { + + 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 56 push rsi + 00010 57 push rdi + 00011 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 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 08 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__21860875_xed-encoder-hl@h + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 106 : xed_encoder_operand_t o; +; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; + + 00051 c7 45 08 01 00 + 00 00 mov DWORD PTR o$[rbp], 1 + +; 108 : o.u.brdisp = brdisp; + + 00058 8b 85 38 01 00 + 00 mov eax, DWORD PTR brdisp$[rbp] + 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax + +; 109 : o.width_bits = width_bits; + + 00061 8b 85 40 01 00 + 00 mov eax, DWORD PTR width_bits$[rbp] + 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax + +; 110 : return o; + + 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 0006e 48 8b bd 30 01 + 00 00 mov rdi, QWORD PTR $T4[rbp] + 00075 48 8b f0 mov rsi, rax + 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007d f3 a4 rep movsb + 0007f 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + +; 111 : } + + 00086 48 8b f8 mov rdi, rax + 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008d 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData + 00094 e8 00 00 00 00 call _RTC_CheckStackVars + 00099 48 8b c7 mov rax, rdi + 0009c 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000a3 48 33 cd xor rcx, rbp + 000a6 e8 00 00 00 00 call __security_check_cookie + 000ab 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 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.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +_TEXT SEGMENT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT + +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { + +$LN7: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 0002a 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it + + 00047 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00052 74 6b je SHORT $LN5@Orphan_all + +; 1208 : _Lockit _Lock(_LOCK_DEBUG); + + 00054 ba 03 00 00 00 mov edx, 3 + 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { + + 00063 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a 48 8b 00 mov rax, QWORD PTR [rax] + 0006d 48 83 c0 08 add rax, 8 + 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax + 00075 eb 12 jmp SHORT $LN4@Orphan_all +$LN2@Orphan_all: + 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] + 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00086 48 89 01 mov QWORD PTR [rcx], rax +$LN4@Orphan_all: + 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00091 74 10 je SHORT $LN3@Orphan_all + +; 1211 : (*_Pnext)->_Myproxy = nullptr; + + 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] + 00097 48 8b 00 mov rax, QWORD PTR [rax] + 0009a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1212 : } + + 000a1 eb d4 jmp SHORT $LN2@Orphan_all +$LN3@Orphan_all: + +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; + + 000a3 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + +; 1215 : } + + 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] + 000b9 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ +$LN5@Orphan_all: + +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } + + 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData + 000ca e8 00 00 00 00 call _RTC_CheckStackVars + 000cf 90 npad 1 + 000d0 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000d7 48 33 cd xor rcx, rbp + 000da e8 00 00 00 00 call __security_check_cookie + 000df 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e6 5f pop rdi + 000e7 5d pop rbp + 000e8 c3 ret 0 +?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +_TEXT SEGMENT +_Ptr_user$ = 8 +_Ptr_container$ = 40 +_Min_back_shift$ = 72 +_Back_shift$ = 104 +_Ptr$ = 352 +_Bytes$ = 360 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT + +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { + +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 8b fc mov rdi, rsp + 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; + + 0003b 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00050 48 89 01 mov QWORD PTR [rcx], rax + +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); + + 00053 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; + + 00061 b8 08 00 00 00 mov eax, 8 + 00066 48 6b c0 ff imul rax, rax, -1 + 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] + 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax +$LN4@Adjust_man: + +; 138 : +; 139 : // If the following asserts, it likely means that we are performing +; 140 : // an aligned delete on memory coming from an unaligned allocation. +; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); + + 00076 b8 08 00 00 00 mov eax, 8 + 0007b 48 6b c0 fe imul rax, rax, -2 + 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] + 00083 48 ba fa fa fa + fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH + 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx + 00091 75 02 jne SHORT $LN14@Adjust_man + 00093 eb 77 jmp SHORT $LN15@Adjust_man +$LN14@Adjust_man: +$LN7@Adjust_man: + 00095 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 0009b 83 c0 09 add eax, 9 + 0009e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 000b6 45 33 c9 xor r9d, r9d + 000b9 44 8b c0 mov r8d, eax + 000bc 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 000c3 b9 02 00 00 00 mov ecx, 2 + 000c8 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 000ce 83 f8 01 cmp eax, 1 + 000d1 75 03 jne SHORT $LN19@Adjust_man + 000d3 cc int 3 + 000d4 33 c0 xor eax, eax +$LN19@Adjust_man: + 000d6 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 000dc 83 c0 09 add eax, 9 + 000df 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 000e8 44 8b c8 mov r9d, eax + 000eb 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000f2 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ + 000f9 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 00100 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 75 89 jne SHORT $LN7@Adjust_man +$LN15@Adjust_man: + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff + ff jne $LN4@Adjust_man + +; 142 : +; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is +; 144 : // in range [_Min_back_shift, _Non_user_size] +; 145 : #ifdef _DEBUG +; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); + + 00116 48 c7 45 48 10 + 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 + +; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv +; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); +; 149 : #endif // _DEBUG +; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; + + 0011e 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 00129 48 8b 00 mov rax, QWORD PTR [rax] + 0012c 48 2b c1 sub rax, rcx + 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax +$LN10@Adjust_man: + +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); + + 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 + 00138 72 09 jb SHORT $LN16@Adjust_man + 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH + 0013f 77 02 ja SHORT $LN16@Adjust_man + 00141 eb 77 jmp SHORT $LN17@Adjust_man +$LN16@Adjust_man: +$LN13@Adjust_man: + 00143 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 00149 83 c0 13 add eax, 19 + 0014c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00164 45 33 c9 xor r9d, r9d + 00167 44 8b c0 mov r8d, eax + 0016a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00171 b9 02 00 00 00 mov ecx, 2 + 00176 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 0017c 83 f8 01 cmp eax, 1 + 0017f 75 03 jne SHORT $LN20@Adjust_man + 00181 cc int 3 + 00182 33 c0 xor eax, eax +$LN20@Adjust_man: + 00184 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA + 0018a 83 c0 13 add eax, 19 + 0018d 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 00196 44 8b c8 mov r9d, eax + 00199 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 001a0 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ + 001a7 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ + 001ae ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 75 89 jne SHORT $LN13@Adjust_man +$LN17@Adjust_man: + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff + ff jne $LN10@Adjust_man + +; 152 : _Ptr = reinterpret_cast(_Ptr_container); + + 001c4 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx + +; 153 : } + + 001d2 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 001d9 5f pop rdi + 001da 5d pop rbp + 001db c3 ret 0 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\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 +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 e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -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 + +; 130 : { + +$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 + +; 130 : { + + 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 + +; 131 : } + + 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 +; COMDAT ??_Gexception@std@@UEAAPEAXI@Z +_TEXT SEGMENT +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 + +; 94 : { + +$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 f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 18 + 01 00 00 mov rcx, QWORD PTR [rsp+280] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 95 : return _Data._What ? _Data._What : "Unknown exception"; + + 00036 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 14 je SHORT $LN3@what + 00044 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 + 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.27.29110\include\vcruntime_exception.h +; COMDAT ??1exception@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1exception@std@@UEAA@XZ PROC ; std::exception::~exception, COMDAT + +; 89 : { + +$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 + 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 + +; 90 : __std_exception_destroy(&_Data); + + 00047 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 c0 08 add rax, 8 + 00052 48 8b c8 mov rcx, rax + 00055 e8 00 00 00 00 call __std_exception_destroy + 0005a 90 npad 1 + +; 91 : } + + 0005b 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 +??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0exception@std@@QEAA@AEBV01@@Z +_TEXT SEGMENT +this$ = 224 +_Other$ = 232 +??0exception@std@@QEAA@AEBV01@@Z PROC ; std::exception::exception, COMDAT + +; 72 : { + +$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 + 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 + +; 71 : : _Data() + + 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 + +; 73 : __std_exception_copy(&_Other._Data, &_Data); + + 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 + +; 74 : } + + 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 + +; 66 : { + +$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 + +; 65 : : _Data() + + 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 + +; 67 : _Data._What = _Message; + + 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 + +; 68 : } + + 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 + +; 645 : _NODISCARD static constexpr long long(max)() noexcept { + +$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 + +; 646 : return LLONG_MAX; + + 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 +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h +; COMDAT ??2@YAPEAX_KPEAX@Z +_TEXT SEGMENT +_Size$ = 224 +_Where$ = 232 +??2@YAPEAX_KPEAX@Z PROC ; operator new, COMDAT + +; 167 : { + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 168 : (void)_Size; +; 169 : return _Where; + + 0003b 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Where$[rbp] + +; 170 : } + + 00042 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 +??2@YAPEAX_KPEAX@Z ENDP ; operator new +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..866fa08 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/RipMovInst.cod @@ -0,0 +1,2484 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__9DFA3906_RipMovInst@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC __local_stdio_printf_options +PUBLIC _vfprintf_l +PUBLIC printf +PUBLIC wmemcpy +PUBLIC ??$_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 ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD +PUBLIC ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW +PUBLIC ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB +PUBLIC __JustMyCode_Default +PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_09MPIOMHBM@?$CFp?5memes?6@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN ??2@YAPEAX_K@Z:PROC ; operator new +EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN __imp___acrt_iob_func:PROC +EXTRN __imp___stdio_common_vfprintf:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN xed_decode:PROC +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA +_BSS SEGMENT +?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage +_BSS ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$__local_stdio_printf_options DD imagerel $LN3 + 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+126 + DD imagerel $unwind$_vfprintf_l +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$printf DD imagerel $LN3 + DD imagerel $LN3+214 + DD imagerel $unwind$printf +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 + DD imagerel $LN6+397 + DD imagerel $unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 + DD imagerel $LN6+377 + DD imagerel $unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 + DD imagerel $LN6+361 + DD imagerel $unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_09MPIOMHBM@?$CFp?5memes?6@ +CONST SEGMENT +??_C@_09MPIOMHBM@?$CFp?5memes?6@ DB '%p memes', 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H + DB 00H + DB 00H + DB 0faH + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z + DD imagerel $ip2state$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 025054419H + DD 0117231cH + DD 07010002fH + DD 0500fH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z + DD 0162H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcName$0 DB 052H ; JitEmitRipRelativeMovB + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc DD 024H ; JitEmitRipRelativeMovB + DD 07H + DQ FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcName$0 + ORG $+48 +?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData DD 01H ; JitEmitRipRelativeMovB + DD 00H + DQ FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H + DB 00H + DB 00H + DB 015H, 02H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z + DD imagerel $ip2state$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 025054419H + DD 0117231cH + DD 070100031H + DD 0500fH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z + DD 0172H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcName$0 DB 052H ; JitEmitRipRelativeMovW + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc DD 028H ; JitEmitRipRelativeMovW + DD 09H + DQ FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcName$0 + ORG $+48 +?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData DD 01H ; JitEmitRipRelativeMovW + DD 00H + DQ FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H + DB 00H + DB 00H + DB '%', 02H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z + DD imagerel $ip2state$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 025054419H + DD 0117231cH + DD 070100031H + DD 0500fH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z + DD 0172H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcName$0 DB 052H ; JitEmitRipRelativeMovD + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc DD 028H ; JitEmitRipRelativeMovD + DD 0aH + DQ FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcName$0 + ORG $+48 +?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData DD 01H ; JitEmitRipRelativeMovD + DD 00H + DQ FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + 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 +$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$?__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:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +_TEXT SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +RipDelta$ = 376 +Data$ = 384 +?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z PROC ; JitEmitRipRelativeMovB, COMDAT + +; 29 : { + +$LN6: + 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 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001c 48 8b fc mov rdi, rsp + 0001f b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00033 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 30 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + 00050 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H + 00054 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 + 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + +; 31 : +; 32 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); + + 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00076 48 89 85 28 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 0007d 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00085 74 24 je SHORT $LN3@JitEmitRip + 00087 41 b9 07 00 00 + 00 mov r9d, 7 + 0008d 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00091 ba 04 00 00 00 mov edx, 4 + 00096 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 0009d e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000a9 eb 0b jmp SHORT $LN4@JitEmitRip +$LN3@JitEmitRip: + 000ab 48 c7 85 38 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitRip: + 000b6 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 000bd 48 89 85 08 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000c4 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000cb 48 89 45 28 mov QWORD PTR Link$[rbp], rax + +; 33 : *(PINT32)&Link->RawData[2] = RipDelta; + + 000cf b8 01 00 00 00 mov eax, 1 + 000d4 48 6b c0 02 imul rax, rax, 2 + 000d8 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000dc 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e0 8b 95 78 01 00 + 00 mov edx, DWORD PTR RipDelta$[rbp] + 000e6 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 34 : Link->RawData[6] = *Data; + + 000e9 b8 01 00 00 00 mov eax, 1 + 000ee 48 6b c0 06 imul rax, rax, 6 + 000f2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000f6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000fa 48 8b 95 80 01 + 00 00 mov rdx, QWORD PTR Data$[rbp] + 00101 0f b6 12 movzx edx, BYTE PTR [rdx] + 00104 88 14 08 mov BYTE PTR [rax+rcx], dl + +; 35 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + + 00107 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 0010b 48 83 c0 30 add rax, 48 ; 00000030H + 0010f 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00113 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00117 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0011f 48 8b c8 mov rcx, rax + 00122 e8 00 00 00 00 call xed_decode + +; 36 : NcAppendToBlock(Block, Link); + + 00127 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 0012b 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00132 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 37 : return TRUE; + + 00137 b8 01 00 00 00 mov eax, 1 + +; 38 : } + + 0013c 8b f8 mov edi, eax + 0013e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00142 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData + 00149 e8 00 00 00 00 call _RTC_CheckStackVars + 0014e 8b c7 mov eax, edi + 00150 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00157 48 33 cd xor rcx, rbp + 0015a e8 00 00 00 00 call __security_check_cookie + 0015f 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00166 5f pop rdi + 00167 5d pop rbp + 00168 c3 ret 0 +?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovB +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +RipDelta$ = 376 +Data$ = 384 +?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA PROC ; `JitEmitRipRelativeMovB'::`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 28 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??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovB'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +RipDelta$ = 376 +Data$ = 384 +?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA PROC ; `JitEmitRipRelativeMovB'::`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 28 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??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovB'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +_TEXT SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Data$ = 400 +?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z PROC ; JitEmitRipRelativeMovW, COMDAT + +; 17 : { + +$LN6: + 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 88 01 + 00 00 sub rsp, 392 ; 00000188H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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] + 00033 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 18 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00054 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H + 00058 c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + +; 19 : +; 20 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); + + 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0007e 48 89 85 38 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00085 48 83 bd 38 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 0008d 74 24 je SHORT $LN3@JitEmitRip + 0008f 41 b9 09 00 00 + 00 mov r9d, 9 + 00095 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 00099 ba 04 00 00 00 mov edx, 4 + 0009e 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000aa 48 89 85 48 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip +$LN3@JitEmitRip: + 000b3 48 c7 85 48 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitRip: + 000be 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 000c5 48 89 85 18 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000cc 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000d3 48 89 45 38 mov QWORD PTR Link$[rbp], rax + +; 21 : *(PINT32)&Link->RawData[3] = RipDelta; + + 000d7 b8 01 00 00 00 mov eax, 1 + 000dc 48 6b c0 03 imul rax, rax, 3 + 000e0 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e8 8b 95 88 01 00 + 00 mov edx, DWORD PTR RipDelta$[rbp] + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 22 : memcpy(&Link->RawData[7], Data, 2); + + 000f1 b8 01 00 00 00 mov eax, 1 + 000f6 48 6b c0 07 imul rax, rax, 7 + 000fa 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000fe 48 03 41 20 add rax, QWORD PTR [rcx+32] + 00102 41 b8 02 00 00 + 00 mov r8d, 2 + 00108 48 8b 95 90 01 + 00 00 mov rdx, QWORD PTR Data$[rbp] + 0010f 48 8b c8 mov rcx, rax + 00112 e8 00 00 00 00 call memcpy + +; 23 : 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 + +; 24 : NcAppendToBlock(Block, Link); + + 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] + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 25 : return TRUE; + + 00147 b8 01 00 00 00 mov eax, 1 + +; 26 : } + + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00152 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData + 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] + 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] + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 +?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovW +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Data$ = 400 +?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA PROC ; `JitEmitRipRelativeMovW'::`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 38 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??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovW'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Data$ = 400 +?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA PROC ; `JitEmitRipRelativeMovW'::`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 38 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??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovW'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z +_TEXT SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Data$ = 400 +?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z PROC ; JitEmitRipRelativeMovD, COMDAT + +; 4 : { + +$LN6: + 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 88 01 + 00 00 sub rsp, 392 ; 00000188H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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] + 00033 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : UCHAR RawData[] = { 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + 00050 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H + 00054 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 + 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + +; 6 : +; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); + + 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00082 48 89 85 38 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00089 48 83 bd 38 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00091 74 24 je SHORT $LN3@JitEmitRip + 00093 41 b9 0a 00 00 + 00 mov r9d, 10 + 00099 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 0009d ba 04 00 00 00 mov edx, 4 + 000a2 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000a9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ae 48 89 85 48 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000b5 eb 0b jmp SHORT $LN4@JitEmitRip +$LN3@JitEmitRip: + 000b7 48 c7 85 48 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitRip: + 000c2 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 000c9 48 89 85 18 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000d0 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000d7 48 89 45 38 mov QWORD PTR Link$[rbp], rax + +; 8 : *(PINT32)&Link->RawData[2] = RipDelta; + + 000db b8 01 00 00 00 mov eax, 1 + 000e0 48 6b c0 02 imul rax, rax, 2 + 000e4 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000e8 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ec 8b 95 88 01 00 + 00 mov edx, DWORD PTR RipDelta$[rbp] + 000f2 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 9 : memcpy(&Link->RawData[6], Data, 4); + + 000f5 b8 01 00 00 00 mov eax, 1 + 000fa 48 6b c0 06 imul rax, rax, 6 + 000fe 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00102 48 03 41 20 add rax, QWORD PTR [rcx+32] + 00106 41 b8 04 00 00 + 00 mov r8d, 4 + 0010c 48 8b 95 90 01 + 00 00 mov rdx, QWORD PTR Data$[rbp] + 00113 48 8b c8 mov rcx, rax + 00116 e8 00 00 00 00 call memcpy + +; 10 : printf("%p memes\n", Link); + + 0011b 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0011f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_09MPIOMHBM@?$CFp?5memes?6@ + 00126 e8 00 00 00 00 call printf + +; 11 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + + 0012b 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0012f 48 83 c0 30 add rax, 48 ; 00000030H + 00133 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00137 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0013b 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0013f 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00143 48 8b c8 mov rcx, rax + 00146 e8 00 00 00 00 call xed_decode + +; 12 : NcAppendToBlock(Block, Link); + + 0014b 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0014f 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00156 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 13 : return TRUE; + + 0015b b8 01 00 00 00 mov eax, 1 + +; 14 : } + + 00160 8b f8 mov edi, eax + 00162 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00166 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData + 0016d e8 00 00 00 00 call _RTC_CheckStackVars + 00172 8b c7 mov eax, edi + 00174 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0017b 48 33 cd xor rcx, rbp + 0017e e8 00 00 00 00 call __security_check_cookie + 00183 48 8d a5 68 01 + 00 00 lea rsp, QWORD PTR [rbp+360] + 0018a 5f pop rdi + 0018b 5d pop rbp + 0018c c3 ret 0 +?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovD +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Data$ = 400 +?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA PROC ; `JitEmitRipRelativeMovD'::`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 38 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??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovD'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Data$ = 400 +?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA PROC ; `JitEmitRipRelativeMovD'::`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 38 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??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovD'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\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 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] + 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 28 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 957 : int _Result; +; 958 : va_list _ArgList; +; 959 : __crt_va_start(_ArgList, _Format); + + 00056 48 8d 85 58 01 + 00 00 lea rax, QWORD PTR _Format$[rbp+8] + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + +; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); + + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp___acrt_iob_func + 00077 48 89 85 20 01 + 00 00 mov QWORD PTR tv75[rbp], rax + 0007e 4c 8b 8d 18 01 + 00 00 mov r9, QWORD PTR tv77[rbp] + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 + 00 00 mov rdx, QWORD PTR _Format$[rbp] + 0008f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR tv75[rbp] + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + +; 961 : __crt_va_end(_ArgList); + + 0009e 48 c7 45 28 00 + 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 + +; 962 : return _Result; + + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + +; 963 : } + + 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 + 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] + 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] + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 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 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 + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); + + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _ArgList$[rbp] + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 + 00 00 mov r9, QWORD PTR _Locale$[rbp] + 0005d 4c 8b 85 e8 00 + 00 00 mov r8, QWORD PTR _Format$[rbp] + 00064 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR _Stream$[rbp] + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp___stdio_common_vfprintf + +; 646 : } + + 00074 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 +_vfprintf_l ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h +; COMDAT __local_stdio_printf_options +_TEXT SEGMENT +__local_stdio_printf_options PROC ; COMDAT + +; 90 : { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 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 + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : static unsigned __int64 _OptionsStorage; +; 92 : return &_OptionsStorage; + + 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 : } + + 00031 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 +__local_stdio_printf_options ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..1601315 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/RipXorInst.cod @@ -0,0 +1,2205 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__1FB70083_RipXorInst@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD +PUBLIC ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW +PUBLIC ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB +PUBLIC __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN ??2@YAPEAX_K@Z:PROC ; operator new +EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN xed_decode:PROC +EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK +EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 + DD imagerel $LN6+369 + DD imagerel $unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 + DD imagerel $LN6+367 + DD imagerel $unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 + DD imagerel $LN6+358 + DD imagerel $unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA + DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA+44 + DD imagerel $unwind$?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H + DB 00H + DB 00H + DB 0faH + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z + DD imagerel $ip2state$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025054419H + DD 0117231cH + DD 07010002fH + DD 0500fH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z + DD 0162H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcName$0 DB 052H ; JitEmitRipRelativeXorB + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc DD 024H ; JitEmitRipRelativeXorB + DD 07H + DQ FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcName$0 + ORG $+48 +?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData DD 01H ; JitEmitRipRelativeXorB + DD 00H + DQ FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H + DB 00H + DB 00H + DB 015H, 02H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z + DD imagerel $ip2state$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025054419H + DD 0117231cH + DD 070100031H + DD 0500fH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z + DD 0172H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcName$0 DB 052H ; JitEmitRipRelativeXorW + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc DD 028H ; JitEmitRipRelativeXorW + DD 09H + DQ FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcName$0 + ORG $+48 +?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData DD 01H ; JitEmitRipRelativeXorW + DD 00H + DQ FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H + DB 00H + DB 00H + DB '%', 02H + DB 02H + DB 08eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H + DD imagerel $stateUnwindMap$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z + DD imagerel $ip2state$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025054419H + DD 0117231cH + DD 070100031H + DD 0500fH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z + DD 0172H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcName$0 DB 052H ; JitEmitRipRelativeXorD + DB 061H + DB 077H + DB 044H + DB 061H + DB 074H + DB 061H + DB 00H + ORG $+8 +?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc DD 028H ; JitEmitRipRelativeXorD + DD 0aH + DQ FLAT:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcName$0 + ORG $+48 +?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData DD 01H ; JitEmitRipRelativeXorD + DD 00H + DQ FLAT:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H + 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +_TEXT SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +RipDelta$ = 376 +Value$ = 384 +?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z PROC ; JitEmitRipRelativeXorB, COMDAT + +; 28 : { + +$LN6: + 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 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001c 48 8b fc mov rdi, rsp + 0001f b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00029 f3 ab rep stosd + 0002b 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 00033 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 29 : UCHAR RawData[] = { 0x80, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00054 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + +; 30 : +; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); + + 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00076 48 89 85 28 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 0007d 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00085 74 24 je SHORT $LN3@JitEmitRip + 00087 41 b9 07 00 00 + 00 mov r9d, 7 + 0008d 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 00091 ba 04 00 00 00 mov edx, 4 + 00096 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 0009d e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000a2 48 89 85 38 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000a9 eb 0b jmp SHORT $LN4@JitEmitRip +$LN3@JitEmitRip: + 000ab 48 c7 85 38 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitRip: + 000b6 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 000bd 48 89 85 08 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000c4 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000cb 48 89 45 28 mov QWORD PTR Link$[rbp], rax + +; 32 : *(PINT32)&Link->RawData[2] = RipDelta; + + 000cf b8 01 00 00 00 mov eax, 1 + 000d4 48 6b c0 02 imul rax, rax, 2 + 000d8 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000dc 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e0 8b 95 78 01 00 + 00 mov edx, DWORD PTR RipDelta$[rbp] + 000e6 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; + + 000e9 b8 01 00 00 00 mov eax, 1 + 000ee 48 6b c0 06 imul rax, rax, 6 + 000f2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000f6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000fa 0f b6 95 80 01 + 00 00 movzx edx, BYTE PTR Value$[rbp] + 00101 88 14 08 mov BYTE PTR [rax+rcx], dl + +; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + + 00104 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00108 48 83 c0 30 add rax, 48 ; 00000030H + 0010c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00110 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00118 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0011c 48 8b c8 mov rcx, rax + 0011f e8 00 00 00 00 call xed_decode + +; 35 : NcAppendToBlock(Block, Link); + + 00124 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00128 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0012f e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 36 : return TRUE; + + 00134 b8 01 00 00 00 mov eax, 1 + +; 37 : } + + 00139 8b f8 mov edi, eax + 0013b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0013f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData + 00146 e8 00 00 00 00 call _RTC_CheckStackVars + 0014b 8b c7 mov eax, edi + 0014d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00154 48 33 cd xor rcx, rbp + 00157 e8 00 00 00 00 call __security_check_cookie + 0015c 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00163 5f pop rdi + 00164 5d pop rbp + 00165 c3 ret 0 +?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorB +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +RipDelta$ = 376 +Value$ = 384 +?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA PROC ; `JitEmitRipRelativeXorB'::`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 28 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??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorB'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 4 +Link$ = 40 +$T4 = 264 +$T5 = 296 +tv78 = 312 +__$ArrayPad$ = 320 +Block$ = 368 +RipDelta$ = 376 +Value$ = 384 +?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA PROC ; `JitEmitRipRelativeXorB'::`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 28 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??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorB'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +_TEXT SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Value$ = 400 +?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z PROC ; JitEmitRipRelativeXorW, COMDAT + +; 16 : { + +$LN6: + 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 88 01 + 00 00 sub rsp, 392 ; 00000188H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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] + 00033 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 17 : UCHAR RawData[] = { 0x66, 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00054 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H + 00058 c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + +; 18 : +; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); + + 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0007e 48 89 85 38 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00085 48 83 bd 38 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 0008d 74 24 je SHORT $LN3@JitEmitRip + 0008f 41 b9 09 00 00 + 00 mov r9d, 9 + 00095 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 00099 ba 04 00 00 00 mov edx, 4 + 0009e 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000aa 48 89 85 48 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip +$LN3@JitEmitRip: + 000b3 48 c7 85 48 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitRip: + 000be 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 000c5 48 89 85 18 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000cc 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000d3 48 89 45 38 mov QWORD PTR Link$[rbp], rax + +; 20 : *(PINT32)&Link->RawData[3] = RipDelta; + + 000d7 b8 01 00 00 00 mov eax, 1 + 000dc 48 6b c0 03 imul rax, rax, 3 + 000e0 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000e8 8b 95 88 01 00 + 00 mov edx, DWORD PTR RipDelta$[rbp] + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; + + 000f1 b8 01 00 00 00 mov eax, 1 + 000f6 48 6b c0 07 imul rax, rax, 7 + 000fa 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00102 0f b7 95 90 01 + 00 00 movzx edx, WORD PTR Value$[rbp] + 00109 66 89 14 08 mov WORD PTR [rax+rcx], dx + +; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + + 0010d 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00111 48 83 c0 30 add rax, 48 ; 00000030H + 00115 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00119 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00121 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00125 48 8b c8 mov rcx, rax + 00128 e8 00 00 00 00 call xed_decode + +; 23 : NcAppendToBlock(Block, Link); + + 0012d 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00131 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00138 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 24 : return TRUE; + + 0013d b8 01 00 00 00 mov eax, 1 + +; 25 : } + + 00142 8b f8 mov edi, eax + 00144 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00148 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData + 0014f e8 00 00 00 00 call _RTC_CheckStackVars + 00154 8b c7 mov eax, edi + 00156 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0015d 48 33 cd xor rcx, rbp + 00160 e8 00 00 00 00 call __security_check_cookie + 00165 48 8d a5 68 01 + 00 00 lea rsp, QWORD PTR [rbp+360] + 0016c 5f pop rdi + 0016d 5d pop rbp + 0016e c3 ret 0 +?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorW +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Value$ = 400 +?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA PROC ; `JitEmitRipRelativeXorW'::`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 38 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??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorW'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Value$ = 400 +?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA PROC ; `JitEmitRipRelativeXorW'::`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 38 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??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorW'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z +_TEXT SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Value$ = 400 +?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z PROC ; JitEmitRipRelativeXorD, COMDAT + +; 4 : { + +$LN6: + 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 88 01 + 00 00 sub rsp, 392 ; 00000188H + 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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] + 00033 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : UCHAR RawData[] = { 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00054 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + +; 6 : +; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData)); + + 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00082 48 89 85 38 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 00089 48 83 bd 38 01 + 00 00 00 cmp QWORD PTR $T5[rbp], 0 + 00091 74 24 je SHORT $LN3@JitEmitRip + 00093 41 b9 0a 00 00 + 00 mov r9d, 10 + 00099 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 0009d ba 04 00 00 00 mov edx, 4 + 000a2 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR $T5[rbp] + 000a9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ae 48 89 85 48 01 + 00 00 mov QWORD PTR tv78[rbp], rax + 000b5 eb 0b jmp SHORT $LN4@JitEmitRip +$LN3@JitEmitRip: + 000b7 48 c7 85 48 01 + 00 00 00 00 00 + 00 mov QWORD PTR tv78[rbp], 0 +$LN4@JitEmitRip: + 000c2 48 8b 85 48 01 + 00 00 mov rax, QWORD PTR tv78[rbp] + 000c9 48 89 85 18 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 000d0 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR $T4[rbp] + 000d7 48 89 45 38 mov QWORD PTR Link$[rbp], rax + +; 8 : *(PINT32)&Link->RawData[2] = RipDelta; + + 000db b8 01 00 00 00 mov eax, 1 + 000e0 48 6b c0 02 imul rax, rax, 2 + 000e4 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000e8 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ec 8b 95 88 01 00 + 00 mov edx, DWORD PTR RipDelta$[rbp] + 000f2 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 9 : *(PULONG)&Link->RawData[6] = Value; + + 000f5 b8 01 00 00 00 mov eax, 1 + 000fa 48 6b c0 06 imul rax, rax, 6 + 000fe 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00102 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00106 8b 95 90 01 00 + 00 mov edx, DWORD PTR Value$[rbp] + 0010c 89 14 08 mov DWORD PTR [rax+rcx], edx + +; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); + + 0010f 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00113 48 83 c0 30 add rax, 48 ; 00000030H + 00117 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0011b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011f 48 8b 4d 38 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 + +; 11 : NcAppendToBlock(Block, Link); + + 0012f 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00133 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0013a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + +; 12 : return TRUE; + + 0013f b8 01 00 00 00 mov eax, 1 + +; 13 : } + + 00144 8b f8 mov edi, eax + 00146 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0014a 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData + 00151 e8 00 00 00 00 call _RTC_CheckStackVars + 00156 8b c7 mov eax, edi + 00158 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0015f 48 33 cd xor rcx, rbp + 00162 e8 00 00 00 00 call __security_check_cookie + 00167 48 8d a5 68 01 + 00 00 lea rsp, QWORD PTR [rbp+360] + 0016e 5f pop rdi + 0016f 5d pop rbp + 00170 c3 ret 0 +?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorD +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Value$ = 400 +?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA PROC ; `JitEmitRipRelativeXorD'::`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 38 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??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorD'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +RawData$ = 8 +Link$ = 56 +$T4 = 280 +$T5 = 312 +tv78 = 328 +__$ArrayPad$ = 336 +Block$ = 384 +RipDelta$ = 392 +Value$ = 400 +?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA PROC ; `JitEmitRipRelativeXorD'::`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 38 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??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorD'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..160507d --- /dev/null +++ b/CodeVirtualizer/x64/Debug/VirtualMachine.cod @@ -0,0 +1,1484 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__FE1E1473_VirtualMachine@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 ?VmEmitVmEnter@@YAPEAEPEAK@Z ; VmEmitVmEnter +PUBLIC ?VmEmitVmExit@@YAPEAEPEAK@Z ; VmEmitVmExit +PUBLIC __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?VmEmitVmEnter@@YAPEAEPEAK@Z DD imagerel $LN3 + 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+66 + DD imagerel $unwind$?VmEmitVmExit@@YAPEAEPEAK@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$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 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; COMDAT ?VmEmitVmExit@@YAPEAEPEAK@Z +_TEXT SEGMENT +Size$ = 224 +?VmEmitVmExit@@YAPEAEPEAK@Z PROC ; VmEmitVmExit, COMDAT + +; 9 : { + +$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:__FE1E1473_VirtualMachine@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 10 : return NULL; + + 00036 33 c0 xor eax, eax + +; 11 : } + + 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 +?VmEmitVmExit@@YAPEAEPEAK@Z ENDP ; VmEmitVmExit +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; COMDAT ?VmEmitVmEnter@@YAPEAEPEAK@Z +_TEXT SEGMENT +Size$ = 224 +?VmEmitVmEnter@@YAPEAEPEAK@Z PROC ; VmEmitVmEnter, COMDAT + +; 5 : { + +$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:__FE1E1473_VirtualMachine@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 6 : return NULL; + + 00036 33 c0 xor eax, eax + +; 7 : } + + 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 +?VmEmitVmEnter@@YAPEAEPEAK@Z ENDP ; VmEmitVmEnter +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..b0c05d1 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/Virtualizer.cod @@ -0,0 +1,1520 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__463C1148_Virtualizer@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst +PUBLIC ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; ViValidateNativeCodeBlock +PUBLIC __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN3 + 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+122 + DD imagerel $unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$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 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 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; COMDAT ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +T$1 = 8 +Block$ = 256 +?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; ViValidateNativeCodeBlock, COMDAT + +; 8 : { + +$LN7: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 9 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) + + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00044 eb 0b jmp SHORT $LN4@ViValidate +$LN2@ViValidate: + 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax +$LN4@ViValidate: + 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00056 74 13 je SHORT $LN3@ViValidate + +; 10 : { +; 11 : if (!ViCanHandleInst(T)) + + 00058 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 0005c e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst + 00061 85 c0 test eax, eax + 00063 75 04 jne SHORT $LN5@ViValidate + +; 12 : return FALSE; + + 00065 33 c0 xor eax, eax + 00067 eb 07 jmp SHORT $LN1@ViValidate +$LN5@ViValidate: + +; 13 : } + + 00069 eb db jmp SHORT $LN2@ViValidate +$LN3@ViValidate: + +; 14 : return TRUE; + + 0006b b8 01 00 00 00 mov eax, 1 +$LN1@ViValidate: + +; 15 : } + + 00070 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00077 5f pop rdi + 00078 5d pop rbp + 00079 c3 ret 0 +?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ViValidateNativeCodeBlock +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; COMDAT ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z +_TEXT SEGMENT +Link$ = 224 +?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z PROC ; ViCanHandleInst, COMDAT + +; 4 : { + +$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:__463C1148_Virtualizer@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : return TRUE; + + 00036 b8 01 00 00 00 mov eax, 1 + +; 6 : } + + 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 +?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; ViCanHandleInst +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..ce1c7a5 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/VmCode.cod @@ -0,0 +1,1534 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__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 +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK +PUBLIC ??0_VM_CODE_LINK@@QEAA@K@Z ; _VM_CODE_LINK::_VM_CODE_LINK +PUBLIC __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0_VM_CODE_LINK@@QEAA@XZ DD imagerel $LN3 + 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+117 + DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@K@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$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 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 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; COMDAT ??0_VM_CODE_LINK@@QEAA@K@Z +_TEXT SEGMENT +this$ = 224 +LabelId$ = 232 +??0_VM_CODE_LINK@@QEAA@K@Z PROC ; _VM_CODE_LINK::_VM_CODE_LINK, COMDAT + +; 14 : { + +$LN3: + 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 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() + + 0003a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00041 e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK + +; 15 : Label = LabelId; + + 00046 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004d 8b 8d e8 00 00 + 00 mov ecx, DWORD PTR LabelId$[rbp] + 00053 89 48 14 mov DWORD PTR [rax+20], ecx + +; 16 : Flags = CODE_FLAG_IS_LABEL; + + 00056 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005d c7 40 10 01 00 + 00 00 mov DWORD PTR [rax+16], 1 + +; 17 : } + + 00064 48 8b 85 e0 00 + 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_VM_CODE_LINK@@QEAA@K@Z ENDP ; _VM_CODE_LINK::_VM_CODE_LINK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; COMDAT ??0_VM_CODE_LINK@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_VM_CODE_LINK@@QEAA@XZ PROC ; _VM_CODE_LINK::_VM_CODE_LINK, COMDAT + +; 4 : { + +$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:__B456BB99_VmCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5 : Flags = 0; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d c7 40 10 00 00 + 00 00 mov DWORD PTR [rax+16], 0 + +; 6 : Next = Prev = NULL; + + 00044 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00053 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 7 : Label = 0; + + 00061 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00068 c7 40 14 00 00 + 00 00 mov DWORD PTR [rax+20], 0 + +; 8 : RawData = NULL; + + 0006f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00076 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 + +; 9 : RawDataSize = 0UL; + + 0007e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 c7 40 20 00 00 + 00 00 mov DWORD PTR [rax+32], 0 + +; 10 : } + + 0008c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00093 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0009a 5f pop rdi + 0009b 5d pop rbp + 0009c c3 ret 0 +??0_VM_CODE_LINK@@QEAA@XZ ENDP ; _VM_CODE_LINK::_VM_CODE_LINK +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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 new file mode 100644 index 0000000..862c529 --- /dev/null +++ b/CodeVirtualizer/x64/Debug/XedWrap.cod @@ -0,0 +1,1378 @@ +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 + +include listing.inc + +INCLUDELIB MSVCRTD +INCLUDELIB OLDNAMES + +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H +__20BB4341_malloc@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__4324C6B3_xutility DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring DB 01H +__3AFA803E_string DB 01H +__0A4FAB91_cmath DB 01H +__6D5B120B_stdexcept DB 01H +__160863A3_xcall_once@h DB 01H +__99B256EE_atomic DB 01H +__A9557183_system_error DB 01H +__FB364CBD_vcruntime_typeinfo@h DB 01H +__33FB35AA_typeinfo DB 01H +__4E2906A2_memory DB 01H +__626C51AD_xfacet DB 01H +__2C72D662_xlocinfo DB 01H +__0E648B51_xlocale DB 01H +__1597A171_xiosbase DB 01H +__90E3ED46_xlocnum DB 01H +__165C22CB_ios DB 01H +__BB81F87E_xlocmon DB 01H +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__3DD0E9E9_xed-util@h DB 01H +__209FD46F_xed-iform-map@h DB 01H +__4E05E119_xed-inst@h DB 01H +__0607FC5A_xed-flags@h DB 01H +__B4910D57_xed-operand-accessors@h DB 01H +__8663E876_xed-state@h DB 01H +__BB5B4FF8_xed-encode@h DB 01H +__21860875_xed-encoder-hl@h DB 01H +__F7815311_xed-decoded-inst-api@h DB 01H +__47D9C7B6_XedWrap@cpp DB 01H +__7EA464AF_istream DB 01H +__1D745195_ostream DB 01H +__6FFBAAB7_streambuf DB 01H +__528871F3_iterator DB 01H +__3E6EDFAA_iosfwd DB 01H +__CF1C1A3F_utility DB 01H +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ??$_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 __JustMyCode_Default +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN _RTC_CheckStackVars:PROC +EXTRN _RTC_InitBase:PROC +EXTRN _RTC_Shutdown:PROC +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+70 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$wmemcpy DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$wmemcpy +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 + DD imagerel $LN7+223 + DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 + DD imagerel $LN5+379 + DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' +CONST ENDS +; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA +_DATA SEGMENT +?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var +_DATA ENDS +; COMDAT ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' + DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' + DB 'ols\MSVC\14.27.29110\include\xlocale', 00H ; `string' +CONST ENDS +; COMDAT 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 +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H + DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z +xdata ENDS +; Function compile flags: /Odt +; COMDAT __JustMyCode_Default +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 8b fc mov rdi, rsp + 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 00035 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime + 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 177 : _Cvt = _Lobj._Getcvt(); + + 00041 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] + 00060 48 8b f0 mov rsi, rax + 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH + 00068 f3 a4 rep movsb + +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { + + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ + 0007e 48 8b c8 mov rcx, rax + 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ + 0009e 48 8b c8 mov rcx, rax + 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000a6 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); + + 000b1 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv85[rbp] + 000f3 4c 8b c1 mov r8, rcx + 000f6 33 d2 xor edx, edx + 000f8 48 8b c8 mov rcx, rax + 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00100 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR tv93[rbp] + 00131 4c 8b c1 mov r8, rcx + 00134 33 d2 xor edx, edx + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0013e 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00150 48 83 c0 2c add rax, 44 ; 0000002cH + 00154 4c 8b c0 mov r8, rax + 00157 33 d2 xor edx, edx + 00159 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 48 8d a5 10 01 + 00 00 lea rsp, QWORD PTR [rbp+272] + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a c3 ret 0 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 78 + 01 00 00 mov rcx, QWORD PTR [rsp+376] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; + + 00040 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00047 e8 00 00 00 00 call strlen + 0004c 48 ff c0 inc rax + 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 566 : +; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); + + 00053 c7 44 24 20 37 + 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H + 0005b 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00062 41 b8 02 00 00 + 00 mov r8d, 2 + 00068 ba 01 00 00 00 mov edx, 1 + 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 00071 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN5@Maklocstr: + +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { + + 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 0008f eb 27 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] + 00095 48 ff c8 dec rax + 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000a0 48 ff c0 inc rax + 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax + 000a7 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax +$LN4@Maklocstr: + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr + +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); + + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 58 + 01 00 00 mov rcx, QWORD PTR [rsp+344] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_wcslen + 00043 48 ff c0 inc rax + 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 8b 05 00 00 00 + 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA + 00050 83 c0 03 add eax, 3 + 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax + 00057 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0005e 41 b8 02 00 00 + 00 mov r8d, 2 + 00064 ba 02 00 00 00 mov edx, 2 + 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0006d ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 94 : +; 95 : if (!_Ptrdest) { + + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs + +; 96 : _Xbad_alloc(); + + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN2@Maklocwcs: + +; 97 : } +; 98 : +; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); + + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 58 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 582 : // convert C string to wchar_t sequence using _Cvtvec +; 583 : size_t _Count; +; 584 : size_t _Count1; +; 585 : size_t _Wchars; +; 586 : const char* _Ptr1; +; 587 : int _Bytes; +; 588 : wchar_t _Wc; +; 589 : mbstate_t _Mbst1 = {}; + + 00051 48 8d 85 c8 00 + 00 00 lea rax, QWORD PTR _Mbst1$[rbp] + 00058 48 8b f8 mov rdi, rax + 0005b 33 c0 xor eax, eax + 0005d b9 08 00 00 00 mov ecx, 8 + 00062 f3 aa rep stosb + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0006b e8 00 00 00 00 call strlen + 00070 48 ff c0 inc rax + 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { + + 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] + 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0007f 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 48 8b 85 20 02 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr +$LN2@Maklocstr: + 00094 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0009f 48 2b c8 sub rcx, rax + 000a2 48 8b c1 mov rax, rcx + 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 000a9 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx + 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 000c2 48 ff c0 inc rax + 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 + 00 00 lea r9, QWORD PTR _Mbst1$[rbp] + 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] + 000eb 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_Wchars; // count terminating nul + + 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 0010e 48 ff c0 inc rax + 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 00115 c7 44 24 20 58 + 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H + 0011d 4c 8d 0d 00 00 + 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00124 41 b8 02 00 00 + 00 mov r8d, 2 + 0012a ba 02 00 00 00 mov edx, 2 + 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] + 00133 ff 15 00 00 00 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 48 8d 85 28 01 + 00 00 lea rax, QWORD PTR _Mbst2$[rbp] + 00164 48 8b f8 mov rdi, rax + 00167 33 c0 xor eax, eax + 00169 b9 08 00 00 00 mov ecx, 8 + 0016e f3 aa rep stosb + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] + 0017d 48 2b c8 sub rcx, rax + 00180 48 8b c1 mov rax, rcx + 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00187 48 63 85 84 00 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 48 8b 8d 20 02 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] + 001a6 48 ff c8 dec rax + 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 001ad 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax +$LN7@Maklocstr: + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 48 8b 85 30 02 + 00 00 mov rax, QWORD PTR _Cvt$[rbp] + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 + 00 00 lea r9, QWORD PTR _Mbst2$[rbp] + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 235 : #pragma warning(suppress: 6386) // Buffer overrun +; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); + + 00040 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _N$[rbp] + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 01 00 00 mov rcx, QWORD PTR [rsp+264] + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__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] + 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/x64/Debug/CodeVirtualizer.ilk b/x64/Debug/CodeVirtualizer.ilk index d6ae1d9ead24a5a0d4a2e0bb32ebed1304780772..64379731ed1e80a1b6f3c220571b6d70c40c65d9 100644 GIT binary patch literal 3232112 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

rVai0*=ZM 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

eC~^e%tkXL)#KC@-G4UUMukPJ@Vt< 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 literal 2753428 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

CMt73n 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

y`q>?N`fj9Yz1g#GFDoOjl+fJV|B@81bsggu%q` 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 z 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 z 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
>idd4)rr{-WO((A9lj`z8Cwo$sL^ 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

+<6((I_FcQIy&!}F{j&njF#?m^Md_# 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 z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL 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 OaG=?saG%FW6#ri@yYLPG