x64tow_s
INT64 __fastcall x64tow_s(UINT64 val, WCHAR *buf, UINT64 sizeInTChars, UINT64 radix, INT64 is_neg){
UINT64 v8;
WCHAR *v9;
WCHAR *v10;
unsigned __int64 v11;
_WORD *v12;
WCHAR *v13;
UINT64 v14;
__int16 v15;
WCHAR v16;
if( !buf || !sizeInTChars )
goto LABEL_18;
*buf = 0;
if( sizeInTChars <= (unsigned __int64)((_DWORD)is_neg != 0) + 1 )
{
LABEL_4:
xHalTimerWatchdogStop(0i64, 0i64);
return 34i64;
}
if( (unsigned int)(radix - 2) <= 0x22 )
{
v8 = 0i64;
v9 = buf;
if( (_DWORD)is_neg )
{
v9 = buf + 1;
*buf = 45;
val = -(__int64)val;
v8 = 1i64;
}
v10 = v9;
v11 = (unsigned int)radix;
do
{
v12 = v9 + 1;
v13 = v9;
v14 = val % v11;
val /= v11;
v15 = 87;
if( (unsigned int)v14 <= 9 )
v15 = 48;
++v8;
*v9 = v14 + v15;
if( !val )
break;
++v9;
}
while( v8 < sizeInTChars );
if( v8 >= sizeInTChars )
{
*buf = 0;
goto LABEL_4;
}
*v12 = 0;
do
{
v16 = *v13;
*v13-- = *v10;
*v10++ = v16;
}
while( v10 < v13 );
return 0i64;
}
else
{
LABEL_18:
xHalTimerWatchdogStop(0i64, 0i64);
return 22i64;
}
}Referenced by:
i64tow_s
ui64tow_s