typedef struct _CONTEXT
{
    unsigned __int64 P1Home;
    unsigned __int64 P2Home;
    unsigned __int64 P3Home;
    unsigned __int64 P4Home;
    unsigned __int64 P5Home;
    unsigned __int64 P6Home;
    unsigned long ContextFlags;
    unsigned long MxCsr;
    unsigned short SegCs;
    unsigned short SegDs;
    unsigned short SegEs;
    unsigned short SegFs;
    unsigned short SegGs;
    unsigned short SegSs;
    unsigned long EFlags;
    unsigned __int64 Dr0;
    unsigned __int64 Dr1;
    unsigned __int64 Dr2;
    unsigned __int64 Dr3;
    unsigned __int64 Dr6;
    unsigned __int64 Dr7;
    unsigned __int64 Rax;
    unsigned __int64 Rcx;
    unsigned __int64 Rdx;
    unsigned __int64 Rbx;
    unsigned __int64 Rsp;
    unsigned __int64 Rbp;
    unsigned __int64 Rsi;
    unsigned __int64 Rdi;
    unsigned __int64 R8;
    unsigned __int64 R9;
    unsigned __int64 R10;
    unsigned __int64 R11;
    unsigned __int64 R12;
    unsigned __int64 R13;
    unsigned __int64 R14;
    unsigned __int64 R15;
    unsigned __int64 Rip;
    union
    {
        XSAVE_FORMAT FltSave;
        struct
        {
            M128A Header[2];
            M128A Legacy[8];
            M128A Xmm0;
            M128A Xmm1;
            M128A Xmm2;
            M128A Xmm3;
            M128A Xmm4;
            M128A Xmm5;
            M128A Xmm6;
            M128A Xmm7;
            M128A Xmm8;
            M128A Xmm9;
            M128A Xmm10;
            M128A Xmm11;
            M128A Xmm12;
            M128A Xmm13;
            M128A Xmm14;
            M128A Xmm15;
        };
    };
    M128A VectorRegister[26];
    unsigned __int64 VectorControl;
    unsigned __int64 DebugControl;
    unsigned __int64 LastBranchToRip;
    unsigned __int64 LastBranchFromRip;
    unsigned __int64 LastExceptionToRip;
    unsigned __int64 LastExceptionFromRip;
} CONTEXT, *PCONTEXT;