RtlLengthCurrentClearRunBackwardEx
UINT64 __fastcall RtlLengthCurrentClearRunBackwardEx(INT64 a1, UINT64 a2, UINT64 a3){
_DWORD *v3;
UINT64 v4;
UINT64 v5;
unsigned int v7;
UINT64 v8;
_DWORD *v9;
char v10;
UINT64 v12;
v3 = *(_DWORD **)(a1 + 8);
v4 = a2 >> 5;
v5 = a2 & 0x1F;
v7 = 31 - v5;
v8 = 0i64;
v9 = &v3[v4];
LODWORD(a1) = *((_DWORD *)qword_140011CE0 + v5) & *v9;
if( (_DWORD)a1 )
{
LABEL_6:
v10 = -1;
if( _BitScanReverse64((unsigned __int64 *)&a1, (unsigned int)a1) )
v10 = a1;
v8 += (unsigned int)(31 - v10);
}
else
{
while( 1 )
{
v8 += 32i64;
if( v8 >= a3 && v8 - v7 >= a3 )
break;
if( v9 == v3 )
break;
LODWORD(a1) = *--v9;
if( *v9 )
goto LABEL_6;
}
}
v12 = v8 - v7;
if( v12 > a3 )
return a3;
return v12;
}Referenced by:
RtlCSparseBitmapFindBitSetCapped