RtlCaptureContext2
NTSTATUS __stdcall RtlCaptureContext2(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
__int64 v4;
__int64 v5;
__int64 v6;
__int64 v7;
__int64 v8;
__int64 v9;
__int64 v10;
__int64 v11;
__int64 v12;
__int64 v13;
__int64 v14;
__int128 v15;
__int128 v16;
__int128 v17;
__int128 v18;
__int128 v19;
__int128 v20;
__int128 v21;
__int128 v22;
__int128 v23;
__int128 v24;
__int128 v25;
__int128 v26;
__int128 v27;
__int128 v28;
__int128 v29;
__int128 v30;
NTSTATUS result;
NTSTATUS v32;
void *retaddr;
char v34;
*(_QWORD *)(a1 + 120) = v4;
*(_QWORD *)(a1 + 128) = a1;
*(_QWORD *)(a1 + 136) = a2;
*(_QWORD *)(a1 + 184) = a3;
*(_QWORD *)(a1 + 192) = a4;
*(_QWORD *)(a1 + 200) = v9;
*(_QWORD *)(a1 + 208) = v10;
*(_OWORD *)(a1 + 416) = v15;
*(_OWORD *)(a1 + 432) = v16;
*(_OWORD *)(a1 + 448) = v17;
*(_OWORD *)(a1 + 464) = v18;
*(_OWORD *)(a1 + 480) = v19;
*(_OWORD *)(a1 + 496) = v20;
*(_WORD *)(a1 + 56) = __CS__;
*(_WORD *)(a1 + 58) = __DS__;
*(_WORD *)(a1 + 60) = __ES__;
*(_WORD *)(a1 + 66) = __SS__;
*(_WORD *)(a1 + 62) = __FS__;
*(_WORD *)(a1 + 64) = __GS__;
*(_QWORD *)(a1 + 144) = v5;
*(_QWORD *)(a1 + 160) = v6;
*(_QWORD *)(a1 + 168) = v8;
*(_QWORD *)(a1 + 176) = v7;
*(_QWORD *)(a1 + 216) = v11;
*(_QWORD *)(a1 + 224) = v12;
*(_QWORD *)(a1 + 232) = v13;
*(_QWORD *)(a1 + 240) = v14;
*(_DWORD *)(a1 + 258) = 0;
*(_OWORD *)(a1 + 512) = v21;
*(_OWORD *)(a1 + 528) = v22;
*(_OWORD *)(a1 + 544) = v23;
*(_OWORD *)(a1 + 560) = v24;
*(_OWORD *)(a1 + 576) = v25;
*(_OWORD *)(a1 + 592) = v26;
*(_OWORD *)(a1 + 608) = v27;
*(_OWORD *)(a1 + 624) = v28;
*(_OWORD *)(a1 + 640) = v29;
*(_OWORD *)(a1 + 656) = v30;
*(_DWORD *)(a1 + 280) = _mm_getcsr();
*(_DWORD *)(a1 + 52) = _mm_getcsr();
*(_QWORD *)(a1 + 152) = &v34;
*(_QWORD *)(a1 + 248) = retaddr;
result = v32;
*(_DWORD *)(a1 + 68) = v32;
*(_DWORD *)(a1 + 48) = 0;
*(_DWORD *)(a1 + 48) |= 0x10000Fu;
return result;
}Referenced by:
RtlUnwindEx