// File: /workspace/github_cpp_makefile_star2_O1/Silica[P]PSL/./PSL/PSLlib.h
// Function: PSL::variable::PSLlib::Range(PSL::variable&)
static variable Range(variable &v)
	{
		variable l;
		if (v.length() == 1)
		{
			int len = v;
			for (int i = len; --i >= 0;)
				l[i] = i;
		}
		else if (v.length() == 2)
		{
			int start = v[0];
			int end = v[1];
			int len = end - start;
			for (int i = len; --i >= 0;)
				l[i] = --end;
		}
		else if (v.length() > 2)
		{
			int start = v[0];
			int end = v[1];
			int step = v[2];
			if (!step)
				step = start < end ? 1 : -1;
			if (step > 0)
				while (start < end)
				{
					l.push(start);
					start += step;
				}
			else
				while (start > end)
				{
					l.push(start);
					start += step;
				}
		}
		return l;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x1303e
movq (%r14), %rax
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x108(%rax)
movq (%r14), %rcx
movq (%rcx), %rdi
movq (%rdi), %rcx
cmpq $0x1, %rax
jne 0x1651f
callq *0xe8(%rcx)
movl %eax, %r14d
testl %eax, %eax
jle 0x1672a
incl %r14d
leaq 0x8(%rsp), %r15
leal -0x2(%r14), %ebp
movq %r15, %rdi
movq %rbx, %rsi
movl %ebp, %edx
callq 0x18392
movq %r15, %rdi
movl %ebp, %esi
callq 0x183da
movq 0x8(%rsp), %rdi
callq 0xfc04
decl %r14d
cmpl $0x1, %r14d
jg 0x164ec
jmp 0x1672a
callq *0x108(%rcx)
movq (%r14), %r12
movq (%r12), %rdi
movq (%rdi), %rcx
cmpq $0x2, %rax
jne 0x165e7
xorl %esi, %esi
callq *0x120(%rcx)
testq %rax, %rax
cmovneq %rax, %r12
incl 0x8(%r12)
movq (%r12), %rdi
movq (%rdi), %rax
callq *0xe8(%rax)
movl %eax, %r15d
movq %r12, %rdi
callq 0xfc04
movq (%r14), %r12
movq (%r12), %rdi
movq (%rdi), %rax
movl $0x1, %esi
callq *0x120(%rax)
testq %rax, %rax
cmovneq %rax, %r12
incl 0x8(%r12)
movq (%r12), %rdi
movq (%rdi), %rax
callq *0xe8(%rax)
movl %eax, %ebp
movq %r12, %rdi
callq 0xfc04
movl %ebp, %r12d
subl %r15d, %r12d
jle 0x1672a
incl %r12d
decl %ebp
leaq 0x8(%rsp), %r14
leal -0x2(%r12), %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x18392
movq %r14, %rdi
movl %ebp, %esi
callq 0x183da
movq 0x8(%rsp), %rdi
callq 0xfc04
decl %r12d
decl %ebp
cmpl $0x1, %r12d
jg 0x165b3
jmp 0x1672a
callq *0x108(%rcx)
cmpq $0x3, %rax
jb 0x1672a
movq (%r14), %r15
movq (%r15), %rdi
movq (%rdi), %rax
xorl %esi, %esi
callq *0x120(%rax)
testq %rax, %rax
cmovneq %rax, %r15
incl 0x8(%r15)
movq (%r15), %rdi
movq (%rdi), %rax
callq *0xe8(%rax)
movl %eax, %ebp
movq %r15, %rdi
callq 0xfc04
movq (%r14), %r12
movq (%r12), %rdi
movq (%rdi), %rax
movl $0x1, %esi
callq *0x120(%rax)
testq %rax, %rax
cmovneq %rax, %r12
incl 0x8(%r12)
movq (%r12), %rdi
movq (%rdi), %rax
callq *0xe8(%rax)
movl %eax, %r15d
movq %r12, %rdi
callq 0xfc04
movq (%r14), %r12
movq (%r12), %rdi
movq (%rdi), %rax
movl $0x2, %esi
callq *0x120(%rax)
testq %rax, %rax
cmovneq %rax, %r12
incl 0x8(%r12)
movq (%r12), %rdi
movq (%rdi), %rax
callq *0xe8(%rax)
movl %eax, %r14d
movq %r12, %rdi
callq 0xfc04
xorl %eax, %eax
cmpl %r15d, %ebp
setl %al
testl %r14d, %r14d
leal -0x1(%rax,%rax), %r12d
cmovnel %r14d, %r12d
testl %r12d, %r12d
jle 0x166f0
cmpl %r15d, %ebp
jge 0x1672a
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movl %ebp, %esi
callq 0xca22
movq (%rbx), %rax
movq 0x8(%rsp), %rsi
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x130(%rax)
movq 0x8(%rsp), %rdi
callq 0xfc04
addl %r12d, %ebp
cmpl %r15d, %ebp
jl 0x166be
jmp 0x1672a
cmpl %r15d, %ebp
jle 0x1672a
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movl %ebp, %esi
callq 0xca22
movq (%rbx), %rax
movq 0x8(%rsp), %rsi
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x130(%rax)
movq 0x8(%rsp), %rdi
callq 0xfc04
addl %r12d, %ebp
cmpl %r15d, %ebp
jg 0x166fa
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x16821
movq %rax, %r14
movq %r12, %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x167fd
jmp 0x16821
movq %rax, %r14
movq %r12, %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x167fd
jmp 0x16821
movq %rax, %r14
movq %r15, %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x167fd
jmp 0x16821
movq %rax, %r14
movq %r12, %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x167fd
jmp 0x16821
movq %rax, %r14
movq %r12, %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x167fd
jmp 0x167fd
jmp 0x167fd
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x16821
jmp 0x167fd
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x16821
jmp 0x167fd
jmp 0x167fd
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
jmp 0x16821
movq %rax, %r14
movq %rbx, %rdi
callq 0xca7e
movq %r14, %rdi
callq 0xc290
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0xfc04
jmp 0x16800
jmp 0x16821
movq %rax, %rdi
callq 0xde83
nop