strtok_s
PSTR __stdcall strtok_s(PSTR Str, PSTR Delim, PSTR Context){
PSTR v4;
PSTR v5;
__int64 v6;
bool v7;
unsigned int v8;
unsigned __int8 v9;
CHAR v10;
CHAR *v11;
unsigned __int8 *v12;
char v14[32];
v4 = Delim;
v5 = Str;
if( Context && Delim && (Str || *(_QWORD *)Context) )
{
v6 = 0i64;
v7 = 1;
do
{
if( !v7 )
_report_rangecheckfailure();
v14[v6++] = 0;
v7 = (unsigned __int64)v6 < 0x20;
}
while( v6 < 32 );
do
{
v8 = (unsigned __int8)*v4++;
v14[(unsigned __int64)v8 >> 3] |= 1 << (v8 & 7);
}
while( (_BYTE)v8 );
if( !Str )
v5 = *(PSTR *)Context;
v9 = *v5;
if( ((unsigned __int8)(1 << (*v5 & 7)) & (unsigned __int8)v14[(unsigned __int64)(unsigned __int8)*v5 >> 3]) != 0 )
{
v10 = *v5;
do
{
v9 = v10;
if( !v10 )
break;
v10 = *++v5;
v9 = *v5;
}
while( ((unsigned __int8)(1 << (*v5 & 7)) & (unsigned __int8)v14[(unsigned __int64)(unsigned __int8)*v5 >> 3]) != 0 );
}
v11 = v5;
if( v9 )
{
while( 1 )
{
v12 = (unsigned __int8 *)(v5 + 1);
if( ((unsigned __int8)(1 << (v9 & 7)) & (unsigned __int8)v14[(unsigned __int64)v9 >> 3]) != 0 )
break;
++v5;
v9 = *v12;
if( !*v12 )
goto LABEL_20;
}
*v5++ = 0;
}
LABEL_20:
*(_QWORD *)Context = v5;
if( v11 == v5 )
return 0i64;
return v11;
}
else
{
xHalTimerWatchdogStop(0i64, 0i64);
return 0i64;
}
}Referenced by:
No references.