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 d6ae1d9..6437973 100644 Binary files a/x64/Debug/CodeVirtualizer.ilk and b/x64/Debug/CodeVirtualizer.ilk differ