// File: /workspace/github_cpp_makefile_star2_O2/jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::xpath_ast_node::apply_predicate(pugi::impl::(anonymous namespace)::xpath_node_set_raw&, unsigned long, pugi::impl::(anonymous namespace)::xpath_stack const&, bool)
void apply_predicate(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, bool once)
		{
			if (ns.size() == first) return;

			assert(_type == ast_filter || _type == ast_predicate);

			if (_test == predicate_constant || _test == predicate_constant_one)
				apply_predicate_number_const(ns, first, _right, stack);
			else if (_right->rettype() == xpath_type_number)
				apply_predicate_number(ns, first, _right, stack, once);
			else
				apply_predicate_boolean(ns, first, _right, stack, once);
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %r8d, 0x4(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x8(%rsi), %r15
movq 0x10(%rsi), %rax
movq %rax, %r13
subq %r15, %r13
sarq $0x4, %r13
cmpq %rdx, %r13
je 0x285bf
movb (%rdi), %cl
andb $-0x2, %cl
cmpb $0x10, %cl
jne 0x286d9
movq %rsi, %r14
movb 0x3(%rdi), %cl
andb $-0x2, %cl
movq 0x10(%rdi), %r12
cmpb $0x2, %cl
jne 0x285ce
subq %rdx, %r13
jb 0x286f8
cmpb $0x2, 0x1(%r12)
jne 0x28717
shlq $0x4, %rdx
addq %rdx, %r15
xorpd %xmm0, %xmm0
leaq 0x10(%rsp), %rsi
movapd %xmm0, (%rsi)
movq $0x1, 0x10(%rsi)
movq %r13, 0x18(%rsi)
movq %r12, %rdi
movq 0x8(%rsp), %rdx
callq 0x1ffb8
ucomisd 0x3271(%rip), %xmm0     # 0x2b798
jb 0x285b4
movq %r13, %xmm1
punpckldq 0x3226(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x322e(%rip), %xmm1     # 0x2b770
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
ucomisd %xmm0, %xmm2
jb 0x285b4
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
movapd %xmm0, %xmm1
subsd 0x3248(%rip), %xmm1     # 0x2b7b0
sarq $0x3f, %rdx
cvttsd2si %xmm1, %rax
andq %rdx, %rax
orq %rcx, %rax
movq %rax, %xmm1
punpckldq 0x31dc(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x31e4(%rip), %xmm1     # 0x2b770
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
ucomisd %xmm2, %xmm0
jne 0x285b4
jp 0x285b4
shlq $0x4, %rax
movupd -0x10(%r15,%rax), %xmm0
movupd %xmm0, (%r15)
addq $0x10, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x289b0
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x2, 0x1(%r12)
jne 0x28669
subq %rdx, %r13
jb 0x28736
shlq $0x4, %rdx
addq %rdx, %r15
pushq $0x1
popq %rbp
movq %r15, %rbx
cmpq %rax, %rbx
je 0x285b4
movupd (%rbx), %xmm0
movapd %xmm0, 0x10(%rsp)
movq %rbp, 0x20(%rsp)
movq %r13, 0x28(%rsp)
movq %r12, %rdi
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x1ffb8
movq %rbp, %xmm1
punpckldq 0x3138(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x3140(%rip), %xmm1     # 0x2b770
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
ucomisd %xmm2, %xmm0
jne 0x2865c
jp 0x2865c
movupd (%rbx), %xmm0
movupd %xmm0, (%r15)
addq $0x10, %r15
cmpb $0x0, 0x4(%rsp)
jne 0x285b4
addq $0x10, %rbx
incq %rbp
movq 0x10(%r14), %rax
jmp 0x285f0
subq %rdx, %r13
jb 0x28755
shlq $0x4, %rdx
addq %rdx, %r15
pushq $0x1
popq %rbx
movq %r15, %rbp
cmpq %rax, %rbp
je 0x285b4
movupd (%rbp), %xmm0
movapd %xmm0, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, 0x28(%rsp)
movq %r12, %rdi
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x1f176
testb %al, %al
je 0x286cc
movupd (%rbp), %xmm0
movupd %xmm0, (%r15)
addq $0x10, %r15
cmpb $0x0, 0x4(%rsp)
jne 0x285b4
addq $0x10, %rbp
incq %rbx
movq 0x10(%r14), %rax
jmp 0x2867f
leaq 0x67dd(%rip), %rdi      # 0x2eebd
leaq 0x384e(%rip), %rsi      # 0x2bf35
leaq 0x67fd(%rip), %rcx      # 0x2eeeb
movl $0x25b8, %edx           # imm = 0x25B8
callq 0x6100
leaq 0x686d(%rip), %rdi      # 0x2ef6c
leaq 0x382f(%rip), %rsi      # 0x2bf35
leaq 0x6872(%rip), %rcx      # 0x2ef7f
movl $0x259a, %edx           # imm = 0x259A
callq 0x6100
leaq 0x6902(%rip), %rdi      # 0x2f020
leaq 0x3810(%rip), %rsi      # 0x2bf35
leaq 0x6853(%rip), %rcx      # 0x2ef7f
movl $0x259b, %edx           # imm = 0x259B
callq 0x6100
leaq 0x682f(%rip), %rdi      # 0x2ef6c
leaq 0x37f1(%rip), %rsi      # 0x2bf35
leaq 0x696a(%rip), %rcx      # 0x2f0b5
movl $0x2580, %edx           # imm = 0x2580
callq 0x6100
leaq 0x6810(%rip), %rdi      # 0x2ef6c
leaq 0x37d2(%rip), %rsi      # 0x2bf35
leaq 0x69ec(%rip), %rcx      # 0x2f156
movl $0x2566, %edx           # imm = 0x2566
callq 0x6100