// File: /workspace/github_cpp_makefile_star2_O3/Matlock42[P]Jeopardy/./RapidXml/rapidxml.hpp
// Function: void rapidxml::xml_document<char>::parse_node_contents<0>(char*&, rapidxml::xml_node<char>*)
void parse_node_contents(Ch *&text, xml_node<Ch> *node)
        {
            // For all children and text
            while (1)
            {
                // Skip whitespace between > and node contents
                Ch *contents_start = text;      // Store start of node contents before whitespace is skipped
                skip<whitespace_pred, Flags>(text);
                Ch next_char = *text;

            // After data nodes, instead of continuing the loop, control jumps here.
            // This is because zero termination inside parse_and_append_data() function
            // would wreak havoc with the above code.
            // Also, skipping whitespace after data nodes is unnecessary.
            after_data_node:    
                
                // Determine what comes next: node closing, child node, data node, or 0?
                switch (next_char)
                {
                
                // Node closing or child node
                case Ch('<'):
                    if (text[1] == Ch('/'))
                    {
                        // Node closing
                        text += 2;      // Skip '</'
                        if (Flags & parse_validate_closing_tags)
                        {
                            // Skip and validate closing tag name
                            Ch *closing_name = text;
                            skip<node_name_pred, Flags>(text);
                            if (!internal::compare(node->name(), node->name_size(), closing_name, text - closing_name, true))
                                RAPIDXML_PARSE_ERROR("invalid closing tag name", text);
                        }
                        else
                        {
                            // No validation, just skip name
                            skip<node_name_pred, Flags>(text);
                        }
                        // Skip remaining whitespace after node name
                        skip<whitespace_pred, Flags>(text);
                        if (*text != Ch('>'))
                            RAPIDXML_PARSE_ERROR("expected >", text);
                        ++text;     // Skip '>'
                        return;     // Node closed, finished parsing contents
                    }
                    else
                    {
                        // Child node
                        ++text;     // Skip '<'
                        if (xml_node<Ch> *child = parse_node<Flags>(text))
                            node->append_node(child);
                    }
                    break;

                // End of data - error
                case Ch('\0'):
                    RAPIDXML_PARSE_ERROR("unexpected end of data", text);

                // Data node
                default:
                    next_char = parse_and_append_data<Flags>(node, text, contents_start);
                    goto after_data_node;   // Bypass regular processing after data nodes

                }
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r15
leaq 0x1778(%rip), %r13      # 0x6630
leaq 0x1871(%rip), %rdx      # 0x6730
movq (%rbx), %r12
leaq -0x1(%r12), %rax
movzbl 0x1(%rax), %ecx
incq %rax
cmpb $0x0, (%rcx,%r13)
jne 0x4ec7
movq %rax, (%rbx)
movb (%rax), %al
cmpb $0x3c, %al
je 0x4f03
movzbl %al, %eax
testl %eax, %eax
je 0x4f93
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0x5674
leaq 0x182f(%rip), %rdx      # 0x6730
jmp 0x4eda
movq (%rbx), %rcx
leaq 0x1(%rcx), %rax
movb 0x1(%rcx), %r12b
cmpb $0x2f, %r12b
jne 0x4f4e
addq $0x2, %rcx
movq %rcx, (%rbx)
movzbl 0x1(%rax), %ecx
incq %rax
cmpb $0x0, (%rcx,%rdx)
jne 0x4f1b
movq %rax, (%rbx)
movzbl (%rax), %ecx
incq %rax
cmpb $0x0, (%rcx,%r13)
jne 0x4f2b
leaq -0x1(%rax), %rcx
movq %rcx, (%rbx)
cmpb $0x3e, -0x1(%rax)
jne 0x4fcf
movq %rax, (%rbx)
jmp 0x4f7a
movq %rax, (%rbx)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4646
leaq 0x17cd(%rip), %rdx      # 0x6730
testq %rax, %rax
je 0x4f7a
movq %r14, %rdi
movq %rax, %rsi
callq 0x480e
leaq 0x17b6(%rip), %rdx      # 0x6730
cmpb $0x2f, %r12b
jne 0x4ebf
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x18, %edi
callq 0x20d0
movq (%rbx), %rcx
leaq 0x3dd9(%rip), %rdx      # 0x8d80
movq %rdx, (%rax)
leaq 0x1419(%rip), %rdx      # 0x63ca
movq %rdx, 0x8(%rax)
movq %rcx, 0x10(%rax)
leaq 0x3d98(%rip), %rsi      # 0x8d58
movq 0x4011(%rip), %rdx      # 0x8fd8
movq %rax, %rdi
callq 0x2330
movl $0x18, %edi
callq 0x20d0
movq (%rbx), %rcx
leaq 0x3d9d(%rip), %rdx      # 0x8d80
movq %rdx, (%rax)
leaq 0x140a(%rip), %rdx      # 0x63f7
jmp 0x4fb1
nop