HalpSignalRAS

NTSTATUS __stdcall HalpSignalRAS(INT64 a1){
  _DWORD *v2; 
  _DWORD *v3; 
  __int64 v5; 
  __int64 v6; 

  if( *(_DWORD *)(a1 + 96) != 12 || **(_QWORD **)(a1 + 64) == -1i64 )
    return -1073741275;
  v2 = *(_DWORD **)(a1 + 80);
  if( !v2 )
  {
    v3 = MmMapIoSpaceEx(*(_LARGE_INTEGER *)(a1 + 184), *(unsigned int *)(a1 + 72), 0x204ui64);
    *(_QWORD *)(a1 + 80) = v3;
    v2 = v3;
    if( !v3 )
      return -1073741595;
  }
  v5 = *(_QWORD *)(a1 + 192);
  v6 = *(_QWORD *)(a1 + 200);
  if( *(_DWORD *)(a1 + 72) == 4 )
    *v2 = v6 | v5 & *v2;
  else
    *(_QWORD *)v2 = v6 | v5 & *(_QWORD *)v2;
  return 0;
}

Referenced by:

HalpCheckAndReportGhes