// File: 0x0584[P]scmin-plus/src/repl/eval.cpp
// Function: eval_args(std::shared_ptr<sexpr> const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::shared_ptr<sexpr>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::shared_ptr<sexpr>>>>&)
sexpr_t eval_args(const sexpr_t& args, env_t& parent) {
    sexpr_t walk, tail, evaled;

    if (args->isnil())
        return args;
    walk = args;
    while (not walk->isnil()) {
        if (not cons_append(eval(walk->car(), parent), evaled, tail))
            return nullptr;
        walk = walk->cdr();
    }
    return evaled;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0xa0(%rbp)
movq %rdi, %rax
movq %rax, -0x98(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x6ef0
leaq -0x38(%rbp), %rdi
callq 0x6ef0
leaq -0x48(%rbp), %rdi
callq 0x6ef0
movq -0x10(%rbp), %rdi
callq 0x4400
movq %rax, %rdi
callq 0x7270
movb %al, -0x89(%rbp)
jmp 0x198cc
movb -0x89(%rbp), %al
testb $0x1, %al
jne 0x198d8
jmp 0x19905
movq -0xa0(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x43d0
movl $0x1, -0x58(%rbp)
jmp 0x19a47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19a72
movq -0x10(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0xb5e0
leaq -0x28(%rbp), %rdi
callq 0x4400
movq %rax, %rdi
callq 0x7270
movb %al, -0xa1(%rbp)
jmp 0x1992b
movb -0xa1(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1993c
jmp 0x19a30
leaq -0x28(%rbp), %rdi
callq 0x4400
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
callq 0xb520
jmp 0x19953
movq -0x18(%rbp), %rdx
leaq -0x68(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x19aa0
jmp 0x19966
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0xb230
movb %al, -0xa2(%rbp)
jmp 0x1997f
movb -0xa2(%rbp), %al
xorb $-0x1, %al
movb %al, -0xa3(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x4450
leaq -0x78(%rbp), %rdi
callq 0x4450
movb -0xa3(%rbp), %al
testb $0x1, %al
jne 0x199ab
jmp 0x199f5
movq -0xa0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4570
movl $0x1, -0x58(%rbp)
jmp 0x19a47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x199ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x4450
leaq -0x78(%rbp), %rdi
callq 0x4450
jmp 0x19a72
leaq -0x28(%rbp), %rdi
callq 0x4400
movq %rax, %rsi
leaq -0x88(%rbp), %rdi
callq 0xb440
jmp 0x19a0f
leaq -0x28(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4420
leaq -0x88(%rbp), %rdi
callq 0x4450
jmp 0x19912
movq -0xa0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xa6f0
movl $0x1, -0x58(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4450
leaq -0x38(%rbp), %rdi
callq 0x4450
leaq -0x28(%rbp), %rdi
callq 0x4450
movq -0x98(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0x4450
leaq -0x38(%rbp), %rdi
callq 0x4450
leaq -0x28(%rbp), %rdi
callq 0x4450
movq -0x50(%rbp), %rdi
callq 0x34f0
nopw %cs:(%rax,%rax)