// File: /workspace/github_cpp_makefile_star2_O3/Nallantli[P]Rossa/main/rossa/node/node.cpp
// Function: UntilNode::genParser() const
ptr_instruction_t UntilNode::genParser() const
{
	if (inclusive)
	{
		if (step == nullptr)
			return std::make_shared<UntilNoStepIncI>(a->genParser(), b->genParser(), token);
		else
			return std::make_shared<UntilStepIncI>(a->genParser(), b->genParser(), step->genParser(), token);
	}
	if (step == nullptr)
		return std::make_shared<UntilNoStepExcI>(a->genParser(), b->genParser(), token);
	else
		return std::make_shared<UntilStepExcI>(a->genParser(), b->genParser(), step->genParser(), token);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0xc8(%rsi), %rax
cmpb $0x1, 0xd8(%rsi)
jne 0x63c6e
testq %rax, %rax
je 0x63d09
movq 0xa8(%r14), %rsi
movq (%rsi), %rax
leaq 0x38(%rsp), %rdi
callq *(%rax)
movq 0xb8(%r14), %rsi
movq (%rsi), %rax
leaq 0x28(%rsp), %rdi
callq *(%rax)
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x48(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %r14, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0xf(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
leaq 0x48(%rsp), %r9
callq 0x6c254
jmp 0x63cdd
testq %rax, %rax
je 0x63d5a
movq 0xa8(%r14), %rsi
movq (%rsi), %rax
leaq 0x38(%rsp), %rdi
callq *(%rax)
movq 0xb8(%r14), %rsi
movq (%rsi), %rax
leaq 0x28(%rsp), %rdi
callq *(%rax)
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x48(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %r14, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0xf(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
leaq 0x48(%rsp), %r9
callq 0x6c42c
movaps 0x10(%rsp), %xmm0
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movups %xmm0, (%rbx)
movq %rax, 0x10(%rsp)
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x63dbd
callq 0x1e5bc
jmp 0x63dbd
movq 0xa8(%r14), %rsi
movq (%rsi), %rax
leaq 0x38(%rsp), %rdi
callq *(%rax)
movq 0xb8(%r14), %rsi
movq (%rsi), %rax
leaq 0x28(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %r14, %r9
callq 0x6c16a
jmp 0x63da9
movq 0xa8(%r14), %rsi
movq (%rsi), %rax
leaq 0x38(%rsp), %rdi
callq *(%rax)
movq 0xb8(%r14), %rsi
movq (%rsi), %rax
leaq 0x28(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %r14, %r9
callq 0x6c342
movaps 0x10(%rsp), %xmm0
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movups %xmm0, (%rbx)
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x63dcc
callq 0x1e5bc
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x63ddb
callq 0x1e5bc
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r14
retq
jmp 0x63e06
jmp 0x63e06
jmp 0x63e1c
jmp 0x63e1c
jmp 0x63df0
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x63e09
callq 0x1e5bc
jmp 0x63e09
jmp 0x63e06
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x63e1f
callq 0x1e5bc
jmp 0x63e1f
jmp 0x63e1c
movq %rax, %rbx
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x63e2e
callq 0x1e5bc
movq %rbx, %rdi
callq 0x106f0