HalpIvtpInitializeReservedDomain

INT64 __fastcall HalpIvtpInitializeReservedDomain(INT64 a1, INT64 a2){
  _QWORD *v2; 
  _DWORD *v5; 
  unsigned int v6; 
  INT64 ContextTable; 
  UINT64 v8; 
  INT64 v9; 
  _DWORD *v10; 
  UINT64 v11; 
  INT64 v12; 
  INT64 v13; 
  INT64 v14; 
  INT64 result[3]; 
  int v16; 
  v2 = *(_QWORD **)(a2 + 8);
  v5 = (_DWORD *)*v2;
  if( *(_DWORD *)*v2 == 1 )
  {
    if( *((unsigned __int16 *)v5 + 4) == *(_DWORD *)(a1 + 212) )
    {
      ContextTable = IvtAllocateContextTable(a1, *((unsigned __int16 *)v5 + 6));
      v6 = ContextTable;
      if( (int)ContextTable < 0 )
        return ContextTable;
      memset((INT64)result, 0i64);
      v16 = *(_DWORD *)a2;
      result[2] = v2[2];
      v10 = (_DWORD *)*v2;
      result[0] = 0x200000001i64;
      v11 = *((unsigned __int16 *)v10 + 6);
      if( (*(_DWORD *)(a1 + 184) & 0x1000000) != 0 )
      {
        LODWORD(v14) = 1;
        IvtUpdateExtendedContextEntry(a1, v11, v8, v9, (INT64)result, v13, v14, 0i64);
      }
      else
      {
        LODWORD(v12) = 1;
        IvtUpdateContextEntry(a1, v11, (INT64)result, v9, v12, 0i64);
      }
    }
    else
    {
      return(unsigned int)-1073741811;
    }
  }
  else
  {
    return 0;
  }
  return v6;
}

Referenced by:

IvtProcessDeviceExceptions