// File: /workspace/github_cpp_makefile_star2_O3/acliusBackHome[P]kamaya/dist/ParseExpression.cpp
// Function: ParseExpression::get_info[abi:cxx11]() const
string ParseExpression::get_info() const {
    char buff[64];
    string res = "ParseExpression-";
    if (!expr_id) {
        update(*this);
    }
    sprintf(buff, "%zu", expr_id);
    res += buff;
    res += " {";
    switch (expr_type) {
        case E_UNDEFINED:
            return res + "undefined }";
        case E_ADD:
        case E_SUB:
        case E_MUL:
        case E_MOD:
        case E_POW:
        case E_LOGIC_OR:
        case E_LOGIC_AND:
        case E_G:
        case E_GE:
        case E_EQUAL:
        case E_NE:
        case E_L:
        case E_LE:
        case E_ASSIGN:
        case E_DIV: {
            const ParseExpression &expr1 = get_expression(child[0]),
                    &expr2 = get_expression(child[1]);
            sprintf(buff, "{ Expr-%zu ", child[0]);
            res += buff;
            res += get_expr_type_name(expr_type);
            sprintf(buff, " Expr-%zu }, ", child[1]);
            res += buff;
            break;
        }
        case E_POS:
        case E_ADR:
        case E_PTR:
        case E_NEG:
        case E_BIT_NOT:
        case E_NOT: {
            res += get_expr_type_name(expr_type);
            sprintf(buff, " { Expr-%zu }", child[0]);
            res += buff;
            break;
        }
        case E_FUN: {
            const auto &func_ptrs = *(DecFuncPtrList *)(child[0]);
            res += "function:{ " + (func_ptrs[0])->get_symbol() + " }, ";
            break;
        }
        case E_VAR: {
            res += "variable:{ " + ((ParseVariable *) child[0])->get_info() + " }, ";
            break;
        }
        case E_CONST: {
            res += "constant: " + ((ParseConstant *) child[0])->get_info() + ", ";
            break;
        }
        case E_GET_ITEM: {
            const ParseExpression &expr1 = get_expression(child[0]),
                    &expr2 = get_expression(child[1]);
            sprintf(buff, "[] { Expr-%zu ", child[0]);
            res += buff;
            res += get_expr_type_name(expr_type);
            sprintf(buff, " Expr-%zu }, ", child[1]);
            res += buff;
            break;
        }
    }
    if (expr_type != E_CONST && is_const()) {
        res += "const_value: " + ((ParseConstant *) const_value)->get_info() + ", ";
    }
    res += "return_type: " + get_ret_type().get_info() + ", ";
    res += "address: " + to_string(get_address()) + "}";
    return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rsi, %r14
movq %rdi, %r13
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x1bda7(%rip), %rsi     # 0x46261
leaq 0x1bdb0(%rip), %rdx     # 0x46271
leaq -0x88(%rbp), %rdi
callq 0xf868
movq 0x10(%r14), %rdx
testq %rdx, %rdx
jne 0x2a4e2
movq %r14, %rdi
callq 0x2af00
movq 0x10(%r14), %rdx
leaq 0x1bd89(%rip), %rsi     # 0x46272
leaq -0xf0(%rbp), %r15
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
leaq 0x1b965(%rip), %rsi     # 0x45e75
leaq -0x88(%rbp), %rdi
callq 0x45c0
movl 0x28(%r14), %esi
cmpq $0x19, %rsi
ja 0x2a9d3
leaq 0x1bb37(%rip), %rax     # 0x46068
movslq (%rax,%rsi,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r14), %rdi
callq 0x2b006
movq 0x8(%r14), %rdi
callq 0x2b006
movq (%r14), %rdx
leaq 0x1bd6f(%rip), %rsi     # 0x462c4
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
movl 0x28(%r14), %esi
leaq -0x48(%rbp), %rdi
callq 0x2b07c
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a5a1
callq 0x42b0
movq 0x8(%r14), %rdx
leaq 0x1bcd6(%rip), %rsi     # 0x46282
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
jmp 0x2a9cf
leaq -0x48(%rbp), %rdi
callq 0x2b07c
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a5f9
callq 0x42b0
movq (%r14), %rdx
leaq 0x1bc8d(%rip), %rsi     # 0x46290
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
jmp 0x2a9cf
movq (%r14), %rdi
callq 0x2b006
movq 0x8(%r14), %rdi
callq 0x2b006
movq (%r14), %rdx
leaq 0x1bc85(%rip), %rsi     # 0x462c1
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
movl 0x28(%r14), %esi
leaq -0x48(%rbp), %rdi
callq 0x2b07c
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a688
callq 0x42b0
movq 0x8(%r14), %rdx
leaq 0x1bbef(%rip), %rsi     # 0x46282
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
jmp 0x2a9cf
movq (%r14), %rax
movq (%rax), %rax
movq (%rax), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2e974
leaq 0x1bbd1(%rip), %rcx     # 0x4629e
leaq -0xa8(%rbp), %rdi
movl $0xb, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4330
leaq -0x58(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a803
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2a809
movq (%r14), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2f2ec
leaq 0x1bb92(%rip), %rcx     # 0x462b6
leaq -0xa8(%rbp), %rdi
movl $0xa, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4330
leaq -0x58(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a85b
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2a861
leaq 0x10(%r13), %rbx
movq %rbx, (%r13)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0xf7ca
leaq 0x1baec(%rip), %rsi     # 0x46276
movq %r13, %rdi
callq 0x45c0
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x2adca
callq 0x42b0
jmp 0x2adca
movq (%r14), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2e3c4
leaq 0x1bae8(%rip), %rcx     # 0x462aa
leaq -0xa8(%rbp), %rdi
movl $0xb, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4330
leaq -0x58(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a8b3
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2a8b9
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1ba60(%rip), %rsi     # 0x4628b
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a904
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2a90b
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1b27c(%rip), %rsi     # 0x45aff
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a938
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2a93f
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1b9b0(%rip), %rsi     # 0x4628b
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a96c
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2a973
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
jmp 0x2a99e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
jmp 0x2a99e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x2a9ac
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2a9ba
callq 0x42b0
leaq -0x98(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a9cf
callq 0x42b0
movl 0x28(%r14), %esi
cmpl $0x3, %esi
je 0x2aaf1
movq %r14, %rdi
callq 0x2b2f4
testb %al, %al
je 0x2aaf1
movq 0x18(%r14), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2f2ec
leaq 0x1b8cd(%rip), %rcx     # 0x462d0
leaq -0xa8(%rbp), %rdi
movl $0xd, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4330
leaq -0x58(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2aa3d
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2aa43
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1b09a(%rip), %rsi     # 0x45aff
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2aa8e
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2aa95
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x2aace
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2aadc
callq 0x42b0
leaq -0x98(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2aaf1
callq 0x42b0
movq %r14, %rdi
callq 0x2b332
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x273f2
movq %r13, -0xb0(%rbp)
leaq 0x1b7c8(%rip), %rcx     # 0x462de
leaq -0xa8(%rbp), %rdi
movl $0xd, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4330
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ab50
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2ab58
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1af85(%rip), %rsi     # 0x45aff
callq 0x45c0
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2aba4
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2abac
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x4110
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2abe5
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x2abf3
callq 0x42b0
leaq -0x98(%rbp), %rbx
movq -0x10(%rbx), %rdi
cmpq %rbx, %rdi
je 0x2ac08
callq 0x42b0
movq 0x10(%r14), %rax
testq %rax, %rax
jne 0x2ac1d
movq %r14, %rdi
callq 0x2af00
movq 0x10(%r14), %rax
movq 0x317b4(%rip), %rcx     # 0x5c3d8
movq (%rcx,%rax,8), %r14
movl $0x1, %esi
cmpq $0xa, %r14
jb 0x2ac82
movl $0x4, %esi
movabsq $0x346dc5d63886594b, %rdi # imm = 0x346DC5D63886594B
movq %r14, %rcx
cmpq $0x63, %rcx
jbe 0x2ac7b
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x2ac80
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x2ac82
movq %rcx, %rax
mulq %rdi
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x2ac45
addl $-0x3, %esi
jmp 0x2ac82
addl $-0x2, %esi
jmp 0x2ac82
decl %esi
movl %esi, %esi
leaq -0xa8(%rbp), %rdi
movq %rbx, (%rdi)
xorl %edx, %edx
callq 0x4360
leaq -0xa8(%rbp), %r15
movq (%r15), %rdi
movl 0x8(%r15), %esi
movq %r14, %rdx
callq 0xefce
leaq 0x1b63a(%rip), %rcx     # 0x462ec
movl $0x9, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4330
movq %r13, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2ace4
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2acec
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1b572(%rip), %rsi     # 0x46280
callq 0x45c0
movq %r12, -0x48(%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x2ad33
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2ad3e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %r12, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x88(%rbp), %rdi
callq 0x4110
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2ad6f
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
leaq -0x78(%rbp), %r14
je 0x2ad81
callq 0x42b0
movq -0xa8(%rbp), %rdi
cmpq %rbx, %rdi
movq -0xb0(%rbp), %r13
je 0x2ad99
callq 0x42b0
leaq 0x10(%r13), %rax
movq %rax, (%r13)
movq -0x88(%rbp), %rcx
cmpq %r14, %rcx
je 0x2adbb
movq %rcx, (%r13)
movq -0x78(%rbp), %rax
movq %rax, 0x10(%r13)
jmp 0x2adc2
movups (%r14), %xmm0
movups %xmm0, (%rax)
movq -0x80(%rbp), %rax
movq %rax, 0x8(%r13)
movq %r13, %rax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2ae55
jmp 0x2ae2d
jmp 0x2ae2d
jmp 0x2ae2d
jmp 0x2aedf
jmp 0x2ae40
jmp 0x2ae40
jmp 0x2ae40
jmp 0x2aebf
movq %rax, %r14
movq (%r13), %rdi
jmp 0x2ae92
jmp 0x2aebf
jmp 0x2aebf
jmp 0x2aedf
jmp 0x2aedf
jmp 0x2aedf
jmp 0x2aedf
jmp 0x2aedf
jmp 0x2ae55
jmp 0x2aedf
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x2ae43
callq 0x42b0
jmp 0x2ae43
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x2aeb8
jmp 0x2aec2
jmp 0x2aebf
jmp 0x2aedf
movq %rax, %r14
leaq -0x38(%rbp), %rax
jmp 0x2aec9
jmp 0x2aedf
jmp 0x2aedf
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2ae78
callq 0x42b0
jmp 0x2ae78
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x2ae8b
callq 0x42b0
jmp 0x2ae8b
movq %rax, %r14
movq -0xa8(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x2aed2
jmp 0x2aee2
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2aeaf
callq 0x42b0
jmp 0x2aeaf
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x2aec2
callq 0x42b0
jmp 0x2aec2
movq %rax, %r14
leaq -0x98(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2aee2
callq 0x42b0
jmp 0x2aee2
jmp 0x2aedf
jmp 0x2aedf
jmp 0x2aedf
movq %rax, %r14
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2aef7
callq 0x42b0
movq %r14, %rdi
callq 0x4560
nop