void __fastcall write_string_2(__int16 *a1, int a2, __int64 a3, _DWORD *a4){
INT *v4;
int v7;
v4 = a4;
if( (*(_DWORD *)(a3 + 24) & 0x40) == 0 || *(_QWORD *)(a3 + 16) )
{
if( a2 > 0 )
{
do
write_char_1((unsigned __int16)*a1++, (_iobuf *)a3, v4);
while( *v4 != -1 && v7 > 0 );
}
}
else
{
*a4 += a2;
}
}