RtlValidateCorrelationVector
INT64 __fastcall RtlValidateCorrelationVector(BYTE *a1){
int LastContiguosBase64Position;
int CorrelationVectorEndPosition;
const INT8 *v4;
int v6;
__int64 v7;
__int64 v8;
int v9;
__int64 v10;
va_list v11;
if( !a1 || (int)RtlpGetCorrelationVectorBufferLength(a1) < 0 )
return 3221225485i64;
LastContiguosBase64Position = RtlpGetLastContiguosBase64Position(a1);
CorrelationVectorEndPosition = RtlpGetCorrelationVectorEndPosition(a1);
if( *a1 == 1 )
{
if( LastContiguosBase64Position != 15 )
return 3221225485i64;
}
else if( *a1 == 2 && LastContiguosBase64Position != 21 )
{
return 3221225485i64;
}
v6 = LastContiguosBase64Position + 1;
v7 = v6;
if( a1[v6 + 1] != 46 )
return 3221225485i64;
v8 = CorrelationVectorEndPosition;
while( v7 < v8 )
{
if( a1[v7 + 1] == 46 )
{
++v6;
++v7;
v9 = 0;
v10 = v6;
if( v7 < v8 )
{
do
{
if( (unsigned __int8)(a1[v7 + 1] - 48) > 9u )
break;
++v6;
++v7;
++v9;
}
while( v7 < v8 );
if( v9
&& v9 <= 10
&& (v9 != 10 || (int)strncmp((INT8 *)&a1[v10 + 1], (size_t)"2147483647", 0xAui64, v4, v11) <= 0) )
{
continue;
}
}
}
return 3221225485i64;
}
return 0i64;
}Referenced by:
No references.