// File: /workspace/github_cpp_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdx), %rax
movq (%rax), %rsi
movq (%rsi), %rax
leaq 0x18(%rsp), %rdi
callq *0xf8(%rax)
movq (%r14), %rax
movq (%rax), %rdi
movq (%rdi), %rax
callq *0xe0(%rax)
testb %al, %al
je 0x25404
leaq 0x367a(%rip), %rdx      # 0x28a27
movq %rsp, %rdi
movq %r14, %rsi
callq 0x15f8c
movq (%rsp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x100(%rax)
movq %rax, %r15
movq (%rsp), %rdi
callq 0xfc04
testq %r15, %r15
je 0x253e1
movq %r15, %rdi
callq 0xc1b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x25539
movq 0x8(%rax), %rcx
movq 0x18(%rax), %rdx
movb $0x0, (%rcx,%rdx)
movq 0x8(%rax), %rdi
jmp 0x25540
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x25420
movq 0x8(%rax), %rcx
movq 0x18(%rax), %rdx
movb $0x0, (%rcx,%rdx)
movq 0x8(%rax), %rdi
jmp 0x25427
leaq 0x32cb(%rip), %rdi      # 0x286f2
leaq 0x35c1(%rip), %rsi      # 0x289ef
callq 0xc200
testq %rax, %rax
je 0x2552a
movq %rax, %r14
movq %rsp, %rdi
callq 0x1303e
movq (%rsp), %rax
incl 0x8(%rax)
leaq 0x10(%rsp), %rdi
movq %rax, (%rdi)
callq 0x17a1c
movq 0x10(%rsp), %rdi
callq 0xfc04
leaq 0x10(%rsp), %rdi
movq %rsp, %rsi
callq 0x188ae
leaq 0x35ae(%rip), %rdx      # 0x28a27
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x15f8c
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x25912
movq 0x8(%rsp), %rdi
callq 0xfc04
leaq 0x3591(%rip), %rsi      # 0x28a37
leaq 0x8(%rsp), %rdi
callq 0xc75c
leaq 0x28(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1b226
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq *0x148(%rax)
movq 0x28(%rsp), %rdi
callq 0xfc04
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x254f3
callq 0xfbc0
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x11cc4
movq 0x8(%rsp), %rdi
incl 0x8(%rdi)
movq %rdi, (%rbx)
callq 0xfc04
movq 0x10(%rsp), %rdi
callq 0xfc04
movq (%rsp), %rdi
callq 0xfc04
jmp 0x2560c
movq %rbx, %rdi
xorl %esi, %esi
callq 0xca22
jmp 0x2560c
leaq 0x31b2(%rip), %rdi      # 0x286f2
leaq 0x34a8(%rip), %rsi      # 0x289ef
callq 0xc200
movq %rax, %r15
leaq 0x34d1(%rip), %rdx      # 0x28a27
movq %rsp, %rdi
movq %r14, %rsi
callq 0x15f8c
movq %rsp, %rdi
movq %r15, %rsi
callq 0x25912
movq (%rsp), %rdi
callq 0xfc04
testq %r15, %r15
je 0x25588
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x255b4
incl (%rax)
jmp 0x255b6
leaq 0x34a8(%rip), %rdx      # 0x28a37
movq %rsp, %rdi
movq %r14, %rsi
callq 0x15f8c
leaq 0x3151(%rip), %rsi      # 0x286f2
movq %rsp, %rdi
callq 0x258a2
movq (%rsp), %rdi
callq 0xfc04
jmp 0x255f2
xorl %eax, %eax
movq %rax, 0x20(%rsp)
leaq 0x3475(%rip), %rdx      # 0x28a37
movq %rsp, %rdi
movq %r14, %rsi
callq 0x15f8c
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x25982
movq (%rsp), %rdi
callq 0xfc04
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x255f2
callq 0xfbc0
movq %rsp, %rdi
movq %r14, %rsi
callq 0x11cc4
movq (%rsp), %rdi
incl 0x8(%rdi)
movq %rdi, (%rbx)
callq 0xfc04
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x2561b
callq 0xfbc0
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x25730
movq %rax, %rbx
movq (%rsp), %rdi
callq 0xfc04
jmp 0x2573b
jmp 0x25730
jmp 0x25738
jmp 0x25738
jmp 0x25730
jmp 0x25730
jmp 0x25730
jmp 0x256d0
jmp 0x25730
movq %rax, %rbx
movq 0x28(%rsp), %rdi
callq 0xfc04
jmp 0x2567f
jmp 0x25730
jmp 0x25730
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x256d3
callq 0xfbc0
jmp 0x256d3
movq %rax, %rbx
movq (%rsp), %rdi
callq 0xfc04
jmp 0x256a8
jmp 0x25730
jmp 0x256d0
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x2573b
callq 0xfbc0
jmp 0x2573b
jmp 0x25730
movq %rax, %rbx
movq 0x8(%rsp), %rdi
callq 0xfc04
jmp 0x256d3
jmp 0x25730
movq %rax, %rbx
movq 0x10(%rsp), %rdi
callq 0xfc04
jmp 0x256f3
movq %rax, %rbx
jmp 0x256f3
jmp 0x25730
movq %rax, %rbx
movq 0x10(%rsp), %rdi
callq 0xfc04
movq (%rsp), %rdi
callq 0xfc04
jmp 0x2573b
jmp 0x25730
jmp 0x25738
jmp 0x25730
jmp 0x25738
jmp 0x25730
movq %rax, %rbx
movq (%rsp), %rdi
callq 0xfc04
jmp 0x2573b
jmp 0x25730
jmp 0x25738
jmp 0x25730
movq %rax, %rbx
movq (%rsp), %rdi
callq 0xfc04
jmp 0x2573b
jmp 0x25730
jmp 0x25738
jmp 0x25730
movq %rax, %rdi
callq 0xde83
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x2574a
callq 0xfbc0
movq %rbx, %rdi
callq 0xc290