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