// File: /workspace/github_c_makefile_star2_O0/mtnygard[P]complisp/lisp.c
// Function: read_with_list_returns_list
TEST read_with_list_returns_list(void) {
  char *input = "( 1 2 0 )";
  ASTNode *node = Reader_read(input);
  ASSERT(AST_is_pair(node));
  ASSERT_IS_INT_EQ(AST_pair_car(node), 1);
  ASSERT_IS_INT_EQ(AST_pair_car(AST_pair_cdr(node)), 2);
  ASSERT_IS_INT_EQ(AST_pair_car(AST_pair_cdr(AST_pair_cdr(node))), 0);
  ASSERT(AST_is_nil(AST_pair_cdr(AST_pair_cdr(AST_pair_cdr(node)))));
  AST_heap_free(node);
  PASS();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
leaq 0xeca4(%rip), %rax      # 0x15c53
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4e40
movq %rax, -0x18(%rbp)
movl 0x1417e(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x14175(%rip)     # 0x1b144
movq -0x18(%rbp), %rdi
callq 0x1870
testb $0x1, %al
jne 0x7024
jmp 0x6fde
leaq 0xd6be(%rip), %rax      # 0x146a3
movq %rax, 0x14164(%rip)     # 0x1b150
movl $0x57b, 0x14152(%rip)   # imm = 0x57B
leaq 0xd74b(%rip), %rax      # 0x14748
movq %rax, 0x14154(%rip)     # 0x1b158
movzbl 0x140f5(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7018
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x7026
jmp 0x7028
movq -0x18(%rbp), %rdi
callq 0x1890
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x7044
jmp 0x705c
movq 0x13fad(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xeaca(%rip), %rsi      # 0x15b1f
movb $0x0, %al
callq 0x1100
jmp 0x705e
movl 0x140e0(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x140d7(%rip)     # 0x1b144
movq -0x20(%rbp), %rdi
callq 0x15e0
testb $0x1, %al
jne 0x70c2
jmp 0x707c
leaq 0xd620(%rip), %rax      # 0x146a3
movq %rax, 0x140c6(%rip)     # 0x1b150
movl $0x57c, 0x140b4(%rip)   # imm = 0x57C
leaq 0xeaa7(%rip), %rax      # 0x15b42
movq %rax, 0x140b6(%rip)     # 0x1b158
movzbl 0x14057(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x70b6
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x70c4
jmp 0x70c6
movl 0x14078(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x1406f(%rip)     # 0x1b144
movq -0x20(%rbp), %rdi
callq 0x1600
cmpq $0x1, %rax
je 0x712c
jmp 0x70e6
leaq 0xd5b6(%rip), %rax      # 0x146a3
movq %rax, 0x1405c(%rip)     # 0x1b150
movl $0x57c, 0x1404a(%rip)   # imm = 0x57C
leaq 0xeb58(%rip), %rax      # 0x15c5d
movq %rax, 0x1404c(%rip)     # 0x1b158
movzbl 0x13fed(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7120
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x712e
jmp 0x7130
jmp 0x7132
movq -0x18(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1890
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x7156
jmp 0x716e
movq 0x13e9b(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xe9b8(%rip), %rsi      # 0x15b1f
movb $0x0, %al
callq 0x1100
jmp 0x7170
movl 0x13fce(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13fc5(%rip)     # 0x1b144
movq -0x28(%rbp), %rdi
callq 0x15e0
testb $0x1, %al
jne 0x71d4
jmp 0x718e
leaq 0xd50e(%rip), %rax      # 0x146a3
movq %rax, 0x13fb4(%rip)     # 0x1b150
movl $0x57d, 0x13fa2(%rip)   # imm = 0x57D
leaq 0xe995(%rip), %rax      # 0x15b42
movq %rax, 0x13fa4(%rip)     # 0x1b158
movzbl 0x13f45(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x71c8
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x71d6
jmp 0x71d8
movl 0x13f66(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13f5d(%rip)     # 0x1b144
movq -0x28(%rbp), %rdi
callq 0x1600
cmpq $0x2, %rax
je 0x723e
jmp 0x71f8
leaq 0xd4a4(%rip), %rax      # 0x146a3
movq %rax, 0x13f4a(%rip)     # 0x1b150
movl $0x57d, 0x13f38(%rip)   # imm = 0x57D
leaq 0xea62(%rip), %rax      # 0x15c79
movq %rax, 0x13f3a(%rip)     # 0x1b158
movzbl 0x13edb(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7232
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x7240
jmp 0x7242
jmp 0x7244
movq -0x18(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1890
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x7270
jmp 0x7288
movq 0x13d81(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xe89e(%rip), %rsi      # 0x15b1f
movb $0x0, %al
callq 0x1100
jmp 0x728a
movl 0x13eb4(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13eab(%rip)     # 0x1b144
movq -0x30(%rbp), %rdi
callq 0x15e0
testb $0x1, %al
jne 0x72ee
jmp 0x72a8
leaq 0xd3f4(%rip), %rax      # 0x146a3
movq %rax, 0x13e9a(%rip)     # 0x1b150
movl $0x57e, 0x13e88(%rip)   # imm = 0x57E
leaq 0xe87b(%rip), %rax      # 0x15b42
movq %rax, 0x13e8a(%rip)     # 0x1b158
movzbl 0x13e2b(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x72e2
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x72f0
jmp 0x72f2
movl 0x13e4c(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13e43(%rip)     # 0x1b144
movq -0x30(%rbp), %rdi
callq 0x1600
cmpq $0x0, %rax
je 0x7358
jmp 0x7312
leaq 0xd38a(%rip), %rax      # 0x146a3
movq %rax, 0x13e30(%rip)     # 0x1b150
movl $0x57e, 0x13e1e(%rip)   # imm = 0x57E
leaq 0xe964(%rip), %rax      # 0x15c95
movq %rax, 0x13e20(%rip)     # 0x1b158
movzbl 0x13dc1(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x734c
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x735a
jmp 0x735c
jmp 0x735e
movl 0x13de0(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13dd7(%rip)     # 0x1b144
movq -0x18(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1700
testb $0x1, %al
jne 0x73d7
jmp 0x7394
leaq 0xd308(%rip), %rax      # 0x146a3
movq %rax, 0x13dae(%rip)     # 0x1b150
movl $0x57f, 0x13d9c(%rip)   # imm = 0x57F
leaq 0xe8fe(%rip), %rax      # 0x15cb1
movq %rax, 0x13d9e(%rip)     # 0x1b158
movzbl 0x13d3f(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x73ce
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x73f4
jmp 0x73d9
movq -0x18(%rbp), %rdi
callq 0x1800
movq $0x0, 0x13d6b(%rip) # 0x1b158
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)