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