// File: JameyWoo[P]csmile/parse.cpp
// Function: iteration_stmt()
TreeNode* iteration_stmt() {
    TreeNode* t = new TreeNode("Iteration");
    match("while");
    match("LeftBracket");
    if (t != NULL) {
        t->child[0] = expression();
    }
    match("RightBracket");
    match("LeftBigBkt");
    if (t != NULL) {
        t->child[1] = statement_list();
    }
    match("RightBigBkt");
    return t;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2b0, %rsp            # imm = 0x2B0
movl $0xe0, %edi
callq 0x3280
movq %rax, -0x280(%rbp)
movb $0x1, -0x3d(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x278(%rbp)
callq 0x3480
movq -0x278(%rbp), %rdx
leaq 0x16d2d(%rip), %rsi     # 0x211cb
leaq -0x28(%rbp), %rdi
callq 0x4ef0
jmp 0xa4a9
movq -0x280(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xdb50
jmp 0xa4bb
movb $0x0, -0x3d(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x34e8
leaq -0x29(%rbp), %rdi
callq 0x32d0
movq -0x280(%rbp), %rax
movq %rax, -0x8(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x288(%rbp)
callq 0x3480
movq -0x288(%rbp), %rdx
leaq 0x16c0c(%rip), %rsi     # 0x21109
leaq -0xa8(%rbp), %rdi
callq 0x4ef0
jmp 0xa50b
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x80b0
jmp 0xa520
leaq -0x88(%rbp), %rdi
callq 0x4ec0
leaq -0xa8(%rbp), %rdi
callq 0x34e8
leaq -0xa9(%rbp), %rdi
callq 0x32d0
leaq -0x119(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x3480
movq -0x290(%rbp), %rdx
leaq 0x16b4b(%rip), %rsi     # 0x210b0
leaq -0x118(%rbp), %rdi
callq 0x4ef0
jmp 0xa573
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x80b0
jmp 0xa588
leaq -0xf8(%rbp), %rdi
callq 0x4ec0
leaq -0x118(%rbp), %rdi
callq 0x34e8
leaq -0x119(%rbp), %rdi
callq 0x32d0
cmpq $0x0, -0x8(%rbp)
je 0xa683
callq 0x9b00
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
jmp 0xa683
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa5ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x34e8
leaq -0x29(%rbp), %rdi
callq 0x32d0
testb $0x1, -0x3d(%rbp)
jne 0xa5ff
jmp 0xa610
movq -0x280(%rbp), %rdi
movl $0xe0, %esi
callq 0x3290
jmp 0xa885
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa63b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x34e8
leaq -0xa9(%rbp), %rdi
callq 0x32d0
jmp 0xa885
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa672
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x34e8
leaq -0x119(%rbp), %rdi
callq 0x32d0
jmp 0xa885
leaq -0x189(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x3480
movq -0x298(%rbp), %rdx
leaq 0x16a18(%rip), %rsi     # 0x210bc
leaq -0x188(%rbp), %rdi
callq 0x4ef0
jmp 0xa6b2
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x80b0
jmp 0xa6c7
leaq -0x168(%rbp), %rdi
callq 0x4ec0
leaq -0x188(%rbp), %rdi
callq 0x34e8
leaq -0x189(%rbp), %rdi
callq 0x32d0
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
callq 0x3480
movq -0x2a0(%rbp), %rdx
leaq 0x169cf(%rip), %rsi     # 0x210db
leaq -0x1f8(%rbp), %rdi
callq 0x4ef0
jmp 0xa71a
leaq -0x1d8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x80b0
jmp 0xa72f
leaq -0x1d8(%rbp), %rdi
callq 0x4ec0
leaq -0x1f8(%rbp), %rdi
callq 0x34e8
leaq -0x1f9(%rbp), %rdi
callq 0x32d0
cmpq $0x0, -0x8(%rbp)
je 0xa7de
callq 0xa310
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0xa7de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa796
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x34e8
leaq -0x189(%rbp), %rdi
callq 0x32d0
jmp 0xa885
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa7cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x34e8
leaq -0x1f9(%rbp), %rdi
callq 0x32d0
jmp 0xa885
leaq -0x269(%rbp), %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x3480
movq -0x2a8(%rbp), %rdx
leaq 0x168e7(%rip), %rsi     # 0x210e6
leaq -0x268(%rbp), %rdi
callq 0x4ef0
jmp 0xa80d
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x80b0
jmp 0xa822
leaq -0x248(%rbp), %rdi
callq 0x4ec0
leaq -0x268(%rbp), %rdi
callq 0x34e8
leaq -0x269(%rbp), %rdi
callq 0x32d0
movq -0x8(%rbp), %rax
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa879
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x34e8
leaq -0x269(%rbp), %rdi
callq 0x32d0
movq -0x38(%rbp), %rdi
callq 0x3470
nop