ReadStringDelimited
INT64 __stdcall ReadStringDelimited(
UINT64 Flags,
UINT8 **const a2,
INT64 format,
INT64 ch,
INT64 pCharCount,
PVOID *pointer,
FILE *File,
INT64 iobuf,
INT64 stream){
UINT8 *v10;
unsigned int v12;
unsigned __int8 v13;
unsigned int v14;
UINT8 *v15;
bool v17;
UINT8 *v18;
UINT8 i;
unsigned __int8 v20;
unsigned __int8 v21;
unsigned __int8 v22;
__int64 v23;
unsigned __int64 v24;
int v25;
INT64 result;
INT64 width;
CHAR table[16];
__int128 v29;
v10 = *a2;
v12 = Flags;
v13 = 0;
v14 = Flags | 8;
v15 = v10 + 1;
*a2 = v10 + 1;
v17 = v10[1] == 94;
*(_OWORD *)table = 0i64;
if( !v17 )
{
v15 = v10;
v14 = v12;
}
v29 = 0i64;
v18 = v15 + 1;
i = v15[1];
if( i != 93 )
goto LABEL_6;
v13 = 93;
table[11] = 32;
v18 = v15 + 2;
for( i = 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 )
{
table[(unsigned __int64)v22 >> 3] |= 1 << (v22 & 7);
++v22;
}
v13 = 0;
v23 = 2i64;
}
else
{
v13 = i;
v24 = (unsigned __int64)i >> 3;
v25 = table[v24] | (1 << (i & 7));
v23 = 1i64;
table[v24] = v25;
}
v18 += v23;
}
*a2 = v18;
LODWORD(width) = (_DWORD)pointer;
LODWORD(result) = ReadString(v14, table, format, ch, (PVOID *)pCharCount, width, File, iobuf, stream);
return result;
}Referenced by:
input_s