write_string_1

__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;
}

Referenced by:

output_s