ReadStringDelimited_0

__int64 __fastcall ReadStringDelimited_0(
        char a1,
        unsigned __int16 **a2,
        wint_t *a3,
        _DWORD *a4,
        __int64 a5,
        int a6,
        FILE *File,
        __int64 Src,
        __int64 a9){
  unsigned __int16 v12; 
  unsigned __int16 *v14; 
  char v15; 
  unsigned __int16 *v16; 
  bool v17; 
  unsigned __int16 *v18; 
  unsigned __int16 i; 
  unsigned __int16 v20; 
  unsigned __int16 v21; 
  __int64 v22; 
  unsigned __int64 v23; 
  int v24; 
  INT64 result; 
  char v27; 
  v12 = 0;
  memset((INT64)&result, 0i64);
  v14 = *a2;
  v15 = a1 | 8;
  v16 = *a2 + 1;
  *a2 = v16;
  v17 = *v16 == 94;
  if( *v16 != 94 )
    v16 = v14;
  if( !v17 )
    v15 = a1;
  v18 = v16 + 1;
  i = v16[1];
  if( i != 93 )
    goto LABEL_7;
  v27 = 32;
  v18 = v16 + 2;
  v12 = 93;
  for( i = v16[2]; i != 93; i = *v18 )
  {
LABEL_7:
    if( i == 45 && v12 && (v20 = v18[1], v20 != 93) )
    {
      v21 = v18[1];
      if( v12 >= v20 )
        v21 = v12;
      if( v12 >= v20 )
        v12 = v18[1];
      while( v12 <= v21 )
      {
        *((_BYTE *)&result + ((unsigned __int64)v12 >> 3)) |= 1 << (v12 & 7);
        ++v12;
      }
      v12 = 0;
      v22 = 4i64;
    }
    else
    {
      v12 = i;
      v23 = (unsigned __int64)i >> 3;
      v24 = *((char *)&result + v23) | (1 << (i & 7));
      v22 = 2i64;
      *((_BYTE *)&result + v23) = v24;
    }
    v18 = (unsigned __int16 *)((char *)v18 + v22);
  }
  *a2 = v18;
  return ReadString_0(v15, (__int64)&result, a3, a4, a5, a6, File, Src, a9);
}

Referenced by:

winput_s