input_s
__int64 __fastcall input_s(FILE *File, INT64 a2, __int64 a3){
int v3;
_BYTE **v4;
int v5;
unsigned __int8 *v6;
FILE *v7;
unsigned __int8 v8;
int v9;
unsigned int v10;
unsigned int v11;
unsigned __int64 v12;
int v13;
char v14;
char v15;
char v16;
int v17;
int v18;
char v19;
__int64 v20;
unsigned __int8 v21;
char v22;
__int64 v23;
_BYTE *v24;
unsigned int v25;
NTSTATUS v26;
int v27;
_DWORD *v28;
INT64 v29;
int v30;
int v31;
int v32;
int v33;
_iobuf *v34;
NTSTATUS v35;
__int64 v36;
wchar_t v37;
int v38;
__int64 v39;
NTSTATUS v40;
__int64 v41;
int v42;
wchar_t v43;
int v44;
int v45;
NTSTATUS v46;
int v47;
int v48;
unsigned int v49;
NTSTATUS StringDelimited;
int v51;
bool v52;
int v53;
INT64 v55;
char v56;
char v57;
char v58;
unsigned int v59;
INT64 v60;
INT64 v61;
int v62;
int v63;
int v64;
int v65;
int v66;
__int64 v67;
int v68;
_DWORD v69[3];
INT64 v70;
_BYTE *v71;
INT64 v73;
_BYTE **v74;
char v75;
v74 = (_BYTE **)a3;
v3 = 0;
v4 = (_BYTE **)a3;
v67 = 0i64;
v5 = 0;
HIDWORD(v61) = 0;
v6 = (unsigned __int8 *)a2;
HIDWORD(v60) = 0;
v7 = File;
v66 = 0;
*(_QWORD *)&v69[1] = 0i64;
if( !a2 || !File )
{
v10 = -1;
LABEL_220:
xHalTimerWatchdogStop(0i64, 0i64);
return v10;
}
v8 = *(_BYTE *)a2;
v9 = 0;
v57 = 0;
v10 = 0;
LODWORD(v61) = 0;
LODWORD(v60) = 0;
v59 = 0;
v69[0] = 0;
if( !v8 )
return v10;
v11 = -1;
while( 1 )
{
v12 = v8;
if( (pctype[v8] & 8) == 0 )
break;
--v9;
while( 1 )
{
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v13 = inc(v7);
v11 = -1;
if( v13 == -1 )
break;
if( (pctype[(unsigned __int8)v13] & 8) == 0 )
{
ungetc_nolock(v13, v7);
v11 = -1;
goto LABEL_10;
}
}
do
LABEL_10:
++v6;
while( (pctype[*v6] & 8) != 0 );
LABEL_195:
v8 = *v6;
v3 = 0;
if( !*v6 )
goto LABEL_206;
}
if( v8 != 37 )
goto LABEL_191;
if( v6[1] == 37 )
{
++v6;
LABEL_191:
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v5 = inc(v7);
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
v51 = *v6++;
if( v51 == v5 )
goto LABEL_192;
v11 = -1;
if( v5 == -1 )
goto LABEL_215;
ungetc_nolock(v5, v7);
v53 = v66;
v11 = -1;
goto LABEL_212;
}
v14 = 0;
v64 = 0;
v58 = 0;
v15 = 0;
v75 = 0;
v16 = 0;
v17 = 0;
v68 = 0;
v18 = 0;
v19 = 1;
do
{
v73 = (INT64)++v6;
v20 = *v6;
if( (pctype[v20] & 4) != 0 )
{
++v18;
v3 = v20 + 2 * (5 * v3 - 24);
goto LABEL_44;
}
if( (unsigned int)v20 > 0x68 )
{
if( (_DWORD)v20 == 106 )
goto LABEL_29;
if( (_DWORD)v20 == 108 )
{
if( v6[1] != 108 )
{
++v19;
LABEL_51:
++v16;
goto LABEL_44;
}
v73 = (INT64)++v6;
goto LABEL_29;
}
if( (_DWORD)v20 != 116 )
{
if( (_DWORD)v20 == 119 )
goto LABEL_51;
if( (_DWORD)v20 != 122 )
goto LABEL_43;
}
goto LABEL_40;
}
if( (_DWORD)v20 == 104 )
{
--v19;
--v16;
goto LABEL_44;
}
if( (_DWORD)v20 == 42 )
{
v22 = ++v75;
continue;
}
if( (_DWORD)v20 != 70 )
{
if( (_DWORD)v20 != 73 )
{
if( (_DWORD)v20 == 76 )
{
++v19;
}
else if( (_DWORD)v20 != 78 )
{
goto LABEL_43;
}
goto LABEL_44;
}
v21 = v6[1];
if( v21 == 54 )
{
v12 = (unsigned __int64)(v6 + 2);
if( v6[2] == 52 )
{
v6 += 2;
v73 = v12;
LABEL_29:
++v17;
v67 = 0i64;
goto LABEL_44;
}
}
if( v21 == 51 )
{
v12 = (unsigned __int64)(v6 + 2);
if( v6[2] == 50 )
{
v6 += 2;
v73 = v12;
goto LABEL_44;
}
}
LABEL_40:
LOBYTE(v12) = v6[1] - 88;
if( (unsigned __int8)v12 > 0x20u || (v23 = 0x120821001i64, !_bittest64(&v23, v12)) )
{
++v17;
v67 = 0i64;
LABEL_43:
++v15;
goto LABEL_44;
}
goto LABEL_29;
}
LABEL_44:
v22 = v75;
}
while( !v15 );
v56 = v19;
v5 = HIDWORD(v61);
v63 = v18;
v9 = v61;
v65 = v17;
v62 = v3;
if( v22 )
{
v24 = 0i64;
v71 = 0i64;
}
else
{
*(_QWORD *)&v69[1] = v4;
v74 = v4 + 1;
v24 = *v4;
v71 = v24;
}
v70 = (INT64)v24;
if( !v16 )
v16 = ((*v6 - 67) & 0xEF) != 0 ? -1 : 1;
v25 = *v6 | 0x20;
if( v25 == 110 )
{
LABEL_64:
v27 = v63;
if( v63 && !v3 )
{
if( v5 == -1 )
goto LABEL_215;
ungetc_nolock(v5, File);
v11 = -1;
LABEL_210:
v53 = v66;
LABEL_211:
v10 = v59;
goto LABEL_212;
}
if( !v22 && (v25 == 99 || v25 == 115 || v25 == 123) )
{
v28 = (_DWORD *)(*(_QWORD *)&v69[1] + 8i64);
*(_QWORD *)&v69[1] = v28;
v24 = (_BYTE *)*((_QWORD *)v28 - 1);
v70 = (INT64)v24;
v74 = (_BYTE **)(v28 + 2);
v29 = (unsigned int)*v28;
if( !*v28 )
{
v10 = v59;
v52 = v16 <= 0;
v53 = 0;
if( v52 )
*v24 = 0;
else
*(_WORD *)v24 = 0;
goto LABEL_212;
}
}
else
{
v28 = *(_DWORD **)&v69[1];
v29 = 0i64;
}
if( v25 > 0x70 )
{
switch( v25 )
{
case 's':
v32 = 32;
break;
case 'u':
goto LABEL_93;
case 'x':
goto LABEL_85;
case '{':
v32 = 64;
break;
default:
goto LABEL_99;
}
}
else
{
if( v25 == 112 )
{
++v65;
v56 = 1;
v67 = 0i64;
goto LABEL_93;
}
if( v25 != 99 )
{
if( v25 != 100 )
{
if( v25 != 105 )
{
if( v25 == 110 )
{
v30 = v9;
if( v75 )
goto LABEL_81;
goto LABEL_172;
}
if( v25 != 111 )
{
v22 = v75;
LABEL_99:
if( *v6 == v5 )
{
--v57;
if( !v22 )
{
v4 = (_BYTE **)v28;
v74 = (_BYTE **)v28;
goto LABEL_82;
}
LABEL_81:
v4 = v74;
LABEL_82:
v10 = v59;
LABEL_83:
++v57;
v7 = File;
++v6;
LABEL_192:
v11 = -1;
if( v5 == -1 && (*v6 != 37 || v6[1] != 110) )
goto LABEL_215;
goto LABEL_195;
}
if( v5 != -1 )
{
ungetc_nolock(v5, File);
v11 = -1;
}
v53 = 1;
goto LABEL_211;
}
goto LABEL_93;
}
v25 = 100;
LABEL_85:
if( v5 == 45 )
{
v58 = 1;
}
else if( v5 != 43 )
{
goto LABEL_107;
}
v62 = v3 - 1;
if( v3 != 1 || !v63 )
{
v34 = File;
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v5 = inc(File);
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
LABEL_108:
if( v5 == 48 )
{
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v5 = inc(v34);
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
if( (((_BYTE)v5 - 88) & 0xDF) != 0 )
{
v68 = 1;
if( v25 == 120 )
{
LODWORD(v61) = --v9;
LODWORD(v60) = v9;
if( v5 != -1 )
ungetc_nolock(v5, File);
v27 = v63;
v5 = 48;
HIDWORD(v61) = 48;
HIDWORD(v60) = 48;
}
else
{
v27 = v63;
if( v63 )
{
if( !--v62 )
++v14;
}
v25 = 111;
}
}
else
{
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v35 = inc(v34);
v27 = v63;
HIDWORD(v61) = v35;
v5 = v35;
HIDWORD(v60) = v35;
if( v63 )
{
v62 -= 2;
if( v62 < 1 )
++v14;
}
v25 = 120;
}
goto LABEL_129;
}
goto LABEL_128;
}
v14 = 1;
LABEL_107:
v34 = File;
goto LABEL_108;
}
LABEL_93:
if( v5 == 45 )
{
v58 = 1;
}
else if( v5 != 43 )
{
LABEL_129:
if( v65 )
{
if( !v14 )
{
while( 1 )
{
if( ((v25 - 112) & 0xFFFFFFF7) != 0 )
{
if( (pctype[(unsigned __int8)v5] & 4) == 0 )
goto LABEL_144;
if( v25 == 111 )
{
if( v5 >= 56 )
goto LABEL_144;
v36 = 8 * v67;
}
else
{
v36 = 10 * v67;
}
}
else
{
v37 = pctype[(unsigned __int8)v5];
if( (v37 & 0x80u) == 0 )
{
LABEL_144:
LODWORD(v61) = --v9;
LODWORD(v60) = v9;
if( v5 != -1 )
ungetc_nolock(v5, File);
break;
}
v38 = (char)v5;
v36 = 16 * v67;
v5 = ((char)v5 & 0xFFFFFFDF) - 7;
if( (v37 & 4) != 0 )
v5 = v38;
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
}
++v68;
v39 = v5 - 48 + v36;
v67 = v39;
if( v27 )
{
if( !--v62 )
goto LABEL_147;
}
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v40 = inc(File);
v27 = v63;
v5 = v40;
HIDWORD(v61) = v40;
HIDWORD(v60) = v40;
}
}
v39 = v67;
LABEL_147:
v41 = -v39;
if( !v58 )
v41 = v39;
v67 = v41;
}
else
{
if( !v14 )
{
while( 1 )
{
if( ((v25 - 112) & 0xFFFFFFF7) != 0 )
{
if( (pctype[(unsigned __int8)v5] & 4) == 0 )
goto LABEL_164;
if( v25 == 111 )
{
if( v5 >= 56 )
goto LABEL_164;
v42 = 8 * v64;
}
else
{
v42 = 10 * v64;
}
}
else
{
v43 = pctype[(unsigned __int8)v5];
if( (v43 & 0x80u) == 0 )
{
LABEL_164:
LODWORD(v61) = --v9;
LODWORD(v60) = v9;
if( v5 != -1 )
ungetc_nolock(v5, File);
break;
}
v44 = (char)v5;
v42 = 16 * v64;
v5 = ((char)v5 & 0xFFFFFFDF) - 7;
if( (v43 & 4) != 0 )
v5 = v44;
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
}
++v68;
v45 = v5 + v42 - 48;
v64 = v45;
if( v27 )
{
if( !--v62 )
goto LABEL_167;
}
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v46 = inc(File);
v27 = v63;
v5 = v46;
HIDWORD(v61) = v46;
HIDWORD(v60) = v46;
}
}
v45 = v64;
LABEL_167:
if( v58 )
v64 = -v45;
}
if( !v68 )
{
v11 = -1;
goto LABEL_210;
}
if( v75 )
goto LABEL_81;
v69[0] = ++v59;
v30 = v64;
LABEL_172:
if( v65 )
{
*(_QWORD *)v24 = v67;
goto LABEL_81;
}
v10 = v59;
if( v56 )
*(_DWORD *)v24 = v30;
else
*(_WORD *)v24 = v30;
LABEL_177:
v4 = v74;
goto LABEL_83;
}
v62 = v3 - 1;
if( v3 == 1 && v63 )
{
v14 = 1;
goto LABEL_129;
}
LODWORD(v61) = ++v9;
LODWORD(v60) = v9;
v5 = inc(File);
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
LABEL_128:
v27 = v63;
goto LABEL_129;
}
v31 = v3 + 1;
v32 = 16;
if( v63 )
v31 = v3;
v3 = v31;
v33 = 1;
if( v63 )
v33 = v63;
v27 = v33;
}
v47 = v32 | 1;
if( !v27 )
v47 = v32;
v48 = v47 | 2;
if( v16 <= 0 )
v48 = v47;
v49 = v48 | 4;
if( !v75 )
v49 = v48;
LODWORD(v55) = v3;
if( v25 == 123 )
{
StringDelimited = ReadStringDelimited(
v49,
(INT64)&v73,
(INT64)&v60 + 4,
(INT64)&v60,
(INT64)&v70,
v55,
(_FILE *)File,
v29,
(INT64)v69);
v6 = (unsigned __int8 *)v73;
}
else
{
StringDelimited = ReadString(
v49,
0i64,
(INT64)&v60 + 4,
(INT64)&v60,
(INT64)&v70,
v55,
(_FILE *)File,
v29,
(INT64)v69);
}
v10 = v69[0];
v5 = HIDWORD(v60);
v59 = v69[0];
if( !StringDelimited )
{
v9 = v60;
v61 = v60;
goto LABEL_177;
}
v11 = -1;
LABEL_206:
v53 = 0;
LABEL_212:
if( v5 == -1 )
goto LABEL_215;
if( v53 != 1 )
return v10;
goto LABEL_220;
}
if( v25 == 99 || v25 == 123 )
{
v9 = v61 + 1;
LODWORD(v61) = v9;
LODWORD(v60) = v9;
v5 = inc(File);
HIDWORD(v61) = v5;
HIDWORD(v60) = v5;
v11 = -1;
}
else
{
do
{
LODWORD(v60) = ++v9;
v26 = inc(File);
v11 = -1;
v5 = v26;
HIDWORD(v61) = v26;
}
while( v26 != -1 && (pctype[(unsigned __int8)v26] & 8) != 0 );
v24 = v71;
LODWORD(v61) = v9;
HIDWORD(v60) = v26;
}
if( v5 != -1 )
{
v3 = v62;
v22 = v75;
goto LABEL_64;
}
LABEL_215:
if( v59 || v57 )
return v59;
return v11;
}Referenced by:
sinput_s