// File: acliusBackHome[P]kamaya/dist/IR.cpp
// Function: IR::varDecEmit(unsigned long, ParseExpression const&, unsigned long, unsigned long)
void IR::varDecEmit(size_t addr, const ParseExpression &init_expr,
                    size_t node_id, size_t scope_id) {
  if (init_expr.get_expr_type() != ExpressionType::E_UNDEFINED) {
    if (init_expr.is_const()) {
      gen(":=", getConstValueStr(init_expr), "_", address2pointer(addr),
          node_id);
    } else {
      gen(":=", address2pointer(init_expr.get_address()), "_",
          address2pointer(addr), node_id);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x18(%rbp), %rdi
callq 0x64ab0
cmpl $0x0, %eax
je 0x878f2
movq -0x18(%rbp), %rdi
callq 0x61790
testb $0x1, %al
jne 0x875ce
jmp 0x87742
leaq -0x49(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x45f0
movq -0x168(%rbp), %rdx
leaq 0x7d88(%rip), %rsi      # 0x8f374
leaq -0x48(%rbp), %rdi
callq 0x4450
jmp 0x875f7
movq -0x18(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x84d60
jmp 0x87606
leaq -0xa1(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x45f0
movq -0x170(%rbp), %rdx
leaq 0x8092(%rip), %rsi      # 0x8f6b9
leaq -0xa0(%rbp), %rdi
callq 0x4450
jmp 0x87635
movq -0x160(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
callq 0x180c0
jmp 0x8764e
movq -0x160(%rbp), %rdi
movq -0x20(%rbp), %r9
leaq -0x48(%rbp), %rsi
leaq -0x80(%rbp), %rdx
leaq -0xa0(%rbp), %rcx
leaq -0xc8(%rbp), %r8
callq 0x84430
jmp 0x87676
leaq -0xc8(%rbp), %rdi
callq 0x4688
leaq -0xa0(%rbp), %rdi
callq 0x4688
leaq -0xa1(%rbp), %rdi
callq 0x4380
leaq -0x80(%rbp), %rdi
callq 0x4688
leaq -0x48(%rbp), %rdi
callq 0x4688
leaq -0x49(%rbp), %rdi
callq 0x4380
jmp 0x878f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x87734
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8772b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x87716
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8770a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x4688
leaq -0xa0(%rbp), %rdi
callq 0x4688
leaq -0xa1(%rbp), %rdi
callq 0x4380
leaq -0x80(%rbp), %rdi
callq 0x4688
leaq -0x48(%rbp), %rdi
callq 0x4688
leaq -0x49(%rbp), %rdi
callq 0x4380
jmp 0x878fb
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x45f0
movq -0x178(%rbp), %rdx
leaq 0x7c11(%rip), %rsi      # 0x8f374
leaq -0xe8(%rbp), %rdi
callq 0x4450
jmp 0x87771
movq -0x18(%rbp), %rdi
callq 0x61e00
movq %rax, -0x180(%rbp)
jmp 0x87783
movq -0x180(%rbp), %rdx
movq -0x160(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0x180c0
jmp 0x8779f
leaq -0x131(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x45f0
movq -0x188(%rbp), %rdx
leaq 0x7ef9(%rip), %rsi      # 0x8f6b9
leaq -0x130(%rbp), %rdi
callq 0x4450
jmp 0x877ce
movq -0x160(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x158(%rbp), %rdi
callq 0x180c0
jmp 0x877e7
movq -0x160(%rbp), %rdi
movq -0x20(%rbp), %r9
leaq -0xe8(%rbp), %rsi
leaq -0x110(%rbp), %rdx
leaq -0x130(%rbp), %rcx
leaq -0x158(%rbp), %r8
callq 0x84430
jmp 0x87815
leaq -0x158(%rbp), %rdi
callq 0x4688
leaq -0x130(%rbp), %rdi
callq 0x4688
leaq -0x131(%rbp), %rdi
callq 0x4380
leaq -0x110(%rbp), %rdi
callq 0x4688
leaq -0xe8(%rbp), %rdi
callq 0x4688
leaq -0xe9(%rbp), %rdi
callq 0x4380
jmp 0x878f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x878e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x878d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x878be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x878b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x4688
leaq -0x130(%rbp), %rdi
callq 0x4688
leaq -0x131(%rbp), %rdi
callq 0x4380
leaq -0x110(%rbp), %rdi
callq 0x4688
leaq -0xe8(%rbp), %rdi
callq 0x4688
leaq -0xe9(%rbp), %rdi
callq 0x4380
jmp 0x878fb
jmp 0x878f2
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x45e0
nopw %cs:(%rax,%rax)