// File: /workspace/github_cpp_makefile_star2_O1/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 0x1c517(%rip), %rsi     # 0x47261
leaq 0x1c520(%rip), %rdx     # 0x47271
leaq -0x88(%rbp), %rdi
callq 0xf65c
cmpq $0x0, 0x10(%r14)
jne 0x2ad6c
movq %r14, %rdi
callq 0x2b7a0
movq 0x10(%r14), %rdx
leaq 0x1c4fb(%rip), %rsi     # 0x47272
leaq -0xf0(%rbp), %r15
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
leaq 0x1c0d7(%rip), %rsi     # 0x46e75
leaq -0x88(%rbp), %rdi
callq 0x45c0
movl 0x28(%r14), %esi
cmpq $0x19, %rsi
ja 0x2b248
leaq 0x1c2a9(%rip), %rax     # 0x47068
movslq (%rax,%rsi,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r14), %rdi
callq 0x2b8a6
movq 0x8(%r14), %rdi
callq 0x2b8a6
movq (%r14), %rdx
leaq 0x1c4e1(%rip), %rsi     # 0x472c4
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 0x2b918
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 0x2ae2f
callq 0x42b0
movq 0x8(%r14), %rdx
leaq 0x1c448(%rip), %rsi     # 0x47282
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
jmp 0x2b248
leaq -0x48(%rbp), %rdi
callq 0x2b918
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 0x2ae87
callq 0x42b0
movq (%r14), %rdx
leaq 0x1c3ff(%rip), %rsi     # 0x47290
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
jmp 0x2b248
movq (%r14), %rdi
callq 0x2b8a6
movq 0x8(%r14), %rdi
callq 0x2b8a6
movq (%r14), %rdx
leaq 0x1c3f7(%rip), %rsi     # 0x472c1
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 0x2b918
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 0x2af16
callq 0x42b0
movq 0x8(%r14), %rdx
leaq 0x1c361(%rip), %rsi     # 0x47282
movq %r15, %rdi
xorl %eax, %eax
callq 0x40c0
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x45c0
jmp 0x2b248
movq (%r14), %rax
movq (%rax), %rax
movq (%rax), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2f238
leaq 0x1c343(%rip), %rcx     # 0x4729e
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 0x2b07c
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2b082
movq (%r14), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2fbb8
leaq 0x1c304(%rip), %rcx     # 0x472b6
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 0x2b0d4
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2b0da
leaq 0x10(%r13), %rbx
movq %rbx, (%r13)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0xf5c2
leaq 0x1c25e(%rip), %rsi     # 0x47276
movq %r13, %rdi
callq 0x45c0
jmp 0x2b65a
movq (%r14), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2ec84
leaq 0x1c26f(%rip), %rcx     # 0x472aa
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 0x2b12c
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2b132
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 0x1c1e7(%rip), %rsi     # 0x4728b
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2b17d
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2b184
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 0x1ba03(%rip), %rsi     # 0x46aff
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2b1b1
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2b1b8
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 0x1c137(%rip), %rsi     # 0x4728b
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2b1e5
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2b1ec
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 0x2b217
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 0x2b217
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 0x2b225
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2b233
callq 0x42b0
leaq -0x98(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b248
callq 0x42b0
cmpl $0x3, 0x28(%r14)
je 0x2b368
movq %r14, %rdi
callq 0x2bb90
testb %al, %al
je 0x2b368
movq 0x18(%r14), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2fbb8
leaq 0x1c056(%rip), %rcx     # 0x472d0
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 0x2b2b4
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2b2ba
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 0x1b823(%rip), %rsi     # 0x46aff
callq 0x45c0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2b305
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2b30c
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 0x2b345
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2b353
callq 0x42b0
leaq -0x98(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b368
callq 0x42b0
movq %r14, %rdi
callq 0x2bbcc
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x27a86
movq %r13, -0xb0(%rbp)
leaq 0x1bf51(%rip), %rcx     # 0x472de
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 0x2b3c7
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2b3cf
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 0x1b70e(%rip), %rsi     # 0x46aff
callq 0x45c0
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2b41b
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2b423
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 0x2b45c
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x2b46a
callq 0x42b0
leaq -0x98(%rbp), %rbx
movq -0x10(%rbx), %rdi
cmpq %rbx, %rdi
je 0x2b47f
callq 0x42b0
movq 0x10(%r14), %rax
testq %rax, %rax
jne 0x2b494
movq %r14, %rdi
callq 0x2b7a0
movq 0x10(%r14), %rax
movq 0x31f3d(%rip), %rcx     # 0x5d3d8
movq (%rcx,%rax,8), %r14
movl $0x1, %esi
cmpq $0xa, %r14
jb 0x2b4f9
movl $0x4, %esi
movabsq $0x346dc5d63886594b, %rdi # imm = 0x346DC5D63886594B
movq %r14, %rcx
cmpq $0x63, %rcx
jbe 0x2b4f2
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x2b4f7
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x2b4f9
movq %rcx, %rax
mulq %rdi
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x2b4bc
addl $-0x3, %esi
jmp 0x2b4f9
addl $-0x2, %esi
jmp 0x2b4f9
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 0xede8
leaq 0x1bdc3(%rip), %rcx     # 0x472ec
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 0x2b55b
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x2b563
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 0x1bcfb(%rip), %rsi     # 0x47280
callq 0x45c0
movq %r12, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2b5aa
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x2b5b2
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 0x2b5eb
callq 0x42b0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
leaq -0x78(%rbp), %r12
je 0x2b5fd
callq 0x42b0
movq -0xa8(%rbp), %rdi
cmpq %rbx, %rdi
movq -0xb0(%rbp), %r13
je 0x2b615
callq 0x42b0
leaq 0x10(%r13), %rax
movq %rax, (%r13)
movq -0x88(%rbp), %rcx
cmpq %r12, %rcx
je 0x2b637
movq %rcx, (%r13)
movq -0x78(%rbp), %rax
movq %rax, 0x10(%r13)
jmp 0x2b63f
movups (%r12), %xmm0
movups %xmm0, (%rax)
movq -0x80(%rbp), %rax
movq %rax, 0x8(%r13)
movq %r12, -0x88(%rbp)
movq $0x0, -0x80(%rbp)
movb $0x0, -0x78(%rbp)
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x2b66b
callq 0x42b0
movq %r13, %rax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2b6f6
jmp 0x2b6ce
jmp 0x2b6ce
jmp 0x2b6ce
jmp 0x2b780
jmp 0x2b6e1
jmp 0x2b6e1
jmp 0x2b6e1
jmp 0x2b760
movq %rax, %r14
movq (%r13), %rdi
jmp 0x2b733
jmp 0x2b760
jmp 0x2b760
jmp 0x2b780
jmp 0x2b780
jmp 0x2b780
jmp 0x2b780
jmp 0x2b780
jmp 0x2b6f6
jmp 0x2b780
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b6e4
callq 0x42b0
jmp 0x2b6e4
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x2b759
jmp 0x2b763
jmp 0x2b760
jmp 0x2b780
movq %rax, %r14
leaq -0x38(%rbp), %rax
jmp 0x2b76a
jmp 0x2b780
jmp 0x2b780
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2b719
callq 0x42b0
jmp 0x2b719
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x2b72c
callq 0x42b0
jmp 0x2b72c
movq %rax, %r14
movq -0xa8(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x2b773
jmp 0x2b783
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x2b750
callq 0x42b0
jmp 0x2b750
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x2b763
callq 0x42b0
jmp 0x2b763
movq %rax, %r14
leaq -0x98(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b783
callq 0x42b0
jmp 0x2b783
jmp 0x2b780
jmp 0x2b780
jmp 0x2b780
movq %rax, %r14
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2b798
callq 0x42b0
movq %r14, %rdi
callq 0x4560