RtlpHpVaMgrCtxQuery

INT64 __fastcall RtlpHpVaMgrCtxQuery(UINT64 a1, CHAR a2){
  __int64 v2; 
  INT64 v3; 
  __int64 v5; 
  INT64 v6; 
  __int64 v7; 
  __int64 v8; 
  v3 = a2;
  v5 = v2;
  v6 = RtlSparseArrayElementAllocated(a1 + 16, (a2 - *(_QWORD *)(a1 + 8)) >> 20);
  if( v6 )
  {
    *(_DWORD *)(v5 + 28) = 0;
    if( (*(_BYTE *)v6 & 4) != 0 )
      v7 = *(_QWORD *)(v6 + 24);
    else
      v7 = *(unsigned __int16 *)(v6 + 24);
    *(_QWORD *)v5 = v7 << 20;
    v8 = *(unsigned __int8 *)(v6 + 1) + 45i64;
    *(_DWORD *)(v5 + 24) = 16;
    *(_DWORD *)(v5 + 8) = (*(unsigned __int8 *)(a1 + 48 * v8 + 46) >> 1) & 3;
    *(_DWORD *)(v5 + 12) = *(unsigned __int8 *)(a1 + 48 * v8 + 45);
    *(_QWORD *)(v5 + 16) = v6 + 8;
    return 0i64;
  }
  else
  {
    RtlpLogHeapFailure(22i64, v3, 0i64, 0i64, 0i64, 0i64);
    return 3221225473i64;
  }
}

Referenced by:

RtlpHpQueryVA
RtlpHpSegMgrCommit