// File: Silica[P]PSL/./PSL/PSLlib.h
// Function: PSL::variable::PSLlib::File::Open(PSL::variable&, PSL::variable&)
static variable Open(variable &this_v, variable &v)
		{
			string name = v.toString();
			using namespace std;
			if (!this_v)
			{
				FILE *fp = fopen(name, "r");
				if (!fp)
					return 0;
				variable f;
				set(f);
				variable r = f.instance();
				r["$$__FILE*fp__$$"] = fp;
				r.set("name", name);
				return r.pointer();
			}
			else
			{
				FILE *fp = this_v["$$__FILE*fp__$$"];
				if (fp)
					fclose(fp);
				this_v["$$__FILE*fp__$$"] = fp = fopen(name, "r");
				if (fp)	this_v["name"] = name;
				else	this_v["name"] = "";
				return this_v.pointer();
			}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0xc8(%rbp)
movq %rdi, %rax
movq %rax, -0xc0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0xcdf0
movq -0x10(%rbp), %rdi
callq 0x371a0
movb %al, -0xb1(%rbp)
jmp 0x38446
movb -0xb1(%rbp), %al
testb $0x1, %al
jne 0x38455
jmp 0x38670
leaq -0x20(%rbp), %rdi
callq 0x23050
movq %rax, -0xd0(%rbp)
jmp 0x38467
movq -0xd0(%rbp), %rdi
leaq 0x68d0(%rip), %rsi      # 0x3ed45
callq 0xc200
movq %rax, -0xd8(%rbp)
jmp 0x38483
movq -0xd8(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x384c2
movq -0xc8(%rbp), %rdi
xorl %esi, %esi
callq 0xcce0
jmp 0x384a5
movl $0x1, -0x3c(%rbp)
jmp 0x388c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x388da
leaq -0x48(%rbp), %rdi
callq 0x1a130
jmp 0x384cd
leaq -0x50(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x11b10
jmp 0x384dc
leaq -0x50(%rbp), %rdi
callq 0x21b00
jmp 0x384e7
leaq -0x50(%rbp), %rdi
callq 0xcd90
leaq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x22c30
jmp 0x384ff
movq -0x38(%rbp), %rax
movq %rax, -0xe0(%rbp)
leaq 0x686c(%rip), %rdx      # 0x3ed7d
leaq -0x60(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x1f930
jmp 0x38520
movq -0xe0(%rbp), %rsi
leaq -0x60(%rbp), %rdi
callq 0x38b20
jmp 0x38532
leaq -0x60(%rbp), %rdi
callq 0xcdc0
leaq 0x684b(%rip), %rsi      # 0x3ed8d
leaq -0x68(%rbp), %rdi
callq 0xc8b0
jmp 0x3854d
leaq -0x70(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x26cc0
jmp 0x3855c
leaq -0x58(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x1d370
jmp 0x3856f
leaq -0x70(%rbp), %rdi
callq 0xcdc0
leaq -0x68(%rbp), %rdi
callq 0xc950
leaq -0x78(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x174b0
jmp 0x38590
movq -0xc8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xcd50
jmp 0x385a2
leaq -0x78(%rbp), %rdi
callq 0xcd90
movl $0x1, -0x3c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xcdc0
leaq -0x48(%rbp), %rdi
callq 0xcdc0
jmp 0x388c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x38662
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xcd90
jmp 0x38662
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x38659
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xcdc0
jmp 0x38659
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x38639
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xcdc0
leaq -0x68(%rbp), %rdi
callq 0xc950
jmp 0x38659
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xcd90
leaq -0x58(%rbp), %rdi
callq 0xcdc0
leaq -0x48(%rbp), %rdi
callq 0xcdc0
jmp 0x388da
movq -0x10(%rbp), %rsi
leaq 0x6702(%rip), %rdx      # 0x3ed7d
leaq -0x88(%rbp), %rdi
callq 0x1f930
jmp 0x38689
leaq -0x88(%rbp), %rdi
callq 0x38a90
movq %rax, -0xe8(%rbp)
jmp 0x3869e
leaq -0x88(%rbp), %rdi
callq 0xcdc0
movq -0xe8(%rbp), %rax
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
je 0x386e6
movq -0x80(%rbp), %rdi
callq 0xc1c0
jmp 0x386c7
jmp 0x386e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xcdc0
jmp 0x388da
leaq -0x20(%rbp), %rdi
callq 0x23050
movq %rax, -0xf0(%rbp)
jmp 0x386f8
movq -0xf0(%rbp), %rdi
leaq 0x663f(%rip), %rsi      # 0x3ed45
callq 0xc200
movq %rax, -0xf8(%rbp)
jmp 0x38714
movq -0xf8(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x6653(%rip), %rdx      # 0x3ed7d
leaq -0x90(%rbp), %rdi
callq 0x1f930
jmp 0x38738
movq -0xf8(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x38b20
jmp 0x3874d
leaq -0x90(%rbp), %rdi
callq 0xcdc0
cmpq $0x0, -0x80(%rbp)
je 0x38815
leaq -0x98(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x15ea0
jmp 0x38776
movq -0x10(%rbp), %rsi
leaq 0x660c(%rip), %rdx      # 0x3ed8d
leaq -0xa0(%rbp), %rdi
callq 0x1f930
jmp 0x3878f
leaq -0xa0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x38b90
jmp 0x387a4
leaq -0xa0(%rbp), %rdi
callq 0xcdc0
leaq -0x98(%rbp), %rdi
callq 0xc950
jmp 0x3886b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xcdc0
jmp 0x388da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x38804
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xcdc0
leaq -0x98(%rbp), %rdi
callq 0xc950
jmp 0x388da
movq -0x10(%rbp), %rsi
leaq 0x656d(%rip), %rdx      # 0x3ed8d
leaq -0xa8(%rbp), %rdi
callq 0x1f930
jmp 0x3882e
leaq 0x61ae(%rip), %rsi      # 0x3e9e3
leaq -0xa8(%rbp), %rdi
callq 0x38ab0
jmp 0x38843
leaq -0xa8(%rbp), %rdi
callq 0xcdc0
jmp 0x3886b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0xcdc0
jmp 0x388da
movq -0x10(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x174b0
jmp 0x3887d
movq -0xc8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xcd50
jmp 0x38892
leaq -0xb0(%rbp), %rdi
callq 0xcd90
movl $0x1, -0x3c(%rbp)
jmp 0x388c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xcd90
jmp 0x388da
leaq -0x20(%rbp), %rdi
callq 0xc950
movq -0xc0(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
leaq -0x20(%rbp), %rdi
callq 0xc950
movq -0x28(%rbp), %rdi
callq 0xc280
nopl (%rax)