HsaUpdateInterruptDestination

NTSTATUS __stdcall HsaUpdateInterruptDestination(PVOID BugCheckParameter3, PVOID BugCheckParameter4){
  int v3; 
  unsigned __int64 v4; 

  if( *(_DWORD *)BugCheckParameter4 == 1 )
  {
    *((_QWORD *)BugCheckParameter3 + 1) |= 0xFF00000000000000ui64;
    v4 = *(_QWORD *)BugCheckParameter3 & 0xFFFFFFFF000000BFui64 | 0xFFFFFF00;
LABEL_8:
    *(_QWORD *)BugCheckParameter3 = v4;
    return v4;
  }
  if( *(_DWORD *)BugCheckParameter4 != 4 )
  {
    if( *(_DWORD *)BugCheckParameter4 != 6 )
      KeBugCheckEx(0x5Cu, (PVOID)0x7000, (PVOID)0x20, BugCheckParameter3, BugCheckParameter4);
    v3 = *((_DWORD *)BugCheckParameter4 + 3) | (*((_DWORD *)BugCheckParameter4 + 2) << 16);
    *((_BYTE *)BugCheckParameter3 + 15) = HIBYTE(v3);
    v4 = *(_QWORD *)BugCheckParameter3 ^ (*(_DWORD *)BugCheckParameter3 ^ (v3 << 8)) & 0xFFFFFF00 | 0x40i64;
    goto LABEL_8;
  }
  *((_BYTE *)BugCheckParameter3 + 15) = *((_BYTE *)BugCheckParameter4 + 11);
  v4 = *(_QWORD *)BugCheckParameter3 & 0xFFFFFFFF000000BFui64;
  *(_QWORD *)BugCheckParameter3 = v4 | ((unsigned __int64)(*((_DWORD *)BugCheckParameter4 + 2) & 0xFFFFFF) << 8);
  return v4;
}

Referenced by:

HsaUpdateRemappingTableEntry