DmrpRmrrTreeAddRegionToDevice

INT64 __fastcall DmrpRmrrTreeAddRegionToDevice(INT64 a1, INT64 a2, INT64 a3){
  INT64 v3; 
  _QWORD *v5; 
  unsigned int 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 )
  {
    *(_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;
  }
  else
  {
    return(unsigned int)-1073741670;
  }
  return v7;
}

Referenced by:

DmrEnumerateRmrrDomains