  // Non-guarded core functionality of write().  Should get inlined
  // out of existence.
  template<typename _CharT, typename _Traits>
    inline
    void
    _M_write(basic_ostream<_CharT, _Traits>& os, const _CharT* __s, 
	     streamsize __n)
    {
      streamsize __put = os.rdbuf()->sputn(__s, __n);
      if (__put != __n)
	os.setstate(ios_base::badbit);
    }

  template<typename _CharT, typename _Traits>
    basic_ostream<_CharT, _Traits>&
    basic_ostream<_CharT, _Traits>::write(const _CharT* __s, streamsize __n)
    {
      sentry __cerb(*this);
      if (__cerb)
	_M_write(*this, __s, __n);
      return *this;
    }
	
_ZSt8_M_writeIcSt11char_traitsIcEEvRSt13basic_ostreamIT_T0_EPKS3_i:
.LFB1868:
	pushl	%ebp
.LCFI398:
	movl	%esp, %ebp
.LCFI399:
	subl	$24, %esp
.LCFI400:
	movl	%esi, -4(%ebp)
.LCFI401:
	movl	8(%ebp), %esi
	movl	%ebx, -8(%ebp)
.LCFI402:
	movl	16(%ebp), %ebx
	movl	(%esi), %eax
	movl	-12(%eax), %edx
	leal	(%edx,%esi), %eax
	movl	120(%eax), %edx
	movl	(%edx), %ecx
	movl	%ebx, 8(%esp)
	movl	12(%ebp), %eax
	movl	%edx, (%esp)
	movl	%eax, 4(%esp)
	call	*48(%ecx)
	cmpl	%ebx, %eax
	je	.L2005
	movl	(%esi), %eax
	movl	%esi, %edx
	movl	-8(%ebp), %ebx
	movl	-4(%ebp), %esi
	movl	-12(%eax), %ecx
	addl	%ecx, %edx
	movl	20(%edx), %eax
	movl	%edx, 8(%ebp)
	orl	$1, %eax
	movl	%eax, 12(%ebp)
	movl	%ebp, %esp
	popl	%ebp
	jmp	_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate
	.p2align 4,,7
.L2005:
	movl	-8(%ebp), %ebx
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret

	
_ZNSo5writeEPKci:
.LFB1680:
	pushl	%ebp
.LCFI119:
	movl	%esp, %ebp
.LCFI120:
	subl	$56, %esp
.LCFI121:
	movl	%ebx, -12(%ebp)
.LCFI122:
	movl	8(%ebp), %ebx
	movl	%esi, -8(%ebp)
.LCFI123:
	leal	-40(%ebp), %esi
	movl	%edi, -4(%ebp)
.LCFI124:
	movl	16(%ebp), %edi
	movl	%ebx, 4(%esp)
	movl	%esi, (%esp)
.LEHB79:
	call	_ZNSo6sentryC1ERSo
.LEHE79:
	cmpb	$0, -40(%ebp)
	je	.L799
	movl	(%ebx), %eax
	movl	-12(%eax), %edx
	leal	(%edx,%ebx), %eax
	movl	120(%eax), %edx
	movl	12(%ebp), %eax
	movl	(%edx), %ecx
	movl	%edi, 8(%esp)
	movl	%eax, 4(%esp)
	movl	%edx, (%esp)
.LEHB80:
	call	*48(%ecx)
	cmpl	%edi, %eax
	je	.L799
	movl	(%ebx), %eax
	movl	%ebx, %edx
	movl	-12(%eax), %edi
	addl	%edi, %edx
	movl	20(%edx), %eax
	movl	%edx, (%esp)
	orl	$1, %eax
	movl	%eax, 4(%esp)
	call	_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate
.LEHE80:
	.p2align 4,,15
.L799:
	movl	%esi, (%esp)
.LEHB81:
	call	_ZNSo6sentryD1Ev
.LEHE81:
	movl	%ebx, %eax
	movl	-8(%ebp), %esi
	movl	-12(%ebp), %ebx
	movl	-4(%ebp), %edi
	movl	%ebp, %esp
	popl	%ebp
	ret
