// File: /workspace/github_c_makefile_star2_O0/sharmaeklavya2[P]cerplag/ast.c
// Function: get_ast_node
pAstNode get_ast_node(astn_t node_type) {
    pAstNode p = NULL;
    switch(node_type) {
#define X(a, b) case ASTN_##a: p = malloc(sizeof(a##Node)); \
    memset(p, 0, sizeof(a##Node)); p->base.node_type = node_type; \
    ast_mem_allocd += sizeof(a##Node); break;
#include "data/ast_nodes.xmac"
#undef X
        default:
            complain_ast_node_type(__func__, node_type);
    }
    ast_node_count++;
    return p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movq $0x0, -0x10(%rbp)
movl -0x4(%rbp), %eax
movq %rax, -0x18(%rbp)
subq $0x13, %rax
ja 0x9346
movq -0x18(%rbp), %rax
leaq 0xbcfd(%rip), %rcx      # 0x14b7c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x50, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16f16(%rip), %rax     # 0x1fdcc
addq $0x50, %rax
movl %eax, 0x16f0c(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16ed9(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16ecf(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16e9c(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16e92(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x40, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16e5f(%rip), %rax     # 0x1fdcc
addq $0x40, %rax
movl %eax, 0x16e55(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x40, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16e22(%rip), %rax     # 0x1fdcc
addq $0x40, %rax
movl %eax, 0x16e18(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x40, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16de5(%rip), %rax     # 0x1fdcc
addq $0x40, %rax
movl %eax, 0x16ddb(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x40, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16da8(%rip), %rax     # 0x1fdcc
addq $0x40, %rax
movl %eax, 0x16d9e(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16d6b(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16d61(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16d2e(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16d24(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x68, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x68, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16cf1(%rip), %rax     # 0x1fdcc
addq $0x68, %rax
movl %eax, 0x16ce7(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x50, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16cb4(%rip), %rax     # 0x1fdcc
addq $0x50, %rax
movl %eax, 0x16caa(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x50, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16c77(%rip), %rax     # 0x1fdcc
addq $0x50, %rax
movl %eax, 0x16c6d(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x58, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x58, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16c3a(%rip), %rax     # 0x1fdcc
addq $0x58, %rax
movl %eax, 0x16c30(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x70, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x70, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16bfd(%rip), %rax     # 0x1fdcc
addq $0x70, %rax
movl %eax, 0x16bf3(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16bc0(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16bb6(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16b83(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16b79(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x48, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x48, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16b46(%rip), %rax     # 0x1fdcc
addq $0x48, %rax
movl %eax, 0x16b3c(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x58, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x58, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16b09(%rip), %rax     # 0x1fdcc
addq $0x58, %rax
movl %eax, 0x16aff(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x60, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x60, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16acc(%rip), %rax     # 0x1fdcc
addq $0x60, %rax
movl %eax, 0x16ac2(%rip)     # 0x1fdcc
jmp 0x9355
movl $0x50, %edi
callq 0x3130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x30d0
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movslq 0x16a92(%rip), %rax     # 0x1fdcc
addq $0x50, %rax
movl %eax, 0x16a88(%rip)     # 0x1fdcc
jmp 0x9355
movl -0x4(%rbp), %esi
leaq 0xba89(%rip), %rdi      # 0x14dd9
callq 0x8de0
movl 0x16a6d(%rip), %eax     # 0x1fdc8
addl $0x1, %eax
movl %eax, 0x16a64(%rip)     # 0x1fdc8
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop