AlpcpRestoreWriteAccess
void __fastcall AlpcpRestoreWriteAccess(__int64 a1){
__int64 v2;
void *v3;
__int64 v4;
_KAPC_STATE ApcState;
memset(&ApcState, 0, sizeof(ApcState));
v2 = *(_QWORD *)(a1 + 16);
v3 = *(void **)(a1 + 64);
v4 = *((_QWORD *)KeGetCurrentThread() + 23);
if( v3 )
{
if( *(_QWORD *)(a1 + 32) != v4 )
{
KiStackAttachProcess(*(_KPROCESS **)(a1 + 32), 0i64, &ApcState);
v3 = *(void **)(a1 + 64);
}
MmUnsecureVirtualMemory(v3);
if( *(_QWORD *)(a1 + 32) != v4 )
KiUnstackDetachProcess(&ApcState, 0i64);
*(_QWORD *)(a1 + 64) = 0i64;
}
*(_DWORD *)(a1 + 72) |= 1u;
*(_QWORD *)(v2 + 72) = 0i64;
*(_QWORD *)(v2 + 80) = a1;
}Referenced by:
AlpcViewDestroyProcedure
AlpcpExposeViewAttributeInSenderContext