RtlpHpSegPageRangeSplit

UINT64 __fastcall RtlpHpSegPageRangeSplit(INT64 a1, INT64 a2, UINT64 a3){
  int v3; 
  __int64 v5; 
  UINT64 v6; 
  int v7; 
  UINT64 v8; 
  INT64 v9; 
  __int16 v10; 
  v3 = *(unsigned __int8 *)(a2 + 31);
  v5 = (unsigned int)a3;
  if( v3 == (_DWORD)a3 )
    return 0i64;
  v7 = v3 - a3;
  v8 = (unsigned __int8)v7;
  v9 = 32i64 * (unsigned int)(v7 - 1);
  v6 = a2 + 32 * v5;
  *(_BYTE *)(v6 + 24) |= 2u;
  *(_BYTE *)(v9 + v6 + 31) = v8 - 1;
  *(_BYTE *)(v6 + 31) = v8;
  v10 = RtlpHpSegPageRangeCountCommittedPages(v9, v6, v8);
  *(_DWORD *)v6 = -857879331;
  *(_WORD *)(v6 + 28) = ~v10;
  *(_BYTE *)(32i64 * (unsigned int)(v5 - 1) + a2 + 31) = v5 - 1;
  *(_BYTE *)(a2 + 31) = v5;
  *(_WORD *)(a2 + 28) = ~(*(_WORD *)(v6 + 28) - *(_WORD *)(a2 + 28));
  return v6;
}

Referenced by:

RtlpHpSegLargeRangeAllocate