ReadStringDelimited
NTSTATUS __stdcall ReadStringDelimited(
INT64 a1,
INT64 a2,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
_FILE *File,
INT64 a8,
INT64 a9){
__int64 v10;
unsigned int v12;
unsigned __int8 v13;
unsigned int v14;
__int64 v15;
bool v17;
unsigned __int8 *v18;
unsigned __int8 i;
unsigned __int8 v20;
unsigned __int8 v21;
unsigned __int8 v22;
__int64 v23;
unsigned __int64 v24;
int v25;
INT64 v27;
INT64 v28[2];
__int128 v29;
v10 = *(_QWORD *)a2;
v12 = a1;
v13 = 0;
v14 = a1 | 8;
v15 = v10 + 1;
*(_QWORD *)a2 = v10 + 1;
v17 = *(_BYTE *)(v10 + 1) == 94;
*(_OWORD *)v28 = 0i64;
if( !v17 )
{
v15 = v10;
v14 = v12;
}
v29 = 0i64;
v18 = (unsigned __int8 *)(v15 + 1);
i = *(_BYTE *)(v15 + 1);
if( i != 93 )
goto LABEL_6;
v13 = 93;
BYTE3(v28[1]) = 32;
v18 = (unsigned __int8 *)(v15 + 2);
for( i = *(_BYTE *)(v15 + 2); i != 93; i = *v18 )
{
LABEL_6:
if( i == 45 && v13 && (v20 = v18[1], v20 != 93) )
{
v21 = v18[1];
v22 = v13;
if( v13 >= v20 )
v21 = v13;
if( v13 >= v20 )
v22 = v18[1];
while( v22 <= v21 )
{
*((_BYTE *)v28 + ((unsigned __int64)v22 >> 3)) |= 1 << (v22 & 7);
++v22;
}
v13 = 0;
v23 = 2i64;
}
else
{
v13 = i;
v24 = (unsigned __int64)i >> 3;
v25 = *((char *)v28 + v24) | (1 << (i & 7));
v23 = 1i64;
*((_BYTE *)v28 + v24) = v25;
}
v18 += v23;
}
*(_QWORD *)a2 = v18;
LODWORD(v27) = a6;
return ReadString(v14, (INT64)v28, a3, a4, a5, v27, File, a8, a9);
}Referenced by:
input_s