// File: /workspace/github_c_makefile_star2_O2/masyagin1998[P]GCI/src/parser/ast.c
// Function: dump_if_stmt_ast_to_file_inner
static void dump_if_stmt_ast_to_file_inner(FILE*f, const struct IF_STMT_AST*ast, size_t spaces_num)
{
    PUT_SPACES(); fprintf(f, "<if_stmt line=\"%zu\" pos=\"%zu\">\n", ast->line, ast->pos);
    INC_SPACES_NUM();
    PUT_SPACES(); fprintf(f, "<condition>\n");
    INC_SPACES_NUM();
    dump_logical_or_expr_ast_to_file_inner(f, ast->condition, spaces_num);
    DEC_SPACES_NUM();
    PUT_SPACES(); fprintf(f, "</condition>\n");

    PUT_SPACES(); fprintf(f, "<if_body>\n");
    INC_SPACES_NUM();
    dump_body_ast_to_file_inner(f, ast->if_body, spaces_num);
    DEC_SPACES_NUM();
    PUT_SPACES(); fprintf(f, "</if_body>\n");

    if (ast->else_body != NULL) {
        PUT_SPACES(); fprintf(f, "<else_body>\n");
        INC_SPACES_NUM();
        dump_body_ast_to_file_inner(f, ast->else_body, spaces_num);
        DEC_SPACES_NUM();
        PUT_SPACES(); fprintf(f, "</else_body>\n");
    }

    DEC_SPACES_NUM();
    PUT_SPACES(); fprintf(f, "</if_stmt>\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x87e3(%rip), %r13      # 0xea52
leaq 0x7f90(%rip), %r14      # 0xe206
movq %r13, %rsi
movq %r14, %rcx
xorl %eax, %eax
callq 0x1100
movq 0x18(%r15), %rdx
movq 0x20(%r15), %rcx
leaq 0x89b9(%rip), %rsi      # 0xec4b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1100
leal 0x2(%r12), %ebp
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1100
leaq 0x89b1(%rip), %rdi      # 0xec6b
pushq $0xc
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
callq 0x1190
movq %r12, (%rsp)
addq $0x4, %r12
movq (%r15), %rsi
movq %rbx, %rdi
movq %r12, %rdx
callq 0x7326
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1100
leaq 0x8981(%rip), %rdi      # 0xec78
pushq $0xd
popq %rsi
pushq $0x1
popq %r14
movq %r14, %rdx
movq %rbx, %rcx
callq 0x1190
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %edx
leaq 0x7eee(%rip), %rcx      # 0xe206
xorl %eax, %eax
callq 0x1100
leaq 0x8960(%rip), %rdi      # 0xec86
pushq $0xa
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x1190
movq 0x8(%r15), %rsi
movq %rbx, %rdi
movq %r12, %rdx
callq 0x5a77
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %edx
leaq 0x7eb4(%rip), %rcx      # 0xe206
xorl %eax, %eax
callq 0x1100
leaq 0x8931(%rip), %rdi      # 0xec91
pushq $0xb
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x1190
cmpq $0x0, 0x10(%r15)
je 0x63e5
leaq 0x86d6(%rip), %rsi      # 0xea52
leaq 0x7e83(%rip), %r14      # 0xe206
movq %rbx, %rdi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1100
leaq 0x8904(%rip), %rdi      # 0xec9d
pushq $0xc
popq %rsi
pushq $0x1
popq %r13
movq %r13, %rdx
movq %rbx, %rcx
callq 0x1190
movq 0x10(%r15), %rsi
movq %rbx, %rdi
movq %r12, %rdx
callq 0x5a77
movq %rbx, %rdi
leaq 0x868e(%rip), %rsi      # 0xea52
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1100
leaq 0x88d3(%rip), %rdi      # 0xecaa
pushq $0xd
popq %rsi
movq %r13, %rdx
movq %rbx, %rcx
callq 0x1190
leaq 0x8666(%rip), %rsi      # 0xea52
leaq 0x7e13(%rip), %rcx      # 0xe206
movq %rbx, %rdi
movq (%rsp), %rdx
xorl %eax, %eax
callq 0x1100
leaq 0x88b0(%rip), %rdi      # 0xecb8
pushq $0xb
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1190