DmrpRmrrTreeAddRegionToDevice

NTSTATUS __stdcall DmrpRmrrTreeAddRegionToDevice(INT64 a1, INT64 a2, INT64 a3){
  INT64 v3; 
  _QWORD *v5; 
  NTSTATUS v7; 
  _QWORD *v8; 
  _QWORD *v9; 
  INT64 v11; 

  v3 = a1 + 16;
  v5 = *(_QWORD **)(a1 + 16);
  while( v5 != (_QWORD *)v3 )
  {
    a1 = (INT64)v5;
    v5 = (_QWORD *)*v5;
    if( *(_QWORD *)(a1 + 16) == a2 && *(_QWORD *)(a1 + 24) == a3 )
      return 0;
  }
  v7 = 0;
  v11 = 0i64;
  ExtEnvAllocateMemory(a1, 0x20ui64, &v11);
  v8 = (_QWORD *)v11;
  if( !v11 )
    return -1073741670;
  *(_QWORD *)(v11 + 16) = a2;
  v8[3] = a3;
  v9 = *(_QWORD **)(v3 + 8);
  if( *v9 != v3 )
    __fastfail(3u);
  *v8 = v3;
  v8[1] = v9;
  *v9 = v8;
  *(_QWORD *)(v3 + 8) = v8;
  return v7;
}

Referenced by:

DmrEnumerateRmrrDomains