SdbpBinarySearchUnique

__int64 __fastcall SdbpBinarySearchUnique(__int64 a1, unsigned int a2, unsigned __int64 a3, int *a4){
  signed int v4; 
  int v5; 
  signed int v6; 
  unsigned int v7; 
  *a4 = -1;
  v4 = a2 - 1;
  v5 = 0;
  v6 = -1;
  if( (int)(a2 - 1) < 0 )
  {
LABEL_7:
    v7 = 1;
    if( v5 - v4 > 1 )
      *a4 = v6;
    else
      return 0;
    return v7;
  }
  else
  {
    while( 1 )
    {
      v6 = (v4 + v5) / 2;
      if( v6 < 0 || v6 >= a2 )
        return 0i64;
      if( a3 > *(_QWORD *)(a1 + 12i64 * v6) || (v4 = v6 - 1, a3 >= *(_QWORD *)(a1 + 12i64 * v6)) )
        v5 = v6 + 1;
      if( v4 < v5 )
        goto LABEL_7;
    }
  }
}

Referenced by:

SdbpGetFirstIndexedRecord