UINT64 *__fastcall CmpFindLowerBoundInSortedArray(UINT64 *a1, UINT64 *a2, UINT64 a3){
UINT64 *v3;
unsigned int v4;
UINT64 *v5;
int v6;
UINT64 *v7;
v3 = &a2[2 * a3];
if( a2 < v3 )
{
v4 = *(_DWORD *)a1;
do
{
v5 = &a2[2 * (a3 >> 1)];
if( v4 <= *(_DWORD *)v5 )
{
a3 >>= 1;
v3 = v5;
v6 = -(v4 < *(_DWORD *)v5);
}
else
{
v6 = 1;
a3 += -1i64 - (a3 >> 1);
}
v7 = v5 + 2;
if( v6 > 0 )
a2 = v7;
}
while( a2 < v3 );
}
return a2;
}