CmpRemoveCellFromIndex

VOID __fastcall CmpRemoveCellFromIndex(_WORD *a1, UINT16 a2){
  __int64 v2; 
  unsigned __int16 v3; 
  UINT64 v4; 
  UINT8 *v5; 
  UINT8 *v6; 
  unsigned __int16 v7; 
  v2 = a2;
  if( ((*a1 - 26220) & 0xFDFF) != 0 )
  {
    v3 = a1[1] - 1;
    a1[1] = v3;
    if( !v3 )
      return;
    v4 = 4 * (v3 - (unsigned __int64)a2);
    v5 = (UINT8 *)&a1[2 * a2 + 4];
    v6 = (UINT8 *)&a1[2 * v2 + 2];
  }
  else
  {
    v7 = a1[1] - 1;
    a1[1] = v7;
    if( !v7 )
      return;
    v4 = 8 * (v7 - v2);
    v5 = (UINT8 *)&a1[4 * (unsigned int)(v2 + 1) + 2];
    v6 = (UINT8 *)&a1[4 * v2 + 2];
  }
  memmove(v6, v5, v4);
}

Referenced by:

CmpRemoveSubKeyCellNoCellRef