// File: /workspace/github_cpp_makefile_star2_O1/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 0x648c6
testq %rax, %rax
je 0x6496e
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 0x20(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %r14, (%rsp)
leaq 0x18(%rsp), %rsi
leaq 0x17(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
leaq 0x48(%rsp), %r9
callq 0x6d18e
jmp 0x64935
testq %rax, %rax
je 0x649bf
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 0x20(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %r14, (%rsp)
leaq 0x18(%rsp), %rsi
leaq 0x17(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
leaq 0x48(%rsp), %r9
callq 0x6d372
movq 0x18(%rsp), %rax
movq %rax, (%rbx)
xorl %eax, %eax
movq %rax, 0x8(%rbx)
movq 0x20(%rsp), %rcx
movq %rax, 0x20(%rsp)
movq %rcx, 0x8(%rbx)
movq %rax, 0x18(%rsp)
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x64a2f
callq 0x1e6ee
jmp 0x64a2f
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 0x20(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x18(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %r14, %r9
callq 0x6d09e
jmp 0x64a0e
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 0x20(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x18(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %r14, %r9
callq 0x6d282
movq 0x18(%rsp), %rax
movq %rax, (%rbx)
xorl %eax, %eax
movq %rax, 0x8(%rbx)
movq 0x20(%rsp), %rcx
movq %rax, 0x20(%rsp)
movq %rcx, 0x8(%rbx)
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x64a3e
callq 0x1e6ee
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x64a4d
callq 0x1e6ee
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r14
retq
jmp 0x64a78
jmp 0x64a78
jmp 0x64a8e
jmp 0x64a8e
jmp 0x64a62
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x64a7b
callq 0x1e6ee
jmp 0x64a7b
jmp 0x64a78
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x64a91
callq 0x1e6ee
jmp 0x64a91
jmp 0x64a8e
movq %rax, %rbx
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x64aa0
callq 0x1e6ee
movq %rbx, %rdi
callq 0x106f0