// File: /workspace/github_c_makefile_star2_O0/mtnygard[P]complisp/lisp.c
// Function: read_with_nested_list_returns_list
TEST read_with_nested_list_returns_list(void) {
  char *input = "((hello world) (foo bar))";
  ASTNode *node = Reader_read(input);
  ASSERT(AST_is_pair(node));
  ASTNode *first = AST_pair_car(node);
  ASSERT(AST_is_pair(first));
  ASSERT_IS_SYM_EQ(AST_pair_car(first), "hello");
  ASSERT_IS_SYM_EQ(AST_pair_car(AST_pair_cdr(first)), "world");
  ASSERT(AST_is_nil(AST_pair_cdr(AST_pair_cdr(first))));
  ASTNode *second = AST_pair_car(AST_pair_cdr(node));
  ASSERT(AST_is_pair(second));
  ASSERT_IS_SYM_EQ(AST_pair_car(second), "foo");
  ASSERT_IS_SYM_EQ(AST_pair_car(AST_pair_cdr(second)), "bar");
  ASSERT(AST_is_nil(AST_pair_cdr(AST_pair_cdr(second))));
  AST_heap_free(node);
  PASS();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
leaq 0xe8dd(%rip), %rax      # 0x15cec
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4e40
movq %rax, -0x18(%rbp)
movl 0x13d1e(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13d15(%rip)     # 0x1b144
movq -0x18(%rbp), %rdi
callq 0x1870
testb $0x1, %al
jne 0x7484
jmp 0x743e
leaq 0xd25e(%rip), %rax      # 0x146a3
movq %rax, 0x13d04(%rip)     # 0x1b150
movl $0x587, 0x13cf2(%rip)   # imm = 0x587
leaq 0xd2eb(%rip), %rax      # 0x14748
movq %rax, 0x13cf4(%rip)     # 0x1b158
movzbl 0x13c95(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7478
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7486
movq -0x18(%rbp), %rdi
callq 0x1890
movq %rax, -0x20(%rbp)
movl 0x13cab(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13ca2(%rip)     # 0x1b144
movq -0x20(%rbp), %rdi
callq 0x1870
testb $0x1, %al
jne 0x74f7
jmp 0x74b1
leaq 0xd1eb(%rip), %rax      # 0x146a3
movq %rax, 0x13c91(%rip)     # 0x1b150
movl $0x589, 0x13c7f(%rip)   # imm = 0x589
leaq 0xe836(%rip), %rax      # 0x15d06
movq %rax, 0x13c81(%rip)     # 0x1b158
movzbl 0x13c22(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x74eb
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x74f9
jmp 0x74fb
movq -0x20(%rbp), %rdi
callq 0x1890
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x7517
jmp 0x752f
movq 0x13ada(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xe690(%rip), %rsi      # 0x15bb8
movb $0x0, %al
callq 0x1100
jmp 0x7531
movl 0x13c0d(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13c04(%rip)     # 0x1b144
movq -0x28(%rbp), %rdi
callq 0x1a90
testb $0x1, %al
jne 0x7595
jmp 0x754f
leaq 0xd14d(%rip), %rax      # 0x146a3
movq %rax, 0x13bf3(%rip)     # 0x1b150
movl $0x58a, 0x13be1(%rip)   # imm = 0x58A
leaq 0xe66f(%rip), %rax      # 0x15bdd
movq %rax, 0x13be3(%rip)     # 0x1b158
movzbl 0x13b84(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7589
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7597
jmp 0x7599
jmp 0x759b
leaq 0x13b36(%rip), %rax     # 0x1b0d8
movq %rax, -0x30(%rbp)
movl 0x13b98(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13b8f(%rip)     # 0x1b144
movq -0x28(%rbp), %rdi
callq 0x1ab0
movq %rax, %rdi
movq -0x30(%rbp), %rdx
leaq 0xe74d(%rip), %rsi      # 0x15d19
xorl %eax, %eax
movl %eax, %ecx
callq 0x11f00
cmpl $0x0, %eax
jne 0x767f
cmpq $0x0, -0x30(%rbp)
je 0x75ef
movq -0x30(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x7637
jmp 0x75f1
leaq 0xd0ab(%rip), %rax      # 0x146a3
movq %rax, 0x13b51(%rip)     # 0x1b150
movl $0x58a, 0x13b3f(%rip)   # imm = 0x58A
leaq 0xe4cd(%rip), %rax      # 0x15add
movq %rax, 0x13b41(%rip)     # 0x1b158
movzbl 0x13ae2(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x762b
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7639
leaq 0xd063(%rip), %rax      # 0x146a3
movq %rax, 0x13b09(%rip)     # 0x1b150
movl $0x58a, 0x13af7(%rip)   # imm = 0x58A
leaq 0xe6c7(%rip), %rax      # 0x15d1f
movq %rax, 0x13af9(%rip)     # 0x1b158
movzbl 0x13a9a(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7673
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7681
jmp 0x7683
jmp 0x7685
jmp 0x7687
movq -0x20(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1890
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x76ab
jmp 0x76c3
movq 0x13946(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xe4fc(%rip), %rsi      # 0x15bb8
movb $0x0, %al
callq 0x1100
jmp 0x76c5
movl 0x13a79(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13a70(%rip)     # 0x1b144
movq -0x38(%rbp), %rdi
callq 0x1a90
testb $0x1, %al
jne 0x7729
jmp 0x76e3
leaq 0xcfb9(%rip), %rax      # 0x146a3
movq %rax, 0x13a5f(%rip)     # 0x1b150
movl $0x58b, 0x13a4d(%rip)   # imm = 0x58B
leaq 0xe4db(%rip), %rax      # 0x15bdd
movq %rax, 0x13a4f(%rip)     # 0x1b158
movzbl 0x139f0(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x771d
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x772b
jmp 0x772d
jmp 0x772f
leaq 0x139a2(%rip), %rax     # 0x1b0d8
movq %rax, -0x40(%rbp)
movl 0x13a04(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x139fb(%rip)     # 0x1b144
movq -0x38(%rbp), %rdi
callq 0x1ab0
movq %rax, %rdi
movq -0x40(%rbp), %rdx
leaq 0xe5e1(%rip), %rsi      # 0x15d41
xorl %eax, %eax
movl %eax, %ecx
callq 0x11f00
cmpl $0x0, %eax
jne 0x7813
cmpq $0x0, -0x40(%rbp)
je 0x7783
movq -0x40(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x77cb
jmp 0x7785
leaq 0xcf17(%rip), %rax      # 0x146a3
movq %rax, 0x139bd(%rip)     # 0x1b150
movl $0x58b, 0x139ab(%rip)   # imm = 0x58B
leaq 0xe339(%rip), %rax      # 0x15add
movq %rax, 0x139ad(%rip)     # 0x1b158
movzbl 0x1394e(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x77bf
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x77cd
leaq 0xcecf(%rip), %rax      # 0x146a3
movq %rax, 0x13975(%rip)     # 0x1b150
movl $0x58b, 0x13963(%rip)   # imm = 0x58B
leaq 0xe55b(%rip), %rax      # 0x15d47
movq %rax, 0x13965(%rip)     # 0x1b158
movzbl 0x13906(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7807
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7815
jmp 0x7817
jmp 0x7819
jmp 0x781b
movl 0x13923(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x1391a(%rip)     # 0x1b144
movq -0x20(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1700
testb $0x1, %al
jne 0x788f
jmp 0x7849
leaq 0xce53(%rip), %rax      # 0x146a3
movq %rax, 0x138f9(%rip)     # 0x1b150
movl $0x58c, 0x138e7(%rip)   # imm = 0x58C
leaq 0xe501(%rip), %rax      # 0x15d69
movq %rax, 0x138e9(%rip)     # 0x1b158
movzbl 0x1388a(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7883
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7891
movq -0x18(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1890
movq %rax, -0x48(%rbp)
movl 0x13898(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x1388f(%rip)     # 0x1b144
movq -0x48(%rbp), %rdi
callq 0x1870
testb $0x1, %al
jne 0x790a
jmp 0x78c4
leaq 0xcdd8(%rip), %rax      # 0x146a3
movq %rax, 0x1387e(%rip)     # 0x1b150
movl $0x58e, 0x1386c(%rip)   # imm = 0x58E
leaq 0xe4b4(%rip), %rax      # 0x15d97
movq %rax, 0x1386e(%rip)     # 0x1b158
movzbl 0x1380f(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x78fe
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x790c
jmp 0x790e
movq -0x48(%rbp), %rdi
callq 0x1890
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x792a
jmp 0x7942
movq 0x136c7(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xe27d(%rip), %rsi      # 0x15bb8
movb $0x0, %al
callq 0x1100
jmp 0x7944
movl 0x137fa(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x137f1(%rip)     # 0x1b144
movq -0x50(%rbp), %rdi
callq 0x1a90
testb $0x1, %al
jne 0x79a8
jmp 0x7962
leaq 0xcd3a(%rip), %rax      # 0x146a3
movq %rax, 0x137e0(%rip)     # 0x1b150
movl $0x58f, 0x137ce(%rip)   # imm = 0x58F
leaq 0xe25c(%rip), %rax      # 0x15bdd
movq %rax, 0x137d0(%rip)     # 0x1b158
movzbl 0x13771(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x799c
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x79aa
jmp 0x79ac
jmp 0x79ae
leaq 0x13723(%rip), %rax     # 0x1b0d8
movq %rax, -0x58(%rbp)
movl 0x13785(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x1377c(%rip)     # 0x1b144
movq -0x50(%rbp), %rdi
callq 0x1ab0
movq %rax, %rdi
movq -0x58(%rbp), %rdx
leaq 0xe3cc(%rip), %rsi      # 0x15dab
xorl %eax, %eax
movl %eax, %ecx
callq 0x11f00
cmpl $0x0, %eax
jne 0x7a92
cmpq $0x0, -0x58(%rbp)
je 0x7a02
movq -0x58(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x7a4a
jmp 0x7a04
leaq 0xcc98(%rip), %rax      # 0x146a3
movq %rax, 0x1373e(%rip)     # 0x1b150
movl $0x58f, 0x1372c(%rip)   # imm = 0x58F
leaq 0xe0ba(%rip), %rax      # 0x15add
movq %rax, 0x1372e(%rip)     # 0x1b158
movzbl 0x136cf(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7a3e
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7a4c
leaq 0xcc50(%rip), %rax      # 0x146a3
movq %rax, 0x136f6(%rip)     # 0x1b150
movl $0x58f, 0x136e4(%rip)   # imm = 0x58F
leaq 0xe344(%rip), %rax      # 0x15daf
movq %rax, 0x136e6(%rip)     # 0x1b158
movzbl 0x13687(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7a86
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7a94
jmp 0x7a96
jmp 0x7a98
jmp 0x7a9a
movq -0x48(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1890
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
callq 0x1740
testb $0x1, %al
jne 0x7abe
jmp 0x7ad6
movq 0x13533(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0xe0e9(%rip), %rsi      # 0x15bb8
movb $0x0, %al
callq 0x1100
jmp 0x7ad8
movl 0x13666(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x1365d(%rip)     # 0x1b144
movq -0x60(%rbp), %rdi
callq 0x1a90
testb $0x1, %al
jne 0x7b3c
jmp 0x7af6
leaq 0xcba6(%rip), %rax      # 0x146a3
movq %rax, 0x1364c(%rip)     # 0x1b150
movl $0x590, 0x1363a(%rip)   # imm = 0x590
leaq 0xe0c8(%rip), %rax      # 0x15bdd
movq %rax, 0x1363c(%rip)     # 0x1b158
movzbl 0x135dd(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7b30
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7b3e
jmp 0x7b40
jmp 0x7b42
leaq 0x1358f(%rip), %rax     # 0x1b0d8
movq %rax, -0x68(%rbp)
movl 0x135f1(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x135e8(%rip)     # 0x1b144
movq -0x60(%rbp), %rdi
callq 0x1ab0
movq %rax, %rdi
movq -0x68(%rbp), %rdx
leaq 0xe25c(%rip), %rsi      # 0x15dcf
xorl %eax, %eax
movl %eax, %ecx
callq 0x11f00
cmpl $0x0, %eax
jne 0x7c26
cmpq $0x0, -0x68(%rbp)
je 0x7b96
movq -0x68(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x7bde
jmp 0x7b98
leaq 0xcb04(%rip), %rax      # 0x146a3
movq %rax, 0x135aa(%rip)     # 0x1b150
movl $0x590, 0x13598(%rip)   # imm = 0x590
leaq 0xdf26(%rip), %rax      # 0x15add
movq %rax, 0x1359a(%rip)     # 0x1b158
movzbl 0x1353b(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7bd2
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7be0
leaq 0xcabc(%rip), %rax      # 0x146a3
movq %rax, 0x13562(%rip)     # 0x1b150
movl $0x590, 0x13550(%rip)   # imm = 0x590
leaq 0xe1d4(%rip), %rax      # 0x15dd3
movq %rax, 0x13552(%rip)     # 0x1b158
movzbl 0x134f3(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7c1a
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7c28
jmp 0x7c2a
jmp 0x7c2c
jmp 0x7c2e
movl 0x13510(%rip), %eax     # 0x1b144
addl $0x1, %eax
movl %eax, 0x13507(%rip)     # 0x1b144
movq -0x48(%rbp), %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x18b0
movq %rax, %rdi
callq 0x1700
testb $0x1, %al
jne 0x7c9f
jmp 0x7c5c
leaq 0xca40(%rip), %rax      # 0x146a3
movq %rax, 0x134e6(%rip)     # 0x1b150
movl $0x591, 0x134d4(%rip)   # imm = 0x591
leaq 0xe178(%rip), %rax      # 0x15df3
movq %rax, 0x134d6(%rip)     # 0x1b158
movzbl 0x13477(%rip), %eax     # 0x1b100
andl $0x4, %eax
cmpl $0x0, %eax
je 0x7c96
callq 0x1040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7cbc
jmp 0x7ca1
movq -0x18(%rbp), %rdi
callq 0x1800
movq $0x0, 0x134a3(%rip) # 0x1b158
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)