// File: andrakis[P]alisp/stdlib/file.cpp
// Function: ALisp::Stdlib::file_path(std::vector<ALisp::Cell, std::allocator<ALisp::Cell>> const&)
Cell file_path(const ListType &args) {
			RUNTIME_CHECK(args, runtime_check::has_atleast_one_argument);
			for (auto it = &detail::search_paths[0]; *it != nullptr; ++it) {
				StringType path = *it;
				StringType full = path + args[0].str();
				if (file_exists(full) == True)
					return StringCell(full);
			}
			return StringCell(args[0].str());
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x140(%rbp)
movq %rdi, %rax
movq %rax, -0x138(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x35620
testb $0x1, %al
jne 0x3570d
movb $0x1, -0x3d(%rbp)
movl $0x28, %edi
callq 0x8240
movq %rax, -0x148(%rbp)
leaq 0x2278f(%rip), %rsi     # 0x57e20
leaq -0x30(%rbp), %rdi
callq 0x8200
jmp 0x3569c
movq -0x148(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xd550
jmp 0x356ae
movq -0x148(%rbp), %rdi
movb $0x0, -0x3d(%rbp)
leaq 0x206a8(%rip), %rsi     # 0x55d68
leaq -0x28107(%rip), %rdx    # 0xd5c0
callq 0x8770
jmp 0x35a15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x356f4
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 0x356fc
jmp 0x35708
movq -0x148(%rbp), %rdi
callq 0x8300
jmp 0x35a0c
leaq 0x2215c(%rip), %rax     # 0x57870
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
cmpq $0x0, (%rax)
je 0x3597d
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x158(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x87d0
movq -0x158(%rbp), %rsi
movq -0x150(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x8610
jmp 0x3575d
leaq -0x69(%rbp), %rdi
callq 0x8490
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x15190
movq %rax, %rsi
leaq -0xb0(%rbp), %rdi
callq 0xd4b0
jmp 0x35784
leaq -0x90(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x35db0
jmp 0x3579d
leaq -0xb0(%rbp), %rdi
callq 0x8878
leaq -0xd8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x8200
jmp 0x357be
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x35420
jmp 0x357d3
leaq 0x22386(%rip), %rsi     # 0x57b60
leaq -0xb8(%rbp), %rdi
callq 0xbf80
movb %al, -0x159(%rbp)
jmp 0x357ee
leaq -0xb8(%rbp), %rdi
callq 0xb9d0
leaq -0xd8(%rbp), %rdi
callq 0x8878
movb -0x159(%rbp), %al
testb $0x1, %al
jne 0x35815
jmp 0x35920
leaq -0x100(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x8200
jmp 0x3582a
leaq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xbe50
jmp 0x3583f
movq -0x140(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0xbd50
leaq -0xe0(%rbp), %rdi
callq 0xbeb0
leaq -0x100(%rbp), %rdi
callq 0x8878
movl $0x1, -0x104(%rbp)
jmp 0x3592a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x69(%rbp), %rdi
callq 0x8490
jmp 0x35a0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3596f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x8878
jmp 0x3596f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x35963
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x358f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xb9d0
leaq -0xd8(%rbp), %rdi
callq 0x8878
jmp 0x35963
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x8878
jmp 0x35963
movl $0x0, -0x104(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x8878
leaq -0x68(%rbp), %rdi
callq 0x8878
movl -0x104(%rbp), %eax
testl %eax, %eax
je 0x35950
jmp 0x3594b
jmp 0x359fc
jmp 0x35952
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x48(%rbp)
jmp 0x35718
leaq -0x90(%rbp), %rdi
callq 0x8878
leaq -0x68(%rbp), %rdi
callq 0x8878
jmp 0x35a0c
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x15190
movq %rax, %rsi
leaq -0x130(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0xd4b0
movq -0x168(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0xbe50
jmp 0x359b5
movq -0x140(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xbd50
leaq -0x110(%rbp), %rdi
callq 0xbeb0
leaq -0x130(%rbp), %rdi
callq 0x8878
jmp 0x359fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x8878
jmp 0x35a0c
movq -0x138(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x87b0
nopw %cs:(%rax,%rax)