// File: acliusBackHome[P]kamaya/dist/ParseExpression.cpp
// Function: ParseExpression::get_assign_expression(ParseExpression const&, ParseExpression const&)
const ParseExpression &ParseExpression::get_assign_expression(
        const ParseExpression &unary_expr, const ParseExpression &expr) {
    ParseExpression res;
    if (unary_expr.is_const()) {
        string info = "ParseExpression::get_assign_expression"
                      "(const ParseExpression &unary_expr, const ParseExpression &expr)";
        info += "unary_expr=" + to_string(unary_expr.get_id());
        info += "expr=" + to_string(expr.get_id());
        throw ParseException(EX_CAN_NOT_ASSIGN_CONST, info);
    }
    try {
        if (ParseType::convert(unary_expr.get_ret_type(), expr.get_ret_type())) {
            res.expr_type = E_ASSIGN;
            res.child[0] = get_expr_id(unary_expr);
            res.child[1] = get_expr_id(expr);
            res.ret_type_id = unary_expr.get_ret_type().get_id();
        }
    } catch (ParseException &exc) {
        string info = "in ParseExpression::get_assign_expression("
                      "const ParseExpression &unary_expr, const ParseExpression &expr)";
        info += " unary_expr: " + to_string(unary_expr.get_id());
        info += " expr: " + to_string(expr.get_id());
        exc.push_trace(info);
        throw exc;
    }
    update(res);
    return get_expression(res.get_id());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x61e30
movq -0x8(%rbp), %rdi
callq 0x61790
movb %al, -0x1a9(%rbp)
jmp 0x638ad
movb -0x1a9(%rbp), %al
testb $0x1, %al
jne 0x638bc
jmp 0x63ad8
leaq -0x71(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x45f0
movq -0x1b8(%rbp), %rdx
leaq 0x2cc09(%rip), %rsi     # 0x904e3
leaq -0x70(%rbp), %rdi
callq 0x4450
jmp 0x638e5
leaq -0x71(%rbp), %rdi
callq 0x4380
movq -0x8(%rbp), %rdi
callq 0x63810
movq %rax, -0x1c0(%rbp)
jmp 0x63900
movq -0x1c0(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x15db0
jmp 0x63915
leaq 0x2cbb8(%rip), %rsi     # 0x904d4
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
callq 0x15d60
jmp 0x63931
leaq -0x70(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x43f0
jmp 0x63943
leaq -0x98(%rbp), %rdi
callq 0x4688
leaq -0xb8(%rbp), %rdi
callq 0x4688
movq -0x10(%rbp), %rdi
callq 0x63810
movq %rax, -0x1c8(%rbp)
jmp 0x6396d
movq -0x1c8(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x15db0
jmp 0x63982
leaq 0x2cb45(%rip), %rsi     # 0x904ce
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rdx
callq 0x15d60
jmp 0x6399e
leaq -0x70(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x43f0
jmp 0x639b0
leaq -0xd8(%rbp), %rdi
callq 0x4688
leaq -0xf8(%rbp), %rdi
callq 0x4688
movl $0x28, %edi
callq 0x41c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1d0(%rbp)
movl $0x14, %esi
leaq -0x70(%rbp), %rdx
callq 0x73a90
jmp 0x639ef
movq -0x1d0(%rbp), %rdi
leaq 0x62353(%rip), %rsi     # 0xc5d50
leaq -0x4db74(%rip), %rdx    # 0x15e90
callq 0x45b0
jmp 0x63e49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63e2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x71(%rbp), %rdi
callq 0x4380
jmp 0x63e2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63aca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63a70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x4688
leaq -0xb8(%rbp), %rdi
callq 0x4688
jmp 0x63aca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63aa4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x4688
leaq -0xf8(%rbp), %rdi
callq 0x4688
jmp 0x63aca
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x4280
leaq -0x70(%rbp), %rdi
callq 0x4688
jmp 0x63e2f
movq -0x8(%rbp), %rdi
callq 0x61800
movq %rax, -0x1d8(%rbp)
jmp 0x63aea
movq -0x10(%rbp), %rdi
callq 0x61800
movq %rax, -0x1e0(%rbp)
jmp 0x63afc
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdi
callq 0x59020
movb %al, -0x1e1(%rbp)
jmp 0x63b17
movb -0x1e1(%rbp), %al
testb $0x1, %al
jne 0x63b26
jmp 0x63d39
movl $0x19, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x63830
movq %rax, -0x1f0(%rbp)
jmp 0x63b3f
movq -0x1f0(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
callq 0x63830
movq %rax, -0x1f8(%rbp)
jmp 0x63b5c
movq -0x1f8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x61800
movq %rax, -0x200(%rbp)
jmp 0x63b79
movq -0x200(%rbp), %rdi
callq 0x56260
movq %rax, -0x208(%rbp)
jmp 0x63b8e
movq -0x208(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x63d39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x63e2f
movq -0x48(%rbp), %rdi
callq 0x4170
movq %rax, -0x100(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x45f0
movq -0x210(%rbp), %rdx
leaq 0x2c8f5(%rip), %rsi     # 0x904e0
leaq -0x120(%rbp), %rdi
callq 0x4450
jmp 0x63bf9
leaq -0x121(%rbp), %rdi
callq 0x4380
movq -0x8(%rbp), %rdi
callq 0x63810
movq %rax, -0x218(%rbp)
jmp 0x63c17
movq -0x218(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x15db0
jmp 0x63c2c
leaq 0x2c917(%rip), %rsi     # 0x9054a
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rdx
callq 0x15d60
jmp 0x63c48
leaq -0x120(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x43f0
jmp 0x63c5d
leaq -0x148(%rbp), %rdi
callq 0x4688
leaq -0x168(%rbp), %rdi
callq 0x4688
movq -0x10(%rbp), %rdi
callq 0x63810
movq %rax, -0x220(%rbp)
jmp 0x63c87
movq -0x220(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x15db0
jmp 0x63c9c
leaq 0x2c8b5(%rip), %rsi     # 0x90558
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rdx
callq 0x15d60
jmp 0x63cb8
leaq -0x120(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x43f0
jmp 0x63ccd
leaq -0x188(%rbp), %rdi
callq 0x4688
leaq -0x1a8(%rbp), %rdi
callq 0x4688
movq -0x100(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x74530
jmp 0x63cfa
movl $0x28, %edi
callq 0x41c0
movq %rax, %rdi
movq %rdi, -0x228(%rbp)
movq -0x100(%rbp), %rsi
callq 0x74640
movq -0x228(%rbp), %rdi
leaq 0x62028(%rip), %rsi     # 0xc5d50
leaq -0x4de9f(%rip), %rdx    # 0x15e90
callq 0x45b0
jmp 0x63e49
jmp 0x63de4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x121(%rbp), %rdi
callq 0x4380
jmp 0x63ddb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63dcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63d8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x4688
leaq -0x168(%rbp), %rdi
callq 0x4688
jmp 0x63dcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63dc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x4688
leaq -0x1a8(%rbp), %rdi
callq 0x4688
leaq -0x120(%rbp), %rdi
callq 0x4688
callq 0x4570
jmp 0x63de2
jmp 0x63e2f
leaq -0x40(%rbp), %rdi
callq 0x60e20
jmp 0x63def
leaq -0x40(%rbp), %rdi
callq 0x63810
movq %rax, -0x230(%rbp)
jmp 0x63e01
movq -0x230(%rbp), %rdi
callq 0x60f30
movq %rax, -0x238(%rbp)
jmp 0x63e16
leaq -0x40(%rbp), %rdi
callq 0x62810
movq -0x238(%rbp), %rax
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0x62810
movq -0x48(%rbp), %rdi
callq 0x45e0
movq %rax, %rdi
callq 0x16180
nopl (%rax)