RtlValidateCorrelationVector
NTSTATUS __stdcall RtlValidateCorrelationVector(_BYTE *a1){
NTSTATUS LastContiguosBase64Position;
NTSTATUS CorrelationVectorEndPosition;
int v5;
__int64 v6;
__int64 v7;
int v8;
__int64 v9;
if( !a1 || RtlpGetCorrelationVectorBufferLength(a1) < 0 )
return -1073741811;
LastContiguosBase64Position = RtlpGetLastContiguosBase64Position(a1);
CorrelationVectorEndPosition = RtlpGetCorrelationVectorEndPosition(a1);
if( *a1 == 1 )
{
if( LastContiguosBase64Position != 15 )
return -1073741811;
}
else if( *a1 == 2 && LastContiguosBase64Position != 21 )
{
return -1073741811;
}
v5 = LastContiguosBase64Position + 1;
v6 = v5;
if( a1[v5 + 1] != 46 )
return -1073741811;
v7 = CorrelationVectorEndPosition;
while( v6 < v7 )
{
if( a1[v6 + 1] == 46 )
{
++v5;
++v6;
v8 = 0;
v9 = v5;
if( v6 < v7 )
{
do
{
if( (unsigned __int8)(a1[v6 + 1] - 48) > 9u )
break;
++v5;
++v6;
++v8;
}
while( v6 < v7 );
if( v8 && v8 <= 10 && (v8 != 10 || strncmp(&a1[v9 + 1], (INT8 *)"2147483647", 0xAui64) <= 0) )
continue;
}
}
return -1073741811;
}
return 0;
}Referenced by:
No references.