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