// File: /workspace/github_cpp_makefile_star2_O1/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 0x6e8a
movq %rax, %r12
movq %r15, %rdi
callq 0x3fe0
movq %rax, %rbp
testq %r12, %r12
je 0x8831
cmpb $0x0, (%r12)
je 0x8831
leaq 0x2707(%rip), %rsi      # 0xac96
movq %r12, %rdi
movl $0x1, %edx
movl %ebx, %ecx
callq 0x7254
testb %al, %al
je 0x8831
testq %r14, %r14
je 0x85bf
movq %r14, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x6cd6
movq (%r14), %rax
movq %rax, 0x8(%r15)
addq $0x5, %r12
leaq 0x50(%r15), %rdi
leaq 0x1e17(%rip), %rbp      # 0xa3e5
movq %rdi, 0x50(%rsp)
movq %rbp, %rsi
xorl %edx, %edx
callq 0x8ae8
leaq 0x58(%r15), %rdi
movq %rdi, 0x48(%rsp)
movq %rbp, %rsi
xorl %edx, %edx
callq 0x8ae8
addq $0x60, %r15
movq %r15, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x8ae8
leaq 0x7c50(%rip), %r13      # 0x10258
movzbl (%r12), %eax
testl %eax, %eax
je 0x884f
cmpl $0x3e, %eax
je 0x8864
movq %r12, %rdi
movl %ebx, %esi
callq 0x6e8a
movq %rax, %r12
movq %rax, %rdi
leaq 0x266a(%rip), %rsi      # 0xac9f
movl $0x1, %edx
movl %ebx, %ecx
callq 0x7254
testb %al, %al
je 0x86af
movq $-0x1, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
leaq 0x7613(%rip), %rax      # 0xfc70
movq %rax, 0x8(%rsp)
movq %r13, 0x28(%rsp)
movq %r13, 0x30(%rsp)
leaq 0x38(%rsp), %rax
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x81e2
movq %rax, %r12
movq 0x30(%rsp), %rbp
addq $0x10, %rbp
movq %rbp, %rdi
callq 0x30a0
movq 0x50(%rsp), %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x8ae8
jmp 0x87b4
movq %r12, %rdi
leaq 0x25ee(%rip), %rsi      # 0xaca7
movl $0x1, %edx
movl %ebx, %ecx
callq 0x7254
testb %al, %al
je 0x8733
movq $-0x1, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
leaq 0x758f(%rip), %rax      # 0xfc70
movq %rax, 0x8(%rsp)
movq %r13, 0x28(%rsp)
movq %r13, 0x30(%rsp)
leaq 0x38(%rsp), %rax
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x81e2
movq %rax, %r12
movq 0x30(%rsp), %rbp
addq $0x10, %rbp
movq %rbp, %rdi
callq 0x30a0
movq 0x48(%rsp), %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x8ae8
jmp 0x87b4
movq %r12, %rdi
leaq 0x2573(%rip), %rsi      # 0xacb0
movl $0x1, %edx
movl %ebx, %ecx
callq 0x7254
testb %al, %al
je 0x87ff
movq $-0x1, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
leaq 0x7507(%rip), %rax      # 0xfc70
movq %rax, 0x8(%rsp)
movq %r13, 0x28(%rsp)
movq %r13, 0x30(%rsp)
leaq 0x38(%rsp), %rax
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x81e2
movq %rax, %r12
movq 0x30(%rsp), %rbp
addq $0x10, %rbp
movq %rbp, %rdi
callq 0x30a0
movq %r15, %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x8ae8
leaq 0x74b5(%rip), %rax      # 0xfc70
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
sete %al
testq %rdi, %rdi
sete %cl
orb %al, %cl
jne 0x87da
callq 0x31d0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
sete %al
testq %rdi, %rdi
sete %cl
orb %al, %cl
jne 0x87f4
callq 0x31d0
testq %r12, %r12
jne 0x8608
jmp 0x884f
testq %r12, %r12
je 0x882c
movzbl (%r12), %ebp
testl %ebp, %ebp
je 0x87f4
cmpl $0x3e, %ebp
je 0x87f4
movl %ebp, %edi
callq 0x3060
testl %eax, %eax
jne 0x87f4
cmpl $0xa, %ebp
je 0x87f4
cmpl $0xd, %ebp
je 0x87f4
incq %r12
jmp 0x8804
xorl %r12d, %r12d
jmp 0x87f4
testq %rbp, %rbp
je 0x884f
xorl %r12d, %r12d
movq %rbp, %rdi
movl $0xb, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
callq 0x77f6
jmp 0x8852
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 0x8852
jmp 0x886d
jmp 0x886d
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x8882
movq %rbx, %rdi
callq 0x3280