// File: /workspace/github_cpp_makefile_star2_O2/smallmuou[P]tinyhtml/tinyxmlparser.cpp
// Function: TiXmlDeclaration::Parse(char const*, TiXmlParsingData*, TiXmlEncoding)
const char* TiXmlDeclaration::Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding _encoding )
{
	p = SkipWhiteSpace( p, _encoding );
	// Find the beginning, find the end, and look for
	// the stuff in-between.
	TiXmlDocument* document = GetDocument();
	if ( !p || !*p || !StringEqual( p, "<?xml", true, _encoding ) )
	{
		if ( document ) document->SetError( TIXML_ERROR_PARSING_DECLARATION, 0, 0, _encoding );
		return 0;
	}
	if ( data )
	{
		data->Stamp( p, _encoding );
		location = data->Cursor();
	}
	p += 5;

	version = "";
	encoding = "";
	standalone = "";

	while ( p && *p )
	{
		if ( *p == '>' )
		{
			++p;
			return p;
		}

		p = SkipWhiteSpace( p, _encoding );
		if ( StringEqual( p, "version", true, _encoding ) )
		{
			TiXmlAttribute attrib;
			p = attrib.Parse( p, data, _encoding );		
			version = attrib.Value();
		}
		else if ( StringEqual( p, "encoding", true, _encoding ) )
		{
			TiXmlAttribute attrib;
			p = attrib.Parse( p, data, _encoding );		
			encoding = attrib.Value();
		}
		else if ( StringEqual( p, "standalone", true, _encoding ) )
		{
			TiXmlAttribute attrib;
			p = attrib.Parse( p, data, _encoding );		
			standalone = attrib.Value();
		}
		else
		{
			// Read over whatever it is.
			while( p && *p && *p != '>' && !IsWhiteSpace( *p ) )
				++p;
		}
	}
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %ecx, %ebx
movq %rdx, %r14
movq %rdi, %r15
movq %rsi, %rdi
movl %ecx, %esi
callq 0x5fec
movq %rax, %r12
movq %r15, %rdi
callq 0x3c9a
movq %rax, %rbp
testq %r12, %r12
je 0x7533
cmpb $0x0, (%r12)
je 0x7533
leaq 0x2553(%rip), %rsi      # 0x9842
pushq $0x1
popq %rdx
movq %r12, %rdi
movl %ebx, %ecx
callq 0x632a
testb %al, %al
je 0x7533
testq %r14, %r14
je 0x731d
movq %r14, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x5e48
movq (%r14), %rax
movq %rax, 0x8(%r15)
addq $0x5, %r12
leaq 0x50(%r15), %rdi
leaq 0x20b9(%rip), %r13      # 0x93e5
movq %rdi, 0x50(%rsp)
movq %r13, %rsi
callq 0x5988
leaq 0x58(%r15), %rdi
movq %rdi, 0x48(%rsp)
movq %r13, %rsi
callq 0x5988
addq $0x60, %r15
movq %r15, %rdi
movq %r13, %rsi
callq 0x5988
pushq $0x1
popq %r13
movl %r13d, %ebp
testq %r12, %r12
je 0x754f
movzbl (%r12), %eax
testl %eax, %eax
je 0x754f
cmpl $0x3e, %eax
je 0x7564
movq %r12, %rdi
movl %ebx, %esi
callq 0x5fec
movq %rax, %r12
movq %rax, %rdi
leaq 0x24b5(%rip), %rsi      # 0x984b
movl %r13d, %edx
movl %ebx, %ecx
callq 0x632a
testb %al, %al
je 0x7404
orq $-0x1, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
leaq 0x78b7(%rip), %rax      # 0xec70
movq %rax, 0x8(%rsp)
leaq 0x7e93(%rip), %rax      # 0xf258
movq %rax, 0x28(%rsp)
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rax
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x6fd0
movq %rax, %r12
movq 0x30(%rsp), %rsi
addq $0x10, %rsi
movq 0x50(%rsp), %rdi
callq 0x5988
jmp 0x74ea
movq %r12, %rdi
leaq 0x2445(%rip), %rsi      # 0x9853
movl %r13d, %edx
movl %ebx, %ecx
callq 0x632a
testb %al, %al
je 0x7479
orq $-0x1, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
leaq 0x783f(%rip), %rax      # 0xec70
movq %rax, 0x8(%rsp)
leaq 0x7e1b(%rip), %rax      # 0xf258
movq %rax, 0x28(%rsp)
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rax
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x6fd0
movq %rax, %r12
movq 0x30(%rsp), %rsi
addq $0x10, %rsi
movq 0x48(%rsp), %rdi
callq 0x5988
jmp 0x74ea
movq %r12, %rdi
leaq 0x23d9(%rip), %rsi      # 0x985c
movl %r13d, %edx
movl %ebx, %ecx
callq 0x632a
testb %al, %al
je 0x74fc
orq $-0x1, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
leaq 0x77ca(%rip), %rax      # 0xec70
movq %rax, 0x8(%rsp)
leaq 0x7da6(%rip), %rax      # 0xf258
movq %rax, 0x28(%rsp)
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rax
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x6fd0
movq %rax, %r12
movq 0x30(%rsp), %rsi
addq $0x10, %rsi
movq %r15, %rdi
callq 0x5988
leaq 0x8(%rsp), %rdi
callq 0x5b3a
movl %ebp, %r13d
jmp 0x7360
movl %ebp, %r13d
testq %r12, %r12
je 0x752b
movzbl (%r12), %eax
testl %eax, %eax
je 0x7360
cmpl $0x3e, %eax
je 0x7360
movsbl %al, %edi
callq 0x7582
testb %al, %al
jne 0x74f4
incq %r12
jmp 0x74fc
xorl %r12d, %r12d
jmp 0x7360
testq %rbp, %rbp
je 0x754f
xorl %r12d, %r12d
pushq $0xb
popq %rsi
movq %rbp, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
callq 0x6760
jmp 0x7552
xorl %r12d, %r12d
movq %r12, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
incq %r12
jmp 0x7552
jmp 0x756d
jmp 0x756d
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x5b3a
movq %rbx, %rdi
callq 0x3280