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.