// File: 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
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0xc0(%rbp)
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x1a130
movq -0x10(%rbp), %rdi
callq 0x1d280
movq %rax, -0xb0(%rbp)
jmp 0x203df
movq -0xb0(%rbp), %rax
cmpq $0x1, %rax
jne 0x20485
movq -0x10(%rbp), %rdi
callq 0x1feb0
movl %eax, -0xc4(%rbp)
jmp 0x20401
movl -0xc4(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x2c(%rbp)
cmpl $0x0, %eax
jl 0x20480
movq -0xc0(%rbp), %rsi
movl -0x2c(%rbp), %edx
movl %edx, -0xc8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x22460
jmp 0x20439
movl -0xc8(%rbp), %esi
leaq -0x38(%rbp), %rdi
callq 0x224c0
jmp 0x2044a
leaq -0x38(%rbp), %rdi
callq 0xcdc0
jmp 0x20410
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2081e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
jmp 0x207f8
movq -0x10(%rbp), %rdi
callq 0x1d280
movq %rax, -0xd0(%rbp)
jmp 0x20497
movq -0xd0(%rbp), %rax
cmpq $0x2, %rax
jne 0x205c6
movq -0x10(%rbp), %rsi
leaq -0x48(%rbp), %rdi
xorl %edx, %edx
callq 0x22460
jmp 0x204b9
leaq -0x48(%rbp), %rdi
callq 0x1feb0
movl %eax, -0xd4(%rbp)
jmp 0x204ca
leaq -0x48(%rbp), %rdi
callq 0xcdc0
movl -0xd4(%rbp), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movl $0x1, %edx
callq 0x22460
jmp 0x204f0
leaq -0x58(%rbp), %rdi
callq 0x1feb0
movl %eax, -0xd8(%rbp)
jmp 0x20501
leaq -0x58(%rbp), %rdi
callq 0xcdc0
movl -0xd8(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
subl -0x3c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x60(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x60(%rbp)
cmpl $0x0, %eax
jl 0x205c1
movq -0xc0(%rbp), %rsi
movl -0x4c(%rbp), %eax
decl %eax
movl %eax, -0xdc(%rbp)
movl %eax, -0x4c(%rbp)
movl -0x60(%rbp), %edx
leaq -0x68(%rbp), %rdi
callq 0x22460
jmp 0x20557
movl -0xdc(%rbp), %esi
leaq -0x68(%rbp), %rdi
callq 0x224c0
jmp 0x20568
leaq -0x68(%rbp), %rdi
callq 0xcdc0
jmp 0x20522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x68(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
jmp 0x207f6
movq -0x10(%rbp), %rdi
callq 0x1d280
movq %rax, -0xe8(%rbp)
jmp 0x205d8
movq -0xe8(%rbp), %rax
cmpq $0x2, %rax
jbe 0x207f4
movq -0x10(%rbp), %rsi
leaq -0x78(%rbp), %rdi
xorl %edx, %edx
callq 0x22460
jmp 0x205fa
leaq -0x78(%rbp), %rdi
callq 0x1feb0
movl %eax, -0xec(%rbp)
jmp 0x2060b
leaq -0x78(%rbp), %rdi
callq 0xcdc0
movl -0xec(%rbp), %eax
movl %eax, -0x6c(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x88(%rbp), %rdi
movl $0x1, %edx
callq 0x22460
jmp 0x20634
leaq -0x88(%rbp), %rdi
callq 0x1feb0
movl %eax, -0xf0(%rbp)
jmp 0x20648
leaq -0x88(%rbp), %rdi
callq 0xcdc0
movl -0xf0(%rbp), %eax
movl %eax, -0x7c(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x98(%rbp), %rdi
movl $0x2, %edx
callq 0x22460
jmp 0x20674
leaq -0x98(%rbp), %rdi
callq 0x1feb0
movl %eax, -0xf4(%rbp)
jmp 0x20688
leaq -0x98(%rbp), %rdi
callq 0xcdc0
movl -0xf4(%rbp), %eax
movl %eax, -0x8c(%rbp)
cmpl $0x0, -0x8c(%rbp)
jne 0x2071a
movl -0x6c(%rbp), %edx
movl -0x7c(%rbp), %esi
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0x1, %ecx
cmpl %esi, %edx
cmovll %ecx, %eax
movl %eax, -0x8c(%rbp)
jmp 0x2071a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
cmpl $0x0, -0x8c(%rbp)
jle 0x2078c
jmp 0x20725
movl -0x6c(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x2078a
movl -0x6c(%rbp), %esi
leaq -0xa0(%rbp), %rdi
callq 0xcce0
jmp 0x2073e
movq -0xc0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x22530
jmp 0x20753
leaq -0xa0(%rbp), %rdi
callq 0xcdc0
movl -0x8c(%rbp), %eax
addl -0x6c(%rbp), %eax
movl %eax, -0x6c(%rbp)
jmp 0x20725
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
jmp 0x207f2
jmp 0x2078e
movl -0x6c(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jle 0x207f0
movl -0x6c(%rbp), %esi
leaq -0xa8(%rbp), %rdi
callq 0xcce0
jmp 0x207a7
movq -0xc0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x22530
jmp 0x207bc
leaq -0xa8(%rbp), %rdi
callq 0xcdc0
movl -0x8c(%rbp), %eax
addl -0x6c(%rbp), %eax
movl %eax, -0x6c(%rbp)
jmp 0x2078e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0xcdc0
jmp 0x2081e
jmp 0x207f2
jmp 0x207f4
jmp 0x207f6
jmp 0x207f8
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x2080e
movq -0xc0(%rbp), %rdi
callq 0xcdc0
movq -0xb8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0xc0(%rbp), %rdi
callq 0xcdc0
movq -0x20(%rbp), %rdi
callq 0xc280
nopw %cs:(%rax,%rax)
nopl (%rax)