// File: /workspace/github_cpp_makefile_star2_O3/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), %rbp
movq 0x10(%rsi), %rax
movq %rax, %r13
subq %rbp, %r13
sarq $0x4, %r13
cmpq %rdx, %r13
je 0x2dd00
movb (%rdi), %cl
andb $-0x2, %cl
cmpb $0x10, %cl
jne 0x2dd0f
movq %rdx, %r14
movq %rsi, %rbx
movb 0x3(%rdi), %cl
andb $-0x2, %cl
movq 0x10(%rdi), %r12
cmpb $0x2, %cl
jne 0x2dbd7
subq %r14, %r13
jb 0x2dd4d
cmpb $0x2, 0x1(%r12)
jne 0x2dd6c
shlq $0x4, %r14
addq %r14, %rbp
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 0x25fbc
ucomisd 0x3c5a(%rip), %xmm0     # 0x31788
jb 0x2dbba
movq %r13, %xmm1
punpckldq 0x3c0f(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x3c17(%rip), %xmm1     # 0x31760
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
ucomisd %xmm0, %xmm2
jb 0x2dbba
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
movapd %xmm0, %xmm1
subsd 0x3c31(%rip), %xmm1     # 0x317a0
sarq $0x3f, %rdx
cvttsd2si %xmm1, %rax
andq %rdx, %rax
orq %rcx, %rax
movq %rax, %xmm1
punpckldq 0x3bc5(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x3bcd(%rip), %xmm1     # 0x31760
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
ucomisd %xmm2, %xmm0
jne 0x2dbba
jp 0x2dbba
shlq $0x4, %rax
movupd -0x10(%rbp,%rax), %xmm0
movupd %xmm0, (%rbp)
addq $0x10, %rbp
cmpq %rbp, 0x8(%rbx)
ja 0x2dd2e
cmpq %rbp, 0x10(%rbx)
jb 0x2dd2e
movq %rbp, 0x10(%rbx)
jmp 0x2dd00
cmpb $0x2, 0x1(%r12)
jne 0x2dc78
subq %r14, %r13
jb 0x2dd8b
shlq $0x4, %r14
addq %rbp, %r14
cmpq %rax, %r14
je 0x2dcf2
movl $0x1, %ebp
movq %r14, %r15
movupd (%r14), %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 0x25fbc
movq %rbp, %xmm1
punpckldq 0x3b18(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x3b20(%rip), %xmm1     # 0x31760
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
ucomisd %xmm2, %xmm0
jne 0x2dc69
jp 0x2dc69
movupd (%r14), %xmm0
movupd %xmm0, (%r15)
addq $0x10, %r15
cmpb $0x0, 0x4(%rsp)
jne 0x2dce4
addq $0x10, %r14
incq %rbp
cmpq 0x10(%rbx), %r14
jne 0x2dc04
jmp 0x2dce8
subq %r14, %r13
jb 0x2ddaa
shlq $0x4, %r14
addq %rbp, %r14
cmpq %rax, %r14
je 0x2dcf2
movl $0x1, %ebp
movq %r14, %r15
movupd (%r14), %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 0x250c4
testb %al, %al
je 0x2dcd5
movupd (%r14), %xmm0
movupd %xmm0, (%r15)
addq $0x10, %r15
cmpb $0x0, 0x4(%rsp)
jne 0x2dce4
addq $0x10, %r14
incq %rbp
cmpq 0x10(%rbx), %r14
jne 0x2dc95
jmp 0x2dce8
movq 0x10(%rbx), %r14
movq 0x8(%rbx), %rbp
movq %r14, %rax
movq %r15, %r14
cmpq %r14, %rbp
ja 0x2dd2e
cmpq %r14, %rax
jb 0x2dd2e
movq %r14, 0x10(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6fa4(%rip), %rdi      # 0x34cba
leaq 0x4208(%rip), %rsi      # 0x31f25
leaq 0x6fc4(%rip), %rcx      # 0x34ce8
movl $0x25b8, %edx           # imm = 0x25B8
callq 0x6120
leaq 0x710d(%rip), %rdi      # 0x34e42
leaq 0x41e9(%rip), %rsi      # 0x31f25
leaq 0x711c(%rip), %rcx      # 0x34e5f
movl $0x228e, %edx           # imm = 0x228E
callq 0x6120
leaq 0x7015(%rip), %rdi      # 0x34d69
leaq 0x41ca(%rip), %rsi      # 0x31f25
leaq 0x701a(%rip), %rcx      # 0x34d7c
movl $0x259a, %edx           # imm = 0x259A
callq 0x6120
leaq 0x70aa(%rip), %rdi      # 0x34e1d
leaq 0x41ab(%rip), %rsi      # 0x31f25
leaq 0x6ffb(%rip), %rcx      # 0x34d7c
movl $0x259b, %edx           # imm = 0x259B
callq 0x6120
leaq 0x6fd7(%rip), %rdi      # 0x34d69
leaq 0x418c(%rip), %rsi      # 0x31f25
leaq 0x7112(%rip), %rcx      # 0x34eb2
movl $0x2580, %edx           # imm = 0x2580
callq 0x6120
leaq 0x6fb8(%rip), %rdi      # 0x34d69
leaq 0x416d(%rip), %rsi      # 0x31f25
leaq 0x7194(%rip), %rcx      # 0x34f53
movl $0x2566, %edx           # imm = 0x2566
callq 0x6120
nop