// File: andrakis[P]alisp/stdlib/file.cpp
// Function: ALisp::Stdlib::file_read(std::vector<ALisp::Cell, std::allocator<ALisp::Cell>> const&)
Cell file_read(const ListType &args) {
			RUNTIME_CHECK(args, runtime_check::has_atleast_one_argument);
			Cell path = file_path(args);
			std::ifstream fs(path.str());
			if (!fs.good())
				throw Exception("Failed to open file: " + path.str());
			std::stringstream buffer;
			buffer << fs.rdbuf();
			return StringCell(buffer.str());
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4b0, %rsp            # imm = 0x4B0
movq %rdi, -0x478(%rbp)
movq %rdi, %rax
movq %rax, -0x470(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x35620
testb $0x1, %al
jne 0x35aed
movb $0x1, -0x3d(%rbp)
movl $0x28, %edi
callq 0x8240
movq %rax, -0x480(%rbp)
leaq 0x223af(%rip), %rsi     # 0x57e20
leaq -0x30(%rbp), %rdi
callq 0x8200
jmp 0x35a7c
movq -0x480(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xd550
jmp 0x35a8e
movq -0x480(%rbp), %rdi
movb $0x0, -0x3d(%rbp)
leaq 0x202c8(%rip), %rsi     # 0x55d68
leaq -0x284e7(%rip), %rdx    # 0xd5c0
callq 0x8770
jmp 0x35da4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35ad4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x8878
testb $0x1, -0x3d(%rbp)
jne 0x35adc
jmp 0x35ae8
movq -0x480(%rbp), %rdi
callq 0x8300
jmp 0x35d9b
movq -0x10(%rbp), %rsi
leaq -0x48(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x35640
movq -0x488(%rbp), %rsi
leaq -0x270(%rbp), %rdi
callq 0xd4b0
jmp 0x35b16
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rsi
movl $0x8, %edx
callq 0x8700
jmp 0x35b30
leaq -0x270(%rbp), %rdi
callq 0x8878
movq -0x250(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x250(%rbp,%rax), %rdi
callq 0x8760
movb %al, -0x489(%rbp)
jmp 0x35b5c
movb -0x489(%rbp), %al
testb $0x1, %al
jne 0x35c88
jmp 0x35b6c
movb $0x1, -0x2b1(%rbp)
movl $0x28, %edi
callq 0x8240
movq %rax, -0x498(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xd4b0
jmp 0x35b96
leaq 0x7f42(%rip), %rsi      # 0x3dadf
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rdx
callq 0x16690
jmp 0x35bb2
movq -0x498(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0xd550
jmp 0x35bc7
movq -0x498(%rbp), %rdi
movb $0x0, -0x2b1(%rbp)
leaq 0x2018c(%rip), %rsi     # 0x55d68
leaq -0x28623(%rip), %rdx    # 0xd5c0
callq 0x8770
jmp 0x35da4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35d92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x8878
jmp 0x35d92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35d86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35c6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35c60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x8878
leaq -0x2b0(%rbp), %rdi
callq 0x8878
testb $0x1, -0x2b1(%rbp)
jne 0x35c77
jmp 0x35c83
movq -0x498(%rbp), %rdi
callq 0x8300
jmp 0x35d86
leaq -0x440(%rbp), %rdi
callq 0x82e0
jmp 0x35c96
leaq -0x430(%rbp), %rax
movq %rax, -0x4a8(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x86a0
movq %rax, -0x4a0(%rbp)
jmp 0x35cb9
movq -0x4a0(%rbp), %rsi
movq -0x4a8(%rbp), %rdi
callq 0x8110
jmp 0x35cce
leaq -0x468(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x83d0
jmp 0x35ce3
leaq -0x448(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0xbe50
jmp 0x35cf8
movq -0x478(%rbp), %rdi
leaq -0x448(%rbp), %rsi
callq 0xbd50
leaq -0x448(%rbp), %rdi
callq 0xbeb0
leaq -0x468(%rbp), %rdi
callq 0x8878
leaq -0x440(%rbp), %rdi
callq 0x8320
leaq -0x250(%rbp), %rdi
callq 0x8150
leaq -0x48(%rbp), %rdi
callq 0xb9d0
movq -0x470(%rbp), %rax
addq $0x4b0, %rsp            # imm = 0x4B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35d7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x468(%rbp), %rdi
callq 0x8878
leaq -0x440(%rbp), %rdi
callq 0x8320
leaq -0x250(%rbp), %rdi
callq 0x8150
leaq -0x48(%rbp), %rdi
callq 0xb9d0
movq -0x38(%rbp), %rdi
callq 0x87b0
nopw %cs:(%rax,%rax)
nop