SmHpUnprotectListNeighbors

int __fastcall SmHpUnprotectListNeighbors(__int64 a1, __int64 a2, _QWORD *a3){
  __int64 v6; 
  __int64 v7; 
  INT64 v8; 
  __int64 v9; 
  __int64 v10; 
  INT64 v11; 
  __int64 v12; 

  if( !a3 )
  {
    v12 = *(unsigned int *)(*(_QWORD *)(a2 + 8) + 16i64);
    _BitScanReverse((unsigned int *)&v8, v12);
    v9 = v12 ^ (unsigned int)(1 << v8);
    goto LABEL_6;
  }
  if( *a3 != a2 )
  {
    v10 = *(unsigned int *)(*a3 + 16i64);
    _BitScanReverse((unsigned int *)&v11, v10);
    SmHpBufferProtectEx(v11, *(_QWORD *)(a1 + 8 * v11) + 16 * (v10 ^ (unsigned int)(1 << v11)), 1, 0i64);
  }
  v6 = a3[1];
  if( v6 != a2 )
  {
    v7 = *(unsigned int *)(v6 + 16);
    _BitScanReverse((unsigned int *)&v8, v7);
    v9 = v7 ^ (unsigned int)(1 << v8);
LABEL_6:
    LODWORD(v6) = SmHpBufferProtectEx(v8, *(_QWORD *)(a1 + 8 * v8) + 16 * v9, 1, 0i64);
  }
  return v6;
}

Referenced by:

No references.