SMKM_STORE_MGR::SmFeCheckPresent

__int64 __fastcall SMKM_STORE_MGR::SmFeCheckPresent(__int64 a1, unsigned int *a2, unsigned int *a3, int *a4){
  unsigned int v4; 
  unsigned int v7; 
  unsigned int v8; 
  int v9; 
  unsigned int v10; 
  int v11; 
  __m128i *v12; 
  __int64 v13; 
  unsigned __int64 v14; 
  __int64 v15; 
  __int64 v17; 
  unsigned int v18; 
  INT64 *v20; 
  __int64 v21[2]; 
  int v22; 
  int v23; 
  __int64 v24; 
  INT64 result[17]; 
  v4 = *a2;
  memset((INT64)result, 0i64);
  v24 = 1i64;
  v21[0] = 0i64;
  v21[1] = 0i64;
  v20 = result;
  v7 = 0;
  v8 = *a3;
  v9 = 0;
  v22 = 0;
  v10 = 1024;
  v18 = v8;
  v23 = 8;
  v11 = 1024;
  B_TREE<_SM_PAGE_KEY,SMKM_STORE_MGR::SMKM_FRONTEND_ENTRY,4096,B_TREE_DUMMY_NODE_POOL,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeSearchKey(
    a1 + 448,
    v4,
    (__int64)&v20);
  if( v22 == -1 || !v22 )
    v12 = (__m128i *)v21;
  else
    v12 = (__m128i *)&v20[2 * (unsigned int)(v22 - 1)];
  v13 = v12->m128i_i64[0];
  v14 = _mm_srli_si128(*v12, 8).m128i_u64[0] - 8;
  while( v13 )
  {
    v14 += 8i64;
    if( v14 >= v13 + 8 * ((unsigned __int64)(unsigned __int16)*(_DWORD *)v13 + 2) )
    {
      v17 = *(_QWORD *)(v13 + 8);
      if( v17 )
      {
        v13 = *(_QWORD *)(v13 + 8);
        v14 = v17 + 16;
      }
      v15 = (v17 + 16) & -(__int64)(v17 != 0);
    }
    else
    {
      v15 = v14;
    }
    if( !v15 || v4 < *(_DWORD *)v15 || (*(_BYTE *)(v15 + 7) & 1) != 0 || ((*(_BYTE *)(v15 + 6) - 1) & 0xFD) != 0 )
      break;
    if( *(_BYTE *)(v15 + 6) == 1 )
      v9 = 1;
    if( v7 )
    {
      if( v11 != *(unsigned __int16 *)(v15 + 4) )
        break;
    }
    else
    {
      v11 = *(unsigned __int16 *)(v15 + 4);
    }
    if( ++v7 >= v18 )
      break;
    ++v4;
  }
  if( v7 )
  {
    v10 = v11;
    *a3 = v7;
    *a4 = v9;
  }
  return v10;
}

Referenced by:

No references.