typedef struct _PgCtx
{
  BYTE                      CmpAppendDllSection[196];
  DWORD                     ContextSizeInQwords;
  INT64                     field_C8;
  INT64                     field_D0;
  INT64                     field_D8;
  INT64                     field_E0;
  PVOID                     ExAcquireResourceSharedLite;
  PVOID                     ExAcquireResourceExclusiveLite;
  PVOID                     ExAllocatePoolWithTag;
  PVOID                     ExFreePoolWithTag;
  PVOID                     ExMapHandleToPointer;
  PVOID                     ExQueueWorkItem;
  PVOID                     ExReleaseResourceLite;
  PVOID                     ExUnlockHandleTableEntry;
  PVOID                     ExAcquirePushLockExclusiveEx;
  PVOID                     ExReleasePushLockExclusiveEx;
  PVOID                     ExAcquirePushLockSharedEx;
  PVOID                     ExReleasePushLockSharedEx;
  PVOID                     KeAcquireInStackQueuedSpinLockAtDpcLevel;
  PVOID                     ExAcquireSpinLockSharedAtDpcLevel;
  PVOID                     KeBugCheckEx;
  PVOID                     KeDelayExecutionThread;
  PVOID                     KeEnterCriticalRegionThread;
  PVOID                     KeLeaveCriticalRegion;
  PVOID                     KeEnterGuardedRegion;
  PVOID                     KeLeaveGuardedRegion;
  PVOID                     MiUnlockWorkingSetCoreExclusive;
  PVOID                     ExReleaseSpinLockSharedFromDpcLevel;
  PVOID                     KeRevertToUserGroupAffinityThread;
  PVOID                     KeProcessorGroupAffinity;
  PVOID                     KeInitializeEnumerationContext;
  PVOID                     KeEnumerateNextProcessor;
  PVOID                     KeCountSetBitsAffinityEx;
  PVOID                     KeQueryAffinityProcess;
  PVOID                     KeQueryAffinityThread;
  PVOID                     KeSetSystemGroupAffinityThread;
  PVOID                     KeSetCoalescableTimer;
  PVOID                     HalPutDmaAdapter;
  PVOID                     ObReferenceObjectByName;
  PVOID                     RtlImageDirectoryEntryToData;
  PVOID                     RtlImageNtHeader;
  PVOID                     RtlLookupFunctionTableEx;
  PVOID                     RtlPcToFileHeader;
  PVOID                     RtlSectionTableFromVirtualAddress;
  PVOID                     DbgPrint;
  PVOID                     MmAllocateIndependentPages;
  PVOID                     MmFreeIndependentPages;
  PVOID                     MmSetPageProtection;
  INT64                     field_238;
  INT64                     field_240;
  INT64                     field_248;
  INT64                     field_250;
  INT64                     field_258;
  PVOID                     RtlLookupFunctionEntry;
  PVOID                     KeAcquireSpinLockRaiseToDpc;
  PVOID                     KeReleaseSpinLock;
  PVOID                     MmGetSessionById;
  PVOID                     MmGetNextSession;
  PVOID                     MmQuitNextSession;
  PVOID                     MmAttachSession;
  PVOID                     MmDetachSession;
  PVOID                     MmGetSessionIdEx;
  PVOID                     MmIsSessionAddress;
  PVOID                     MmIsAddressValid;
  PVOID                     MmSessionGetWin32Callouts;
  PVOID                     KeInsertQueueApc;
  PVOID                     KeWaitForSingleObject;
  QWORD                     field_2D0;
  PVOID                     ExReferenceCallBackBlock;
  PVOID                     ExGetCallBackBlockRoutine;
  PVOID                     ExDereferenceCallBackBlock;
  PVOID                     sub_FFFFF8062958AB50;
  PVOID                     PspEnumerateCallback;
  PVOID                     CmpEnumerateCallback;
  PVOID                     DbgEnumerateCallback;
  PVOID                     ExpEnumerateCallback;
  PVOID                     ExpGetNextCallback;
  PVOID                     xHalTimerWatchdogStop;
  PVOID                     KiSchedulerApcTerminate;
  PVOID                     KiSchedulerApc;
  PVOID                     xHalTimerWatchdogStop_;
  PVOID                     sub_FFFFF8062958BBC0;
  PVOID                     MmAllocatePagesForMdlEx;
  PVOID                     MmAllocateMappingAddress;
  PVOID                     MmMapLockedPagesWithReservedMapping;
  PVOID                     MmUnmapReservedMapping;
  PVOID                     PgKCalloutUmapReservedMapping;
  PVOID                     sub_FFFFF80629598300;
  PVOID                     MmAcquireLoadLock;
  PVOID                     MmReleaseLoadLock;
  PVOID                     KeEnumerateQueueApc;
  PVOID                     KeIsApcRunningThread;
  PVOID                     KeQsort;
  PVOID                     PsAcquireProcessExitSynchronization;
  PVOID                     ObDereferenceProcessHandleTable;
  PVOID                     PsGetNextProcess;
  PVOID                     PsQuitNextProcessThread;
  PVOID                     PsGetNextProcessEx;
  PVOID                     MmIsSessionLeaderProcess;
  PVOID                     PsInvokeWin32Callout;
  PVOID                     MmEnumerateAddressSpaceAndReferenceImages;
  PVOID                     PsGetProcessProtection;
  PVOID                     PsGetProcessSignatureLevel;
  PVOID                     PsGetProcessSectionBaseAddress;
  PVOID                     SeCompareSigningLevels;
  PVOID                     KeComputeSha256;
  PVOID                     KeComputeParallelSha256;
  PVOID                     KeSetEvent;
  PVOID                     RtlpConvertFunctionEntry;
  PVOID                     RtlpLookupPrimaryFunctionEntry;
  PVOID                     RtlIsMultiSessionSku;
  PVOID                     KiEnumerateCallback;
  PVOID                     KeStackAttachProcess;
  PVOID                     KeUnstackDetachProcess;
  PVOID                     KeIpiGenericCall;
  PVOID                     InitProbeAndLockMdl;
  PVOID                     MmGetPhysicalAddress;
  PVOID                     MmUnlockPages;
  PVOID                     VslVerifyPage;
  PVOID                     KiGetInterruptObjectAddress;
  INT64                     field_478;
  PVOID                     PsLookupProcessByProcessId;
  PVOID                     PsGetProcessId;
  PVOID                     MmCheckProcessShadow;
  PVOID                     MmGetImageRetpolineCodePage;
  INT64                     field_4A0;
  INT64                     field_4A8;
  INT64                     field_4B0;
  INT64                     field_4B8;
  PVOID                     qword_FFFFF80629E0F0C0;
  PVOID                     qword_FFFFF80629E12DE8;
  PVOID                     qword_FFFFF80629E12DF0;
  PVOID                     qword_FFFFF80629E12DF8;
  QWORD                     SystemEProcess;
  QWORD                     KiWaitAlways;
  PVOID                     *KiEntropyTimingRoutine;
  PVOID                     KiProcessListHead;
  PVOID                     KiProcessListLock;
  QWORD                     ObjectTypeRelated;
  INT64                     IoDriverObjectType;
  INT64                     PsProcessType;
  PVOID                     PsActiveProcessHead;
  PVOID                     PsInvertedFunctionTable;
  PVOID                     PsLoadedModuleList;
  PVOID                     PsLoadedModuleResource;
  PVOID                     PsLoadedModuleSpinLock;
  PVOID                     PspActiveProcessLock;
  PVOID                     PspCidTable;
  PVOID                     ExpUuidLock;
  PVOID                     AlpcpPortListLock;
  PVOID                     KeServiceDescriptorTable;
  PVOID                     KeServiceDescriptorTableShadow;
  PVOID                     KeServiceDescriptorTableFilter;
  PVOID                     VfThunksExtended;
  PVOID                     PsWin32CallBack;
  PPgFault                  pPgFault;
  PVOID                     KiTableInformation;
  PVOID                     HandleTableListHead;
  PVOID                     HandleTableListLock;
  INT64                     ObpKernelHandleTable;
  INT64                     KUserSharedData;
  INT64                     KiWaitNever;
  PVOID                     SeProtectedMapping;
  PVOID                     KiInterruptThunk;
  PVOID                     KiStackProtectNotifyEvent;
  INT64                     MmPteBase;
  PVOID                     NtImageBase;
  QWORD                     HalImageBase;
  PVOID                     KeNumberProcessors_0;
  PVOID                     g_PgCtx;
  PVOID                     qword_FFFFF80629EFC390;
  PINVERTED_FUNCTION_TABLE  RtlpInvertedFunctionTable;
  PVOID                     KiIsrThunkShadow;
  INT64                     field_620;
  INT64                     field_628;
  INT64                     field_630;
  INT64                     PrcbDpcStackOffset;
  INT64                     PrcbDpcRoutineActiveOffset;
  INT64                     CurrentThreadOffset;
  INT64                     field_650;
  INT64                     field_658;
  INT64                     field_660;
  INT64                     field_668;
  INT64                     field_670;
  INT64                     KthreadInitialStackOffset;
  INT64                     SchedulerApc;
  INT64                     ApcStateOffset;
  INT64                     EthreadStartAddressOffset;
  INT64                     EthreadTerminationPortOffset;
  INT64                     EthreadWin32StartAddressOffset;
  INT64                     ApcStateProcessOffset;
  INT64                     ProcessListEntryOffset;
  INT64                     Pcb_Visited_Offset;
  INT64                     EProcessFlags;
  INT64                     EProcessObjectTable;
  INT64                     ActiveProcessLinksOffset;
  INT64                     ProcessFlagsMask;
  INT64                     field_6E0;
  INT64                     field_6E8;
  INT64                     ObjectTypeTypeInfoOffset;
  INT64                     ObjectTypeCallbackListOffset;
  INT64                     field_700;
  INT64                     field_708;
  INT64                     field_710;
  INT64                     field_718;
  INT64                     ObjectTypeTypeFlagsOffset;
  INT64                     ObjectTypeSupportsObjectCallbacks;
  INT64                     CidTableIndex;
  INT64                     QuotaProcessOffset;
  INT64                     HandleTableListOffset;
  INT64                     field_748;
  INT64                     KldrDataTableEntryDllBaseOffset;
  INT64                     field_758;
  INT64                     field_760;
  INT64                     NonPagedPoolNxSz;
  INT64                     field_770;
  INT64                     field_778;
  INT64                     field_780;
  INT64                     field_788;
  INT64                     field_790;
  INT64                     field_798;
  INT64                     field_7A0;
  INT64                     field_7A8;
  INT64                     field_7B0;
  INT64                     field_7B8;
  INT64                     field_7C0;
  PVOID                     KernelCalloutAllocPool;
  INT64                     field_7D0;
  INT64                     field_7D8;
  INT                       field_7E0;
  INT                       SizeofAllPgEntries;
  INT64                     field_7E8;
  INT                       field_7F0;
  INT                       OffsetIpiTargetCall;
  INT64                     field_7F8;
  INT64                     field_800;
  INT                       SizeOfPgCtx;
  DWORD                     LoopCounter;
  INT                       LoadedModuleTag;
  INT                       RotNum;
  INT64                     LoopInitValue;
  INT                       MsSecArg2IterCondDefault;
  INT                       MsSecArg2Field4;
  INT                       MsSecRes80000_SumPgDataSizes;
  INT                       Reserved140000h;
  INT                       TypeProcessRelatedFlag;
  INT                       field_834;
  INT                       field_838;
  INT                       field_83C;
  INT64                     ImgIntegrityCounter;
  _KIDTENTRY64              IdtEntryIdx1;
  _KIDTENTRY64              IdtEntryIdx2;
  _KIDTENTRY64              IdtEntryIdx18h;
  SHORT                     NewIdtDescriptor1;
  CHAR                      PgSyscallHook;
  CHAR                      FeaturesActiveFlags;
  BYTE                      SyscallOpcode1;
  BYTE                      SyscallOpcode2;
  INT64                     NewIdtDescriptor2;
  INT64                     field_886;
  INT                       field_88E;
  CHAR                      field_892;
  CHAR                      field_893;
  CHAR                      field_894;
  CHAR                      field_895;
  CHAR                      field_896;
  CHAR                      field_897;
  INT64                     field_898;
  INT64                     field_8A0;
  SHORT                     field_8A8;
  SHORT                     StackSegmentReg;
  DWORD                     KInterruptDispatchOffset;
  DWORD                     KServiceRoutineOffset;
  DWORD                     KiIstStackSize;
  PVOID                     HalpPerfInterrupt;
  INT64                     field_8C0;
  PVOID                     NtosImageBase;
  PVOID                     NtosImageEnd;
  PVOID                     NtosNtImageHeaders;
  INT64                     pNewIdt;
  INT64                     pSyscall;
  INT                       PrcbNumber;
  INT                       field_8F4;
  INT                       SomethingWentWrong;
  INT                       field_8FC;
  INT64                     EncodedPointerPgCtxLocal;
  INT64                     EncodedPointerPgCtxEntry;
  INT64                     PgEntryType;
  INT64                     PgEntryData;
  INT                       field_920;
  INT                       KernelCalloutAllocType;
  INT64                     LockTypeSwitchValue;
  INT64                     PAGEVRF_Str;
  INT64                     PAGESPEC_Str;
  INT64                     INIT_Str;
  INT64                     PAGEKD_Str;
  INT                       ProcessTypeShiftConst;
  DWORD                     Magic_0x7E80690F;
  INT                       Win32CalloutFlag;
  INT                       field_95C;
  INT64                     field_960;
  INT64                     field_968;
  INT                       SessionState;
  INT                       Win32CalloutBlockSize;
  INT64                     Win32CalloutBlockStart;
  INT64                     SessionObject;
  INT64                     ProcShadowPid;
  INT                       GeneralFlags;
  INT                       ChecksStatusFlags;
  INT64                     field_998;
  INT64                     field_9A0;
  INT64                     field_9A8;
  INT64                     field_9B0;
  INT64                     field_9B8;
  INT64                     field_9C0;
  INT64                     field_9C8;
  INT64                     field_9D0;
  INT64                     field_9D8;
  INT64                     field_9E0;
  PVOID                     KiDispatchCallout;
  PVOID                     xHalTimerWatchdogStop;
  INT64                     field_9F8;
  INT64                     Type3ProcPushLock;
  INT64                     field_A08;
  PDWORD                    LocalAPICRelated;
  INT                       KCalloutAllocFailuresCounter;
  INT                       MaxPgEntriesSizeRelated;
  INT64                     field_A20;
  INT                       field_A28;
  INT                       OffsetStartPgEntries;
  INT64                     XoredRAXRDX;
  INT64                     XoredRAXRDX2;
  INT64                     MinimalBarrier;
  INT64                     field_A48;
  INT64                     field_A50;
  INT64                     field_A58;
  INT64                     ImgIntegrityPgCheckEntry;
  INT64                     MdlStartVaPlusByteOffset;
  INT64                     field_A70;
  PPgCtx                    pGlobalPgCtx;
  PPgCheckTypeEntry         pPgEntry;
  INT64                     PageHashMismatchRelated;
  DWORD64                   NonPagedPoolNxSize;
  INT64                     field_A98;
} PgCtx, *PPgCtx;

typedef struct _PgFault
{
  PVOID Ptr1;
  PVOID Ptr2;
  INT   Id1;
  INT   Id2;
  DWORD XoredChecksum;
} PgFault, *PPgFault;