// File: /workspace/github_cpp_makefile_star2_O2/Matlock42[P]Jeopardy/./RapidXml/rapidxml.hpp
// Function: rapidxml::xml_node<char>* rapidxml::xml_document<char>::parse_node<0>(char*&)
xml_node<Ch> *parse_node(Ch *&text)
        {
            // Parse proper node type
            switch (text[0])
            {

            // <...
            default: 
                // Parse and append element node
                return parse_element<Flags>(text);

            // <?...
            case Ch('?'): 
                ++text;     // Skip ?
                if ((text[0] == Ch('x') || text[0] == Ch('X')) &&
                    (text[1] == Ch('m') || text[1] == Ch('M')) && 
                    (text[2] == Ch('l') || text[2] == Ch('L')) &&
                    whitespace_pred::test(text[3]))
                {
                    // '<?xml ' - xml declaration
                    text += 4;      // Skip 'xml '
                    return parse_xml_declaration<Flags>(text);
                }
                else
                {
                    // Parse PI
                    return parse_pi<Flags>(text);
                }
            
            // <!...
            case Ch('!'): 

                // Parse proper subset of <! node
                switch (text[1])    
                {
                
                // <!-
                case Ch('-'):
                    if (text[2] == Ch('-'))
                    {
                        // '<!--' - xml comment
                        text += 3;     // Skip '!--'
                        return parse_comment<Flags>(text);
                    }
                    break;

                // <![
                case Ch('['):
                    if (text[2] == Ch('C') && text[3] == Ch('D') && text[4] == Ch('A') && 
                        text[5] == Ch('T') && text[6] == Ch('A') && text[7] == Ch('['))
                    {
                        // '<![CDATA[' - cdata
                        text += 8;     // Skip '![CDATA['
                        return parse_cdata<Flags>(text);
                    }
                    break;

                // <!D
                case Ch('D'):
                    if (text[2] == Ch('O') && text[3] == Ch('C') && text[4] == Ch('T') && 
                        text[5] == Ch('Y') && text[6] == Ch('P') && text[7] == Ch('E') && 
                        whitespace_pred::test(text[8]))
                    {
                        // '<!DOCTYPE ' - doctype
                        text += 9;      // skip '!DOCTYPE '
                        return parse_doctype<Flags>(text);
                    }

                }   // switch

                // Attempt to skip other, unrecognized node types starting with <!
                ++text;     // Skip !
                while (*text != Ch('>'))
                {
                    if (*text == 0)
                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
                    ++text;
                }
                ++text;     // Skip '>'
                return 0;   // No node recognized

            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq (%rsi), %rax
movzbl (%rax), %ecx
cmpl $0x21, %ecx
je 0x425e
cmpl $0x3f, %ecx
jne 0x42ca
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movzbl 0x1(%rax), %ecx
orl $0x20, %ecx
cmpl $0x78, %ecx
jne 0x42d8
movzbl 0x2(%rax), %ecx
orl $0x20, %ecx
cmpl $0x6d, %ecx
jne 0x42d8
movzbl 0x3(%rax), %ecx
orl $0x20, %ecx
cmpl $0x6c, %ecx
jne 0x42d8
movzbl 0x4(%rax), %ecx
leaq 0x2401(%rip), %rdx      # 0x6640
cmpb $0x0, (%rcx,%rdx)
je 0x42d8
addq $0x5, %rax
movq %rax, (%rbx)
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x4520
movzbl 0x1(%rax), %ecx
cmpl $0x2d, %ecx
je 0x4330
cmpl $0x44, %ecx
je 0x42e6
cmpl $0x5b, %ecx
jne 0x434b
cmpb $0x43, 0x2(%rax)
jne 0x434b
cmpb $0x44, 0x3(%rax)
jne 0x434b
cmpb $0x41, 0x4(%rax)
jne 0x434b
cmpb $0x54, 0x5(%rax)
jne 0x434b
cmpb $0x41, 0x6(%rax)
jne 0x434b
cmpb $0x5b, 0x7(%rax)
jne 0x434b
addq $0x8, %rax
movq %rax, (%rbx)
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x467c
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x440c
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x4592
cmpb $0x4f, 0x2(%rax)
jne 0x434b
cmpb $0x43, 0x3(%rax)
jne 0x434b
cmpb $0x54, 0x4(%rax)
jne 0x434b
cmpb $0x59, 0x5(%rax)
jne 0x434b
cmpb $0x50, 0x6(%rax)
jne 0x434b
cmpb $0x45, 0x7(%rax)
jne 0x434b
movzbl 0x8(%rax), %ecx
leaq 0x232b(%rip), %rdx      # 0x6640
cmpb $0x0, (%rcx,%rdx)
je 0x434b
addq $0x9, %rax
movq %rax, (%rbx)
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x471c
cmpb $0x2d, 0x2(%rax)
jne 0x434b
addq $0x3, %rax
movq %rax, (%rbx)
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x4604
incq %rax
movq %rax, (%rbx)
movzbl (%rax), %ecx
incq %rax
cmpl $0x3e, %ecx
je 0x439a
testl %ecx, %ecx
jne 0x434e
pushq $0x18
popq %rdi
callq 0x20e0
movq (%rbx), %rcx
leaq 0x5a0e(%rip), %rdx      # 0x9d80
movq %rdx, (%rax)
leaq 0x204e(%rip), %rdx      # 0x63ca
movq %rdx, 0x8(%rax)
movq %rcx, 0x10(%rax)
leaq 0x59cd(%rip), %rsi      # 0x9d58
movq 0x5c46(%rip), %rdx      # 0x9fd8
movq %rax, %rdi
callq 0x2360
movq %rax, (%rbx)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq