// File: /workspace/github_cpp_makefile_star2_O1/jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::xpath_ast_node::step_push(pugi::impl::(anonymous namespace)::xpath_node_set_raw&, pugi::xml_node_struct*, pugi::impl::(anonymous namespace)::xpath_allocator*)
bool step_push(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc)
		{
			assert(n);

			xml_node_type type = PUGI__NODETYPE(n);

			switch (_test)
			{
			case nodetest_name:
				if (type == node_element && n->name && strequal(n->name, _data.nodetest))
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			case nodetest_type_node:
				ns.push_back(xml_node(n), alloc);
				return true;

			case nodetest_type_comment:
				if (type == node_comment)
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			case nodetest_type_text:
				if (type == node_pcdata || type == node_cdata)
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			case nodetest_type_pi:
				if (type == node_pi)
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			case nodetest_pi:
				if (type == node_pi && n->name && strequal(n->name, _data.nodetest))
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			case nodetest_all:
				if (type == node_element)
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			case nodetest_all_in_namespace:
				if (type == node_element && n->name && starts_with(n->name, _data.nodetest))
				{
					ns.push_back(xml_node(n), alloc);
					return true;
				}
				break;

			default:
				assert(false && "Unknown axis"); // unreachable
			}

			return false;
		}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
testq %rdx, %rdx
je 0x2f60e
movq %rcx, %rbx
movzbl 0x3(%rdi), %ecx
decl %ecx
cmpl $0x7, %ecx
ja 0x2f62d
movq %rdx, %r15
movq %rsi, %r14
movl (%rdx), %eax
andl $0xf, %eax
leaq 0x36a6(%rip), %rdx      # 0x32bd4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpl $0x2, %eax
je 0x2f5a1
jmp 0x2f5ba
addl $-0x3, %eax
cmpl $0x1, %eax
ja 0x2f5ba
jmp 0x2f5c3
cmpl $0x5, %eax
jne 0x2f5ba
jmp 0x2f5c3
cmpl $0x6, %eax
jne 0x2f5ba
jmp 0x2f5c3
cmpl $0x2, %eax
jne 0x2f5ba
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x2f5ba
movq 0x20(%rdi), %rcx
movb (%rcx), %sil
testb %sil, %sil
sete %dl
je 0x2f596
cmpb %sil, (%rax)
jne 0x2f596
movl $0x1, %esi
movb (%rcx,%rsi), %dil
testb %dil, %dil
sete %dl
je 0x2f596
leaq 0x1(%rsi), %r8
cmpb %dil, (%rax,%rsi)
movq %r8, %rsi
je 0x2f57d
testb %dl, %dl
je 0x2f5ba
jmp 0x2f5c3
cmpl $0x6, %eax
jne 0x2f5ba
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x2f5ba
movq 0x20(%rdi), %rsi
movq %rax, %rdi
callq 0x1d71d
testb %al, %al
jne 0x2f5c3
xorl %eax, %eax
jmp 0x2f604
cmpl $0x2, %eax
jne 0x2f5ba
movq %r15, (%rsp)
movq $0x0, 0x8(%rsp)
movq 0x10(%r14), %rax
cmpq 0x18(%r14), %rax
je 0x2f5f4
leaq 0x10(%rax), %rcx
movq %rcx, 0x10(%r14)
movq (%rsp), %rcx
movq %rcx, (%rax)
movq 0x8(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x2f602
movq %rsp, %rsi
movq %r14, %rdi
movq %rbx, %rdx
callq 0x2fde4
movb $0x1, %al
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x5959(%rip), %rdi      # 0x34f6e
leaq 0x38d9(%rip), %rsi      # 0x32ef5
leaq 0x6b7c(%rip), %rcx      # 0x3619f
movl $0x25f6, %edx           # imm = 0x25F6
callq 0x6120
leaq 0x674b(%rip), %rdi      # 0x35d7f
leaq 0x38ba(%rip), %rsi      # 0x32ef5
leaq 0x6b5d(%rip), %rcx      # 0x3619f
movl $0x2639, %edx           # imm = 0x2639
callq 0x6120