// File: /workspace/github_cpp_makefile_star2_O3/smallmuou[P]tinyhtml/tinyxmlparser.cpp
// Function: TiXmlText::Parse(char const*, TiXmlParsingData*, TiXmlEncoding)
const char* TiXmlText::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding )
{
	value = "";
	TiXmlDocument* document = GetDocument();

	if ( data )
	{
		data->Stamp( p, encoding );
		location = data->Cursor();
	}

	const char* const startTag = "<![CDATA[";
	const char* const endTag   = "]]>";

	if ( cdata || StringEqual( p, startTag, false, encoding ) )
	{
		cdata = true;

		if ( !StringEqual( p, startTag, false, encoding ) )
		{
			if ( document )
				document->SetError( TIXML_ERROR_PARSING_CDATA, p, data, encoding );
			return 0;
		}
		p += strlen( startTag );

		// Keep all the white space, ignore the encoding, etc.
		while (	   p && *p
				&& !StringEqual( p, endTag, false, encoding )
			  )
		{
			value += *p;
			++p;
		}

		TIXML_STRING dummy; 
		p = ReadText( p, &dummy, false, endTag, false, encoding );
		return p;
	}
	else
	{
		bool ignoreWhite = true;

		const char* end = "<";
		p = ReadText( p, &value, ignoreWhite, end, false, encoding );
		if ( p && *p )
			return p-1;	// don't truncate the '<'
		return 0;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %ecx, %ebx
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbp
leaq 0x38(%rdi), %r14
leaq 0x21ed(%rip), %rsi      # 0xa3e5
movq %r14, %rdi
xorl %edx, %edx
callq 0x890e
movq %rbp, %rdi
callq 0x3fac
movq %rax, %r13
testq %r12, %r12
je 0x8227
movq %r12, %rdi
movq %r15, %rsi
movl %ebx, %edx
callq 0x6bae
movq (%r12), %rax
movq %rax, 0x8(%rbp)
cmpb $0x0, 0x50(%rbp)
jne 0x8246
leaq 0x22ea(%rip), %rsi      # 0xa51e
movq %r15, %rdi
xorl %edx, %edx
callq 0x70e8
testb %al, %al
je 0x831a
movb $0x1, 0x50(%rbp)
leaq 0x22cd(%rip), %rsi      # 0xa51e
movq %r15, %rdi
xorl %edx, %edx
callq 0x70e8
testb %al, %al
je 0x82b1
leaq 0x9(%r15), %r12
cmpb $0x0, 0x9(%r15)
je 0x82d1
leaq 0x22b7(%rip), %r15      # 0xa528
leaq 0xf(%rsp), %r13
movq %r12, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x70e8
testb %al, %al
jne 0x82d1
movb (%r12), %al
movb %al, 0xf(%rsp)
movl $0x1, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x89c2
leaq 0x1(%r12), %rdi
cmpb $0x0, 0x1(%r12)
movq %rdi, %r12
jne 0x8276
jmp 0x82d4
testq %r13, %r13
je 0x82cc
movq %r13, %rdi
movl $0xe, %esi
movq %r15, %rdx
movq %r12, %rcx
movl %ebx, %r8d
callq 0x768c
xorl %r12d, %r12d
jmp 0x834f
movq %r12, %rdi
leaq 0x7f7d(%rip), %rax      # 0x10258
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x223e(%rip), %rcx      # 0xa528
xorl %edx, %edx
xorl %r8d, %r8d
movl %ebx, %r9d
callq 0x71e8
movq %rax, %r12
movq 0x10(%rsp), %rdi
cmpq 0x7cda(%rip), %rdi      # 0xffe0
sete %al
testq %rdi, %rdi
sete %cl
orb %al, %cl
jne 0x834f
callq 0x31d0
jmp 0x834f
leaq 0x21f8(%rip), %rcx      # 0xa519
xorl %r12d, %r12d
movq %r15, %rdi
movq %r14, %rsi
movl $0x1, %edx
xorl %r8d, %r8d
movl %ebx, %r9d
callq 0x71e8
testq %rax, %rax
je 0x834f
movq %rax, %rcx
decq %rcx
xorl %r12d, %r12d
cmpb $0x0, (%rax)
cmovneq %rcx, %r12
movq %r12, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq 0x7c70(%rip), %rdi      # 0xffe0
sete %al
testq %rdi, %rdi
sete %cl
orb %al, %cl
jne 0x8382
callq 0x31d0
movq %rbx, %rdi
callq 0x3280