HalpQueryMaximumGsiv

INT64 __fastcall HalpQueryMaximumGsiv(UINT64 *GsivValue){
  ULONG_PTR *v1; 
  unsigned int v2; 
  unsigned int v4; 
  ULONG_PTR *v5; 
  _QWORD **v6; 
  _QWORD *v7; 
  _DWORD *v8; 
  int v9; 
  v1 = (ULONG_PTR *)HalpRegisteredInterruptControllers;
  v2 = 0;
  v4 = 0;
  if( (ULONG_PTR *)HalpRegisteredInterruptControllers == &HalpRegisteredInterruptControllers )
    return(unsigned int)-1073741823;
  do
  {
    v5 = v1;
    v1 = (ULONG_PTR *)*v1;
    v6 = (_QWORD **)(v5 + 30);
    v7 = *v6;
    while( v7 != v6 )
    {
      v8 = v7;
      v7 = (_QWORD *)*v7;
      v9 = v8[7];
      if( v9 != -1 && v8[6] - v8[5] + v9 - 1 > v4 )
        v4 = v8[6] - v8[5] + v9 - 1;
    }
  }
  while( v1 != &HalpRegisteredInterruptControllers );
  if( !v4 )
    return(unsigned int)-1073741823;
  else
    *(_DWORD *)GsivValue = v4;
  return v2;
}

Referenced by:

HalpInitializeSecondaryInterruptServices