// File: /workspace/github_cpp_makefile_star2_O3/jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::xml_buffered_writer::flush(char const*, unsigned long)
void flush(const char_t* data, size_t size)
		{
			if (size == 0) return;

			// fast path, just write data
			if (encoding == get_write_native_encoding())
				writer.write(data, size * sizeof(char_t));
			else
			{
				// convert chunk
				size_t result = convert_buffer_output(scratch.data_char, scratch.data_u8, scratch.data_u16, scratch.data_u32, data, size, encoding);
				assert(result <= sizeof(scratch));

				// write data
				writer.write(scratch.data_u8, result);
			}
		}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
testq %rdx, %rdx
je 0x29c41
movq %rdi, %rbx
movl 0x2810(%rdi), %eax
cmpl $0x1, %eax
jne 0x29c46
movq 0x2800(%rbx), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
popq %rbx
popq %r14
popq %rbp
jmpq *%rax
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x800(%rbx), %r14
movl %eax, %ecx
andl $-0x2, %ecx
cmpl $0x2, %ecx
jne 0x29e91
movl $0x800, %ecx            # imm = 0x800
movzbl (%rsi), %edi
testb %dil, %dil
js 0x29cd2
movw %di, (%rbx,%rcx)
addq $0x2, %rcx
incq %rsi
decq %rdx
cmpq $0x4, %rdx
jb 0x29e4e
movl %esi, %edi
andl $0x3, %edi
jne 0x29e4e
movl (%rsi), %edi
testl $0x80808080, %edi       # imm = 0x80808080
jne 0x29e4e
andl $0x7f, %edi
movw %di, (%rbx,%rcx)
movzbl 0x1(%rsi), %edi
movw %di, 0x2(%rbx,%rcx)
movzbl 0x2(%rsi), %edi
movw %di, 0x4(%rbx,%rcx)
movzbl 0x3(%rsi), %edi
movw %di, 0x6(%rbx,%rcx)
addq $0x8, %rcx
addq $0x4, %rsi
addq $-0x4, %rdx
cmpq $0x3, %rdx
ja 0x29c8b
jmp 0x29e4e
cmpq $0x1, %rdx
je 0x29d20
movl %edi, %r8d
andl $-0x20, %r8d
cmpl $0xc0, %r8d
jne 0x29d20
movzbl 0x1(%rsi), %r8d
movl %r8d, %r9d
andl $-0x40, %r9d
cmpl $0x80, %r9d
jne 0x29d20
andl $0x1f, %edi
shll $0x6, %edi
andl $0x3f, %r8d
orl %edi, %r8d
movw %r8w, (%rbx,%rcx)
addq $0x2, %rcx
addq $0x2, %rsi
addq $-0x2, %rdx
jmp 0x29e4e
cmpq $0x3, %rdx
jb 0x29d8b
movl %edi, %r8d
andl $-0x10, %r8d
cmpl $0xe0, %r8d
jne 0x29d8b
movzbl 0x1(%rsi), %r8d
movl %r8d, %r9d
andl $-0x40, %r9d
cmpl $0x80, %r9d
jne 0x29d8b
movzbl 0x2(%rsi), %r9d
movl %r9d, %r10d
andl $-0x40, %r10d
cmpl $0x80, %r10d
jne 0x29d8b
shll $0xc, %edi
andl $0x3f, %r8d
shll $0x6, %r8d
orl %edi, %r8d
andl $0x3f, %r9d
orl %r8d, %r9d
movw %r9w, (%rbx,%rcx)
addq $0x2, %rcx
addq $0x3, %rsi
addq $-0x3, %rdx
jmp 0x29e4e
cmpq $0x4, %rdx
jb 0x29e48
movl %edi, %r8d
andl $-0x8, %r8d
cmpl $0xf0, %r8d
jne 0x29e48
movzbl 0x1(%rsi), %r8d
movl %r8d, %r9d
andl $-0x40, %r9d
cmpl $0x80, %r9d
jne 0x29e48
movzbl 0x2(%rsi), %r10d
movl %r10d, %r9d
andl $-0x40, %r9d
cmpl $0x80, %r9d
jne 0x29e48
movzbl 0x3(%rsi), %r9d
movl %r9d, %r11d
andl $-0x40, %r11d
cmpl $0x80, %r11d
jne 0x29e48
andl $0x7, %edi
shll $0x12, %edi
andl $0x3f, %r8d
shll $0xc, %r8d
orl %edi, %r8d
shll $0x6, %r10d
andl $0x3f, %r9d
orl %r10d, %r9d
andl $0xc00, %r10d           # imm = 0xC00
leal (%r10,%r8), %edi
addl $0x3ff0000, %edi        # imm = 0x3FF0000
shrl $0xa, %edi
addl $0xffffd800, %edi       # imm = 0xFFFFD800
movw %di, (%rbx,%rcx)
andl $0x3ff, %r9d            # imm = 0x3FF
orl $0xdc00, %r9d           # imm = 0xDC00
movw %r9w, 0x2(%rbx,%rcx)
addq $0x4, %rcx
addq $0x4, %rsi
addq $-0x4, %rdx
jmp 0x29e4e
incq %rsi
decq %rdx
testq %rdx, %rdx
jne 0x29c60
cmpl $0x2, %eax
setne %dl
leaq (%rbx,%rcx), %rax
cmpq $0x800, %rcx            # imm = 0x800
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x2a06a
movl $0x800, %edx            # imm = 0x800
rolw $0x8, (%rbx,%rdx)
addq $0x2, %rdx
cmpq %rdx, %rcx
jne 0x29e7e
jmp 0x2a06a
leal -0x5(%rax), %ecx
cmpl $0x1, %ecx
ja 0x29ed4
cmpl $0x5, %eax
sete %bpl
movq %rsi, %rdi
movq %rdx, %rsi
movq %r14, %rdx
callq 0x2a0ce
cmpq %r14, %rax
sete %cl
orb %bpl, %cl
jne 0x2a06a
movq %r14, %rcx
movl (%rcx), %edx
bswapl %edx
movl %edx, (%rcx)
addq $0x4, %rcx
cmpq %rax, %rcx
jne 0x29ec0
jmp 0x2a06a
cmpl $0x9, %eax
jne 0x2a0ae
movl $0x3f, %ecx
movq %r14, %rax
movb (%rsi), %r8b
testb %r8b, %r8b
js 0x29f4e
movb %r8b, (%rax)
incq %rax
incq %rsi
decq %rdx
cmpq $0x4, %rdx
jb 0x2a061
movl %esi, %edi
andl $0x3, %edi
jne 0x2a061
movl (%rsi), %edi
testl $0x80808080, %edi       # imm = 0x80808080
jne 0x2a061
movb %dil, (%rax)
movb 0x1(%rsi), %dil
movb %dil, 0x1(%rax)
movb 0x2(%rsi), %dil
movb %dil, 0x2(%rax)
movb 0x3(%rsi), %dil
movb %dil, 0x3(%rax)
addq $0x4, %rax
addq $0x4, %rsi
addq $-0x4, %rdx
cmpq $0x3, %rdx
ja 0x29f0e
jmp 0x2a061
movzbl %r8b, %edi
cmpq $0x1, %rdx
je 0x29fa4
movl %edi, %r9d
andl $-0x20, %r9d
cmpl $0xc0, %r9d
jne 0x29fa4
movb 0x1(%rsi), %r9b
movl %r9d, %r10d
andb $-0x40, %r10b
negb %r10b
jno 0x29fa4
movl %r8d, %edi
shlb $0x6, %dil
andb $0x3f, %r9b
orb %dil, %r9b
testb $0x1c, %r8b
movzbl %r9b, %edi
cmovnel %ecx, %edi
movb %dil, (%rax)
incq %rax
addq $0x2, %rsi
addq $-0x2, %rdx
jmp 0x2a061
cmpq $0x3, %rdx
jb 0x2a013
movl %edi, %r8d
andl $-0x10, %r8d
cmpl $0xe0, %r8d
jne 0x2a013
movzbl 0x1(%rsi), %r8d
movl %r8d, %r9d
andl $-0x40, %r9d
cmpl $0x80, %r9d
jne 0x2a013
movzbl 0x2(%rsi), %r9d
movl %r9d, %r10d
andl $-0x40, %r10d
cmpl $0x80, %r10d
jne 0x2a013
shll $0xc, %edi
movzwl %di, %edi
shll $0x6, %r8d
andl $0x3f, %r9d
orl %r8d, %r9d
andl $0xf00, %r8d            # imm = 0xF00
orl %edi, %r8d
cmovnel %ecx, %r9d
movb %r9b, (%rax)
incq %rax
addq $0x3, %rsi
addq $-0x3, %rdx
jmp 0x2a061
cmpq $0x4, %rdx
jb 0x2a05b
andl $-0x8, %edi
cmpl $0xf0, %edi
jne 0x2a05b
movb 0x1(%rsi), %dil
andb $-0x40, %dil
negb %dil
jno 0x2a05b
movb 0x2(%rsi), %dil
andb $-0x40, %dil
negb %dil
jno 0x2a05b
movb 0x3(%rsi), %dil
andb $-0x40, %dil
negb %dil
jno 0x2a05b
movb $0x3f, (%rax)
incq %rax
addq $0x4, %rsi
addq $-0x4, %rdx
jmp 0x2a061
incq %rsi
decq %rdx
testq %rdx, %rdx
jne 0x29ee5
subq %r14, %rax
cmpq $0x2001, %rax           # imm = 0x2001
jae 0x2a08f
movq 0x2800(%rbx), %rdi
movq (%rdi), %rcx
movq 0x10(%rcx), %rcx
movq %r14, %rsi
movq %rax, %rdx
popq %rbx
popq %r14
popq %rbp
jmpq *%rcx
leaq 0x95ec(%rip), %rdi      # 0x33682
leaq 0x7e88(%rip), %rsi      # 0x31f25
leaq 0x95f8(%rip), %rcx      # 0x3369c
movl $0xe89, %edx            # imm = 0xE89
callq 0x6120
leaq 0x8c6c(%rip), %rdi      # 0x32d21
leaq 0x7e69(%rip), %rsi      # 0x31f25
leaq 0x9634(%rip), %rcx      # 0x336f7
movl $0xe67, %edx            # imm = 0xE67
callq 0x6120
nop