strtok_s
INT8 *__stdcall strtok_s(INT8 *String, INT8 *Control, INT8 **Context){
INT8 *v4;
INT8 *v5;
__int64 v6;
bool v7;
unsigned int v8;
unsigned __int8 v9;
unsigned __int8 v10;
INT8 *v11;
unsigned __int8 *v12;
char v14[32];
v4 = Control;
v5 = String;
if( Context && Control && (String || *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( !String )
v5 = *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:
*Context = v5;
if( v11 == v5 )
return 0i64;
return v11;
}
else
{
xHalTimerWatchdogStop(0i64, 0i64);
return 0i64;
}
}Referenced by:
No references.