__int64 __fastcall write_string_1(_BYTE *a1, int a2, __int64 a3, _DWORD *a4){
__int64 result;
int v7;
_BYTE *v8;
result = *(unsigned int *)(a3 + 24);
v7 = a2;
v8 = a1;
if( (result & 0x40) == 0 || *(_QWORD *)(a3 + 16) )
{
if( a2 > 0 )
{
do
{
LOBYTE(a1) = *v8;
--v7;
result = write_char_0(a1, a3, a4);
++v8;
}
while( *a4 != -1 && v7 > 0 );
}
}
else
{
*a4 += a2;
}
return result;
}