// File: /workspace/github_cpp_makefile_star2_O3/jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::xpath_ast_node::eval_boolean(pugi::impl::(anonymous namespace)::xpath_context const&, pugi::impl::(anonymous namespace)::xpath_stack const&)
bool eval_boolean(const xpath_context& c, const xpath_stack& stack)
		{
			switch (_type)
			{
			case ast_op_or:
				return _left->eval_boolean(c, stack) || _right->eval_boolean(c, stack);

			case ast_op_and:
				return _left->eval_boolean(c, stack) && _right->eval_boolean(c, stack);

			case ast_op_equal:
				return compare_eq(_left, _right, c, stack, equal_to());

			case ast_op_not_equal:
				return compare_eq(_left, _right, c, stack, not_equal_to());

			case ast_op_less:
				return compare_rel(_left, _right, c, stack, less());

			case ast_op_greater:
				return compare_rel(_right, _left, c, stack, less());

			case ast_op_less_or_equal:
				return compare_rel(_left, _right, c, stack, less_equal());

			case ast_op_greater_or_equal:
				return compare_rel(_right, _left, c, stack, less_equal());

			case ast_func_starts_with:
			{
				xpath_allocator_capture cr(stack.result);

				xpath_string lr = _left->eval_string(c, stack);
				xpath_string rr = _right->eval_string(c, stack);

				return starts_with(lr.c_str(), rr.c_str());
			}

			case ast_func_contains:
			{
				xpath_allocator_capture cr(stack.result);

				xpath_string lr = _left->eval_string(c, stack);
				xpath_string rr = _right->eval_string(c, stack);

				return find_substring(lr.c_str(), rr.c_str()) != 0;
			}

			case ast_func_boolean:
				return _left->eval_boolean(c, stack);

			case ast_func_not:
				return !_left->eval_boolean(c, stack);

			case ast_func_true:
				return true;

			case ast_func_false:
				return false;

			case ast_func_lang:
			{
				if (c.n.attribute()) return false;

				xpath_allocator_capture cr(stack.result);

				xpath_string lang = _left->eval_string(c, stack);

				for (xml_node n = c.n.node(); n; n = n.parent())
				{
					xml_attribute a = n.attribute(PUGIXML_TEXT("xml:lang"));

					if (a)
					{
						const char_t* value = a.value();

						// strnicmp / strncasecmp is not portable
						for (const char_t* lit = lang.c_str(); *lit; ++lit)
						{
							if (tolower_ascii(*lit) != tolower_ascii(*value)) return false;
							++value;
						}

						return *value == 0 || *value == '-';
					}
				}

				return false;
			}

			case ast_opt_compare_attribute:
			{
				const char_t* value = (_right->_type == ast_string_constant) ? _right->_data.string : _right->_data.variable->get_string();

				xml_attribute attr = c.n.node().attribute(_left->_data.nodetest);

				return attr && strequal(attr.value(), value) && is_xpath_attribute(attr.name());
			}

			case ast_variable:
			{
				assert(_rettype == _data.variable->type());

				if (_rettype == xpath_type_boolean)
					return _data.variable->get_boolean();
			}

			// fallthrough
			default:
			{
				switch (_rettype)
				{
				case xpath_type_number:
					return convert_number_to_boolean(eval_number(c, stack));

				case xpath_type_string:
				{
					xpath_allocator_capture cr(stack.result);

					return !eval_string(c, stack).empty();
				}

				case xpath_type_node_set:
				{
					xpath_allocator_capture cr(stack.result);

					return !eval_node_set(c, stack, nodeset_eval_any).empty();
				}

				default:
					assert(false && "Wrong expression for return type boolean"); // unreachable
					return false;
				}
			}
			}
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r13
movl $0x0, 0x24(%rsp)
leaq 0xc743(%rip), %rbp      # 0x31830
leaq 0xc6ec(%rip), %rbx      # 0x317e0
movzbl (%r13), %eax
movb $0x1, %r12b
leal -0x1(%rax), %ecx
cmpl $0x13, %ecx
ja 0x2512a
movslq (%rbx,%rcx,4), %rax
addq %rbx, %rax
jmpq *%rax
movq 0x8(%r13), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
movl $0x10, %ecx
testb %al, %al
je 0x25161
jmp 0x25749
leal -0x22(%rax), %edx
cmpl $0xf, %edx
ja 0x251ba
movl $0x8, %ecx
movslq (%rbp,%rdx,4), %rax
addq %rbp, %rax
jmpq *%rax
movq 0x8(%r13), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
movl $0x10, %ecx
testb %al, %al
je 0x25746
movq (%r13,%rcx), %r13
jmp 0x250f4
movq 0x8(%r13), %rsi
movq 0x10(%r13), %r13
movb 0x1(%rsi), %al
movb 0x1(%r13), %cl
cmpb $0x1, %al
je 0x259da
cmpb $0x1, %cl
je 0x259da
cmpb $0x4, %al
setne %dl
cmpb $0x4, %cl
setne %dil
testb %dil, %dl
jne 0x25af7
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
movl 0x24(%rsp), %ecx
xorb %al, %cl
movl %ecx, 0x24(%rsp)
jmp 0x250f4
cmpl $0x3b, %eax
jne 0x251e3
movq 0x10(%r13), %rax
cmpb $0x12, (%rax)
movq 0x20(%rax), %r14
je 0x256c4
cmpl $0x3, (%r14)
jne 0x256b4
movq 0x10(%r14), %rax
jmp 0x256b6
movb 0x1(%r13), %al
jmp 0x25276
movq 0x8(%r13), %rsi
movq 0x10(%r13), %r12
movb 0x1(%rsi), %al
movb 0x1(%r12), %cl
cmpb $0x1, %al
sete %dl
cmpb $0x1, %cl
sete %dil
orb %dl, %dil
jne 0x254e8
cmpb $0x4, %al
sete %dl
cmpb $0x4, %cl
sete %dil
orb %dl, %dil
je 0x25605
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
movl %eax, %ebp
movq %r12, %rdi
jmp 0x25697
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdi
jmp 0x252ce
movq 0x8(%r13), %rdi
movq 0x10(%r13), %rsi
jmp 0x252e3
movsbl 0x1(%r13), %eax
movq 0x20(%r13), %rcx
cmpl %eax, (%rcx)
jne 0x25dad
cmpb $0x4, %al
jne 0x25276
movb 0x10(%rcx), %r12b
jmp 0x25749
cmpb $0x1, %al
je 0x2549a
movzbl %al, %eax
cmpl $0x3, %eax
je 0x25463
cmpl $0x2, %eax
jne 0x25dcc
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x252b1
jnp 0x25746
movsd %xmm0, (%rsp)
movsd (%rsp), %xmm0
cmpeqsd (%rsp), %xmm0
jmp 0x25643
movq 0x8(%r13), %rdi
movq 0x10(%r13), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2ce70
jmp 0x252ee
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2ca7c
movl %eax, %r12d
jmp 0x25749
cmpq $0x0, 0x8(%r15)
jne 0x25746
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x8(%r13), %rsi
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
xorl %r12d, %r12d
cmpq $0x0, 0x8(%r15)
movq (%r15), %rbx
movl $0x0, %eax
cmoveq %rbx, %rax
movq %rax, 0x50(%rsp)
testq %rax, %rax
je 0x254db
leaq 0xee3f(%rip), %r14      # 0x34197
leaq 0x50(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x1d828
testq %rax, %rax
jne 0x257c9
movq 0x18(%rbx), %rbx
movq %rbx, 0x50(%rsp)
testq %rbx, %rbx
jne 0x2535d
jmp 0x25da5
movq 0x8(%r13), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
jmp 0x256a5
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x8(%r13), %rsi
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x10(%r13), %rsi
leaq 0x50(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x30(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x62f0
testq %rax, %rax
jmp 0x254d7
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x8(%r13), %rsi
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x10(%r13), %rsi
leaq 0x50(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x50(%rsp), %rax
movb (%rax), %dl
testb %dl, %dl
je 0x25aef
movq 0x30(%rsp), %rcx
xorl %esi, %esi
cmpb %dl, (%rcx,%rsi)
sete %r12b
jne 0x254db
movb 0x1(%rax,%rsi), %dl
incq %rsi
testb %dl, %dl
jne 0x25449
jmp 0x254db
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x30(%rsp), %rax
cmpb $0x0, (%rax)
jmp 0x254d7
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
movl $0x1, %r8d
callq 0x279d6
movq 0x38(%rsp), %rax
cmpq 0x40(%rsp), %rax
setne %r12b
movq %rsp, %rdi
callq 0x2d264
jmp 0x25749
movl %eax, %edx
xorb $0x1, %dl
movl %ecx, %edi
xorb $0x1, %dil
orb %dl, %dil
jne 0x25651
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
movq 0x38(%rsp), %rbx
movq 0x40(%rsp), %rax
cmpq %rax, %rbx
je 0x25da5
leaq 0x80(%rsp), %r15
movq 0x60(%rsp), %rcx
leaq 0x78(%rsp), %r13
movq 0x58(%rsp), %r12
cmpq %rcx, %r12
je 0x255f3
movq (%r14), %rcx
movq %rcx, 0x78(%rsp)
movq 0x10(%rcx), %rax
movq %rax, 0x10(%r15)
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
leaq 0x98(%rsp), %rdi
callq 0x2d2a6
movq (%r14), %rcx
movq (%r12), %rsi
movq 0x8(%r12), %rdx
leaq 0xb0(%rsp), %rdi
callq 0x2d2a6
movq 0x98(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0x1d7f1
movl %eax, %ebp
movq %r13, %rdi
callq 0x2d264
testb %bpl, %bpl
jne 0x25aef
addq $0x10, %r12
cmpq 0x60(%rsp), %r12
jne 0x25572
movq 0x40(%rsp), %rax
movq %r12, %rcx
addq $0x10, %rbx
cmpq %rax, %rbx
jne 0x25564
jmp 0x25da5
cmpb $0x2, %al
setne %dl
cmpb $0x2, %cl
setne %dil
testb %dil, %dl
jne 0x25764
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
movsd %xmm0, 0x28(%rsp)
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
cmpeqsd 0x28(%rsp), %xmm0
movq %xmm0, %r12
andl $0x1, %r12d
jmp 0x25749
cmpb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %eax
cmovel %ecx, %eax
movq %r12, %r13
cmoveq %rsi, %r13
cmoveq %r12, %rsi
cmpb $0x2, %al
je 0x258ff
movzbl %al, %eax
cmpl $0x3, %eax
je 0x2583f
cmpl $0x4, %eax
jne 0x25deb
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
movl %eax, %ebp
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
xorb %bpl, %al
movl 0x24(%rsp), %ecx
xorb %al, %cl
movl %ecx, %eax
xorb $0x1, %al
jmp 0x25750
xorl %eax, %eax
testq %rax, %rax
leaq 0xaa49(%rip), %r14      # 0x30109
cmovneq %rax, %r14
cmpq $0x0, 0x8(%r15)
jne 0x256d0
movq (%r15), %rax
jmp 0x256d2
xorl %eax, %eax
movq %rsp, %rdi
movq %rax, (%rdi)
movq 0x8(%r13), %rax
movq 0x20(%rax), %rsi
callq 0x1d828
testq %rax, %rax
je 0x25746
movq %rax, %r15
movq 0x10(%rax), %rdi
testq %rdi, %rdi
leaq 0xaa0e(%rip), %rbx      # 0x30109
cmoveq %rbx, %rdi
movq %r14, %rsi
callq 0x1d7f1
testb %al, %al
je 0x25746
movq 0x8(%r15), %rax
testq %rax, %rax
cmovneq %rax, %rbx
movb $0x78, %dl
xorl %eax, %eax
leaq 0xefb9(%rip), %rcx      # 0x346da
cmpb %dl, (%rbx,%rax)
jne 0x25749
movb 0x1(%rax,%rcx), %dl
incq %rax
cmpq $0x5, %rax
jne 0x25721
movb 0x5(%rbx), %al
testb %al, %al
setne %cl
cmpb $0x3a, %al
setne %r12b
andb %cl, %r12b
jmp 0x25749
xorl %r12d, %r12d
movl 0x24(%rsp), %eax
xorb %r12b, %al
andb $0x1, %al
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x3, %al
setne %al
cmpb $0x3, %cl
setne %cl
testb %cl, %al
jne 0x25deb
movq (%r14), %rax
movq %rax, (%rsp)
movups (%rax), %xmm0
movups %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x30(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x1d7f1
movl %eax, %r12d
jmp 0x254db
movq 0x10(%rax), %rcx
testq %rcx, %rcx
leaq 0xa932(%rip), %rax      # 0x30109
cmovneq %rcx, %rax
movq 0x30(%rsp), %rcx
movb (%rcx), %dl
testb %dl, %dl
je 0x2582a
incq %rcx
movsbl %dl, %edx
leal -0x41(%rdx), %esi
movzbl %dl, %edi
orb $0x20, %dl
cmpl $0x1a, %esi
movzbl %dl, %edx
cmovael %edi, %edx
movsbl (%rax), %esi
leal -0x41(%rsi), %edi
movl %esi, %r8d
orb $0x20, %r8b
cmpl $0x1a, %edi
movzbl %r8b, %edi
cmovael %esi, %edi
cmpb %dil, %dl
jne 0x25da5
incq %rax
movb (%rcx), %dl
incq %rcx
testb %dl, %dl
jne 0x257e9
movb (%rax), %al
testb %al, %al
sete %cl
cmpb $0x2d, %al
sete %r12b
orb %cl, %r12b
jmp 0x254db
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x78(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
movq 0x38(%rsp), %rbx
cmpq 0x40(%rsp), %rbx
je 0x25da5
leaq 0x58(%rsp), %rbp
leaq 0x98(%rsp), %r15
leaq 0x50(%rsp), %r13
movq (%r14), %rcx
movq %rcx, 0x50(%rsp)
movq 0x10(%rcx), %rax
movq %rax, 0x10(%rbp)
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r15, %rdi
callq 0x2d2a6
movq 0x78(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x1d7f1
movl %eax, %r12d
movq %r13, %rdi
callq 0x2d264
testb %r12b, %r12b
jne 0x254db
addq $0x10, %rbx
cmpq 0x40(%rsp), %rbx
jne 0x258a1
jmp 0x254db
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
movsd %xmm0, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
movq 0x38(%rsp), %rbx
cmpq 0x40(%rsp), %rbx
je 0x25da5
leaq 0x58(%rsp), %rbp
leaq 0x78(%rsp), %r15
leaq 0x50(%rsp), %r13
movq (%r14), %rcx
movq %rcx, 0x50(%rsp)
movq 0x10(%rcx), %rax
movq %rax, 0x10(%rbp)
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r15, %rdi
callq 0x2d2a6
movq 0x78(%rsp), %rdi
callq 0x2c042
movsd %xmm0, 0x70(%rsp)
movsd 0x28(%rsp), %xmm1
cmpeqsd %xmm0, %xmm1
movq %xmm1, %r12
andl $0x1, %r12d
movq %r13, %rdi
callq 0x2d264
movsd 0x28(%rsp), %xmm0
ucomisd 0x70(%rsp), %xmm0
jne 0x259ca
jnp 0x254db
addq $0x10, %rbx
cmpq 0x40(%rsp), %rbx
jne 0x25962
jmp 0x254db
movl %eax, %edx
xorb $0x1, %dl
movl %ecx, %edi
xorb $0x1, %dil
orb %dl, %dil
jne 0x25b3a
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
leaq 0x50(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
movq 0x38(%rsp), %rbx
movq 0x40(%rsp), %rax
cmpq %rax, %rbx
je 0x25da5
leaq 0x80(%rsp), %r15
movq 0x60(%rsp), %rcx
leaq 0x78(%rsp), %r13
movq 0x58(%rsp), %r12
cmpq %rcx, %r12
je 0x25add
movq (%r14), %rcx
movq %rcx, 0x78(%rsp)
movq 0x10(%rcx), %rax
movq %rax, 0x10(%r15)
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
leaq 0x98(%rsp), %rdi
callq 0x2d2a6
movq (%r14), %rcx
movq (%r12), %rsi
movq 0x8(%r12), %rdx
leaq 0xb0(%rsp), %rdi
callq 0x2d2a6
movq 0x98(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0x1d7f1
movl %eax, %ebp
movq %r13, %rdi
callq 0x2d264
testb %bpl, %bpl
je 0x25aef
addq $0x10, %r12
cmpq 0x60(%rsp), %r12
jne 0x25a60
movq 0x40(%rsp), %rax
movq %r12, %rcx
addq $0x10, %rbx
cmpq %rax, %rbx
jne 0x25a56
jmp 0x25da5
movb $0x1, %r12b
jmp 0x254db
cmpb $0x2, %al
setne %dl
cmpb $0x2, %cl
setne %dil
testb %dil, %dl
jne 0x25b9b
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
movsd %xmm0, 0x28(%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
cmpneqsd 0x28(%rsp), %xmm0
jmp 0x25643
cmpb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %eax
cmovel %ecx, %eax
movq %r13, %r12
cmoveq %rsi, %r12
cmoveq %r13, %rsi
cmpb $0x2, %al
je 0x25cc6
movzbl %al, %eax
cmpl $0x3, %eax
je 0x25c06
cmpl $0x4, %eax
jne 0x25e0a
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
movl %eax, %ebp
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x250c4
xorb %bpl, %al
movl 0x24(%rsp), %ecx
xorb %al, %cl
movl %ecx, %eax
jmp 0x25750
cmpb $0x3, %al
setne %al
cmpb $0x3, %cl
setne %cl
testb %cl, %al
jne 0x25e0a
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
leaq 0x50(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
movq 0x30(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x1d7f1
movl %eax, %r12d
xorb $0x1, %r12b
jmp 0x254db
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
leaq 0x78(%rsp), %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x266b0
leaq 0x30(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
movq 0x38(%rsp), %rbx
cmpq 0x40(%rsp), %rbx
je 0x25da5
leaq 0x58(%rsp), %rbp
leaq 0x98(%rsp), %r15
leaq 0x50(%rsp), %r13
movq (%r14), %rcx
movq %rcx, 0x50(%rsp)
movq 0x10(%rcx), %rax
movq %rax, 0x10(%rbp)
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r15, %rdi
callq 0x2d2a6
movq 0x78(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x1d7f1
movl %eax, %r12d
movq %r13, %rdi
callq 0x2d264
testb %r12b, %r12b
je 0x25bfd
addq $0x10, %rbx
cmpq 0x40(%rsp), %rbx
jne 0x25c68
jmp 0x25bfd
movq (%r14), %rax
movq %rax, (%rsp)
movupd (%rax), %xmm0
movupd %xmm0, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq %rsi, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x25fbc
movsd %xmm0, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x279d6
movq 0x38(%rsp), %rbx
cmpq 0x40(%rsp), %rbx
je 0x25da5
leaq 0x58(%rsp), %rbp
leaq 0x78(%rsp), %r15
leaq 0x50(%rsp), %r13
movq (%r14), %rcx
movq %rcx, 0x50(%rsp)
movq 0x10(%rcx), %rax
movq %rax, 0x10(%rbp)
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r15, %rdi
callq 0x2d2a6
movq 0x78(%rsp), %rdi
callq 0x2c042
movsd %xmm0, 0x70(%rsp)
movsd 0x28(%rsp), %xmm1
cmpneqsd %xmm0, %xmm1
movq %xmm1, %r12
andl $0x1, %r12d
movq %r13, %rdi
callq 0x2d264
movsd 0x28(%rsp), %xmm0
ucomisd 0x70(%rsp), %xmm0
jne 0x254db
jp 0x254db
addq $0x10, %rbx
cmpq 0x40(%rsp), %rbx
jne 0x25d29
jmp 0x254db
xorl %r12d, %r12d
jmp 0x254db
leaq 0xe3ec(%rip), %rdi      # 0x341a0
leaq 0xc16a(%rip), %rsi      # 0x31f25
leaq 0xe401(%rip), %rcx      # 0x341c3
movl $0x2821, %edx           # imm = 0x2821
callq 0x6120
leaq 0xe461(%rip), %rdi      # 0x34234
leaq 0xc14b(%rip), %rsi      # 0x31f25
leaq 0xe3e2(%rip), %rcx      # 0x341c3
movl $0x283e, %edx           # imm = 0x283E
callq 0x6120
leaq 0xe476(%rip), %rdi      # 0x34268
leaq 0xc12c(%rip), %rsi      # 0x31f25
leaq 0xe47f(%rip), %rcx      # 0x3427f
movl $0x2514, %edx           # imm = 0x2514
callq 0x6120
leaq 0xe457(%rip), %rdi      # 0x34268
leaq 0xc10d(%rip), %rsi      # 0x31f25
leaq 0xe620(%rip), %rcx      # 0x3443f
jmp 0x25e00
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e5c
jmp 0x25e5c
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e68
jmp 0x25e68
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
jmp 0x25e55
movq %rax, %rbx
jmp 0x25e75
jmp 0x25e5c
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
jmp 0x25e70
jmp 0x25e68
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2d264
movq %rsp, %rdi
callq 0x2d264
movq %rbx, %rdi
callq 0x6430
nop