LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/memory.cpp
// Function: mark_alive(void*, DATATYPE)
bool mark_alive(void *p,DATATYPE type)
{
    if(!memory_table.count(p))return false;
    if(memory_table[p].alive)return false;
    memory_table[p].alive=true;
    return true;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq 0x1e88e(%rip), %rcx     # 0x2f820
testq %rcx, %rcx
je 0x10fdb
leaq 0x1e87a(%rip), %rax     # 0x2f818
xorl %edx, %edx
cmpq %rdi, 0x20(%rcx)
setb %dl
cmovaeq %rcx, %rax
movq 0x10(%rcx,%rdx,8), %rcx
testq %rcx, %rcx
jne 0x10f9e
leaq 0x1e85c(%rip), %rcx     # 0x2f818
cmpq %rcx, %rax
je 0x10fdb
cmpq %rdi, 0x20(%rax)
ja 0x10fdb
leaq 0x1e842(%rip), %rdi     # 0x2f810
movq %rsp, %rsi
callq 0x11316
cmpb $0x0, (%rax)
je 0x10fdf
xorl %eax, %eax
popq %rcx
retq
leaq 0x1e82a(%rip), %rdi     # 0x2f810
movq %rsp, %rsi
callq 0x11316
movb $0x1, (%rax)
movb $0x1, %al
jmp 0x10fdd
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/memory.cpp
// Function: mark_value(V_VALUE&)
void mark_value(V_VALUE &val)
{
    switch(val.type)
    {
        case T_STRING:
            mark_alive(val.v_string,T_STRING);
            break;
        case T_ARRAY:
            if(mark_alive(val.v_array,T_ARRAY))for(auto &x:*val.v_array)mark_value(x); 
            break;
        case T_OBJECT:
            if(mark_alive(val.v_object,T_OBJECT))for(auto &x:*val.v_object)mark_value(x.second);
            break;
        case T_FUNCTION:
            if(mark_alive(val.v_function.external,T_ARRAY))for(auto &x:*val.v_function.external)mark_value(x);
            if(mark_alive(val.v_function.prototype,T_OBJECT))for(auto &x:*val.v_function.prototype)mark_value(x.second);
            break;
        default:
            break;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl (%rdi), %eax
addl $-0x4, %eax
cmpl $0x4, %eax
ja 0x110fe
movq %rdi, %rbx
leaq 0xf866(%rip), %rcx      # 0x20878
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x8(%rbx), %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x10f86
movq 0x8(%rbx), %rdi
callq 0x10f86
testb %al, %al
je 0x110fe
movq 0x8(%rbx), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0x110fe
leaq 0x40(%rbx), %rdi
callq 0x10ff5
movq %rbx, %rdi
callq 0x61a0
movq %rax, %rbx
cmpq %r14, %rax
jne 0x1104f
jmp 0x110fe
movq 0x8(%rbx), %rdi
callq 0x10f86
testb %al, %al
je 0x110fe
movq 0x8(%rbx), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r14
cmpq %r14, %rbx
je 0x110fe
movq %rbx, %rdi
callq 0x10ff5
addq $0x20, %rbx
jmp 0x11089
movq 0x10(%rbx), %rdi
callq 0x10f86
testb %al, %al
je 0x110c7
movq 0x10(%rbx), %rax
movq (%rax), %r14
movq 0x8(%rax), %r15
cmpq %r15, %r14
je 0x110c7
movq %r14, %rdi
callq 0x10ff5
addq $0x20, %r14
jmp 0x110b4
movq 0x18(%rbx), %rdi
callq 0x10f86
testb %al, %al
je 0x110fe
movq 0x18(%rbx), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0x110fe
leaq 0x40(%rbx), %rdi
callq 0x10ff5
movq %rbx, %rdi
callq 0x61a0
movq %rax, %rbx
cmpq %r14, %rax
jne 0x110e5
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/memory.cpp
// Function: sweep()
void sweep()
{
    // re-calculate total size
    total_size=0;
    for(decltype(memory_table)::iterator next=memory_table.begin(),iter;next!=memory_table.end();)
    {
        iter=next++;
        if(iter->second.alive)
        {
            total_size+=iter->second.size;
            continue;
        }
        switch(iter->second.type)
        {
            case T_STRING:
                delete reinterpret_cast<STRING_TYPE>(iter->first);
                break;
            case T_ARRAY:
                delete reinterpret_cast<ARRAY_TYPE>(iter->first);
                break;
            case T_OBJECT:
                delete reinterpret_cast<OBJECT_TYPE>(iter->first);
                break;
            default:
                break;
        }
        memory_table.erase(iter);
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq $0x0, 0x1e68f(%rip) # 0x2f840
movq 0x1e670(%rip), %r14     # 0x2f828
leaq 0x1e659(%rip), %r13     # 0x2f818
cmpq %r13, %r14
je 0x11288
leaq 0x1e641(%rip), %rbx     # 0x2f810
movq %r14, %rdi
callq 0x61a0
movq %rax, %r15
cmpb $0x1, 0x28(%r14)
jne 0x111f1
movq 0x30(%r14), %rax
addq %rax, 0x1e654(%rip)     # 0x2f840
jmp 0x1127c
movl 0x38(%r14), %eax
cmpl $0x6, %eax
je 0x11253
cmpl $0x5, %eax
je 0x1122d
cmpl $0x4, %eax
jne 0x11271
movq 0x20(%r14), %r12
testq %r12, %r12
je 0x11226
movq (%r12), %rdi
leaq 0x10(%r12), %rax
cmpq %rax, %rdi
je 0x11226
movq (%rax), %rsi
incq %rsi
callq 0x6230
movl $0x20, %esi
jmp 0x11269
movq 0x20(%r14), %r12
testq %r12, %r12
je 0x1124c
movq (%r12), %rdi
testq %rdi, %rdi
je 0x1124c
movq 0x10(%r12), %rsi
subq %rdi, %rsi
callq 0x6230
movl $0x18, %esi
jmp 0x11269
movq 0x20(%r14), %r12
testq %r12, %r12
je 0x11264
movq %r12, %rdi
callq 0x7b0a
movl $0x30, %esi
movq %r12, %rdi
callq 0x6230
movq %rbx, %rdi
movq %r14, %rsi
callq 0x117d4
movq %r15, %r14
cmpq %r13, %r15
jne 0x111cf
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/ast_fill.cpp
// Function: AST_ForStatement::fill(Symbol*)
DEF_AST_METHOD(ForStatement,AST_FILL)
{
    ENTRY_SCOPE(FOR);
    FILLAST(init);
    FILLAST(expr);
    FILLAST(loopExpr);
    FILLAST(statement);
    EXIT_SCOPE();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x48, %edi
callq 0x6220
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
movl $0x2, %edx
callq 0xd26c
leaq 0x18(%rsp), %r15
movq %r14, -0x8(%r15)
movq %rbx, (%r15)
movq $0x0, 0x8(%rsp)
leaq 0x1d896(%rip), %rdi     # 0x2f688
leaq 0x10(%rsp), %rsi
callq 0x123e8
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
movq 0x8(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x10(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x18(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x20(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xd4ec
movq %rbx, %rdi
callq 0xd432
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
jmp 0x11e83
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x6230
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/ast_fill.cpp
// Function: AST_DoStatement::fill(Symbol*)
DEF_AST_METHOD(DoStatement,AST_FILL)
{
    ENTRY_SCOPE(DO);
    FILLAST(statement);
    FILLAST(expr);
    EXIT_SCOPE();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x48, %edi
callq 0x6220
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq 0xd26c
leaq 0x18(%rsp), %r15
movq %r14, -0x8(%r15)
movq %rbx, (%r15)
movq $0x0, 0x8(%rsp)
leaq 0x1d7b4(%rip), %rdi     # 0x2f688
leaq 0x10(%rsp), %rsi
callq 0x124ac
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
movq 0x8(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x10(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xd4ec
movq %rbx, %rdi
callq 0xd432
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
jmp 0x11f4b
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x6230
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/ast_fill.cpp
// Function: AST_WhileStatement::fill(Symbol*)
DEF_AST_METHOD(WhileStatement,AST_FILL)
{
    ENTRY_SCOPE(WHILE);
    FILLAST(expr);
    FILLAST(statement);
    EXIT_SCOPE();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x48, %edi
callq 0x6220
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
movl $0x4, %edx
callq 0xd26c
leaq 0x18(%rsp), %r15
movq %r14, -0x8(%r15)
movq %rbx, (%r15)
movq $0x0, 0x8(%rsp)
leaq 0x1d6ec(%rip), %rdi     # 0x2f688
leaq 0x10(%rsp), %rsi
callq 0x12570
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
movq 0x8(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x10(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xd4ec
movq %rbx, %rdi
callq 0xd432
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
jmp 0x12013
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x6230
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/ast_fill.cpp
// Function: AST_SwitchStatement::fill(Symbol*)
DEF_AST_METHOD(SwitchStatement,AST_FILL)
{
    ENTRY_SCOPE(SWITCH);
    FILLAST(expr);
    FILLAST(caseBlock);
    EXIT_SCOPE();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x48, %edi
callq 0x6220
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
movl $0x5, %edx
callq 0xd26c
leaq 0x18(%rsp), %r15
movq %r14, -0x8(%r15)
movq %rbx, (%r15)
movq $0x0, 0x8(%rsp)
leaq 0x1d5e2(%rip), %rdi     # 0x2f688
leaq 0x10(%rsp), %rsi
callq 0x12634
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
movq 0x8(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x10(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xd4ec
movq %rbx, %rdi
callq 0xd432
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
jmp 0x1211d
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x6230
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/ast_fill.cpp
// Function: AST_FunctionExpression::fill(Symbol*)
DEF_AST_METHOD(FunctionExpression,AST_FILL)
{
    ENTRY_SCOPE(FUNCTION);
    if(formalParameterList)FILLAST(formalParameterList);
    FILLAST(block);
    EXIT_SCOPE();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x48, %edi
callq 0x6220
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
movl $0x1, %edx
callq 0xd26c
leaq 0x18(%rsp), %r15
movq %r14, -0x8(%r15)
movq %rbx, (%r15)
movq $0x0, 0x8(%rsp)
leaq 0x1d51a(%rip), %rdi     # 0x2f688
leaq 0x10(%rsp), %rsi
callq 0x126f8
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x1219c
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq 0x10(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xd4ec
movq %rbx, %rdi
callq 0xd432
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
jmp 0x121ea
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x6230
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/ast_fill.cpp
// Function: AST_Program::fill(Symbol*)
DEF_AST_METHOD(Program,AST_FILL)
{
    ENTRY_SCOPE(GLOBAL);
    symbol->insert("system");
    FILLAST(stmtList);
    EXIT_SCOPE();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x48, %edi
callq 0x6220
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0xd26c
leaq 0x18(%rsp), %r15
movq %r14, -0x8(%r15)
movq %rbx, (%r15)
movq $0x0, 0x8(%rsp)
leaq 0x1d437(%rip), %rdi     # 0x2f688
leaq 0x10(%rsp), %rsi
callq 0x127bc
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xe61c(%rip), %rsi      # 0x20899
leaq 0xe61b(%rip), %rdx      # 0x2089f
leaq 0x10(%rsp), %rdi
callq 0xb1b4
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0xd302
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x122b2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6230
movq 0x8(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xd4ec
movq %rbx, %rdi
callq 0xd432
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x1231c
movq 0x20(%rsp), %rsi
incq %rsi
jmp 0x12317
movq %rax, %r14
jmp 0x1231c
movq %rax, %r14
movq %r15, %rdi
callq 0xdbf6
leaq 0x8(%rsp), %rdi
callq 0xdbf6
jmp 0x1231c
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x6230
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::isLiteral()
bool Parser::isLiteral()
{
    return accept(TOKEN_BIN_INTEGER_LITERAL)||
    accept(TOKEN_OCT_INTEGER_LITERAL)||
    accept(TOKEN_DEC_INTEGER_LITERAL)||
    accept(TOKEN_HEX_INTEGER_LITERAL)||
    accept(TOKEN_FLOAT_LITERAL)||
    accept(TOKEN_STRING_LITERAL)||
    accept(TOKEN_BOOL_LITERAL)||
    accept(TOKEN_NULL_LITERAL)||
    accept(TOKEN_IDENTIFIER);

}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
xorl %esi, %esi
callq 0x12884
movb $0x1, %bl
cmpl $0x30, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x31, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x32, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x33, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x36, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2f, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x34, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x35, (%rax)
je 0x12a84
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2e, (%rax)
sete %bl
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::isUnaryOperator()
bool Parser::isUnaryOperator()
{
    return accept("typeof")||
    accept(TOKEN_INCREMENT)||
    accept(TOKEN_DECREMENT)||
    accept(TOKEN_ADD)||
    accept(TOKEN_SUB)||
    accept(TOKEN_BITWISE_NOT)||
    accept(TOKEN_NEGATION);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xddf6(%rip), %rsi      # 0x208a0
leaq 0xddf5(%rip), %rdx      # 0x208a6
movq %rsp, %rbx
movq %rbx, %rdi
callq 0xb1b4
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x129a2
movb $0x1, %bl
testb %al, %al
jne 0x12b2a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2, (%rax)
je 0x12b2a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x5, (%rax)
je 0x12b2a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x4, (%rax)
je 0x12b2a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x7, (%rax)
je 0x12b2a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x1a, (%rax)
je 0x12b2a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x1e, (%rax)
sete %bl
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x12b40
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x12b65
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
movq %rbx, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::isRelationalOperator()
bool Parser::isRelationalOperator()
{
    return accept(TOKEN_LESS)||
    accept(TOKEN_GREATER)||
    accept(TOKEN_LESS_EQUAL)||
    accept(TOKEN_GREATER_EQUAL);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
xorl %esi, %esi
callq 0x12884
movb $0x1, %bl
cmpl $0x27, (%rax)
je 0x12c3f
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x23, (%rax)
je 0x12c3f
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x28, (%rax)
je 0x12c3f
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x24, (%rax)
sete %bl
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::isAssignmentOperator()
bool Parser::isAssignmentOperator()
{
    return accept(TOKEN_ASSIGN)||
    accept(TOKEN_MUL_ASSIGN)||
    accept(TOKEN_DIV_ASSIGN)||
    accept(TOKEN_MOD_ASSIGN)||
    accept(TOKEN_ADD_ASSIGN)||
    accept(TOKEN_SUB_ASSIGN)||
    accept(TOKEN_LEFT_SHIFT_ASSIGN)||
    accept(TOKEN_RIGHT_SHIFT_ASSIGN)||
    accept(TOKEN_BITWISE_AND_ASSIGN)||
    accept(TOKEN_BITWISE_XOR_ASSIGN)||
    accept(TOKEN_BITWISE_OR_ASSIGN);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
xorl %esi, %esi
callq 0x12884
movb $0x1, %bl
cmpl $0x20, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x8, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0xa, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0xc, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x3, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x6, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x25, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x21, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x18, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x1b, (%rax)
je 0x12d26
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x15, (%rax)
sete %bl
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::PrefixExpression()
AST_PTR Parser::PrefixExpression()
{
    if(isUnaryOperator())
    {
        DEF_AST_RET(PrefixExpression);
        ret->optr=Literal();
        ret->expr=PrefixExpression();
        RETURN_PTR;
    }
    else return PostfixExpression();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
movq %rsi, %rdi
callq 0x12a8e
testb %al, %al
je 0x12ee7
movl $0x18, %edi
callq 0x6220
movq %rax, %r14
leaq 0x1b834(%rip), %r12     # 0x2e6b8
addq $0x10, %r12
movq %r12, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rax)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x136fc
movq %rsp, %rdi
movq (%rdi), %rax
movq %rax, 0x10(%r14)
movq %r15, %rsi
callq 0x12e56
movq %r14, %rax
addq $0x8, %rax
movq (%rsp), %rcx
movq $0x0, (%rsp)
movq (%rax), %rdi
movq %rcx, (%rax)
testq %rdi, %rdi
je 0x12ee2
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x12ee2
movq (%rdi), %rax
callq *0x28(%rax)
movq %r14, (%rbx)
jmp 0x12ef2
movq %rbx, %rdi
movq %r15, %rsi
callq 0x150ec
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%r14), %r12
jmp 0x12f0c
movq %rax, %rbx
movq %r14, %rdi
callq *0x28(%r12)
movq %rbx, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::OperationList(bool (Parser::*)(), std::unique_ptr<AST, std::default_delete<AST>> (Parser::*)())
AST_PTR Parser::OperationList(PARSER_BOOL_FUNC bool_func,PARSER_AST_FUNC ast_func)
{
    DEF_AST_RET(OperationList);
    do
    {
        ret->nodes.push_back(Operation(ast_func));
    }while((this->*bool_func)());
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, 0x20(%rsp)
movq %r8, %r15
movq %rcx, %r12
movq %rdx, %rbp
movq %rsi, %r13
movq %rdi, 0x18(%rsp)
movl $0x20, %edi
callq 0x6220
leaq 0x1b2ef(%rip), %rcx     # 0x2e240
addq $0x10, %rcx
movq %rcx, (%rax)
leaq 0x8(%rax), %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rax)
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rax)
addq %r13, %r12
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
movq 0x20(%rsp), %rcx
callq 0x151c2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x18748
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x12fa6
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbp, %rax
testb $0x1, %bpl
je 0x12fb8
movq (%r12), %rax
movq -0x1(%rax,%rbp), %rax
movq %r12, %rdi
callq *%rax
testb %al, %al
jne 0x12f78
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rax, (%rcx)
movq %rcx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x12ff7
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x12ffa
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x12ffa
movq %rax, %rbx
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::AssignmentExpression()
AST_PTR Parser::AssignmentExpression()
{
    int status=tokenStatus();
    try
    {
        AST_PTR expr=LeftHandSideExpression();
        if(isAssignmentOperator())
        {
            DEF_AST_RET(AssignmentExpression);
            ret->expr=move(expr);
            ret->assignOptr=Literal();
            ret->assignExpr=AssignmentExpression();
            RETURN_PTR;
        }
    }
    catch(Exception){}
    tokenStatus(status);
    return ConditionalExpression();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x20(%rsi), %ebp
leaq 0x18(%rsp), %rdi
callq 0x1393a
movq %r14, %rdi
callq 0x12c72
testb %al, %al
je 0x1387b
movl $0x20, %edi
callq 0x6220
movq %rax, %r12
leaq 0x1b028(%rip), %r13     # 0x2e818
addq $0x10, %r13
movq %r13, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x18(%rsp)
movq %rax, 0x8(%r12)
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x136fc
leaq 0x10(%rsp), %rdi
movq (%rdi), %rax
movq %rax, 0x10(%r12)
movq %r14, %rsi
callq 0x137a8
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq 0x18(%r12), %rdi
movq %rax, 0x18(%r12)
testq %rdi, %rdi
je 0x13866
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x13866
movq (%rdi), %rax
callq *0x28(%rax)
movq %r12, (%rbx)
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1389a
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x1389a
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1388b
movq (%rdi), %rax
callq *0x28(%rax)
movl %ebp, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x139a6
movq %rbx, %rax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdx, 0x8(%rsp)
movq %rax, %r15
movq (%r12), %r13
jmp 0x138c5
movq %rdx, 0x8(%rsp)
movq %rax, %r15
movq %r12, %rdi
callq *0x28(%r13)
jmp 0x138d8
jmp 0x138d0
movq %rdx, 0x8(%rsp)
movq %rax, %r15
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x138f2
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x138f2
movq %rdx, 0x8(%rsp)
movq %rax, %r15
cmpl $0x1, 0x8(%rsp)
jne 0x1392a
movq %r15, %rdi
callq 0x6300
leaq 0x18(%rsp), %rdi
movq %rax, %rsi
callq 0x17f4c
movq %r15, %rdi
callq 0x6120
leaq 0x18(%rsp), %rdi
callq 0x10a40
callq 0x6420
jmp 0x1388b
movq %r15, %rdi
callq 0x6450
movq %rax, %rdi
callq 0x79b7
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ConditionalExpression()
AST_PTR Parser::ConditionalExpression()
{
    AST_PTR expr=LogicalORExpression();
    if(acceptEat(TOKEN_QUESTIONMARK))
    {
        DEF_AST_RET(ConditionalExpression);
        ret->expr=move(expr);
        ret->trueExpr=AssignmentExpression();
        if(!acceptEat(TOKEN_COLON))PARSER_ERROR("excepted ':' for conditional expression");
        ret->falseExpr=AssignmentExpression();
        RETURN_PTR;
    }
    else return expr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r15
movq %rdi, %r14
leaq 0x8(%rsp), %rdi
callq 0x13636
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2d, (%rax)
jne 0x13a76
incl 0x20(%r15)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1add3(%rip), %rax     # 0x2e7c0
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rbx)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq %rax, 0x8(%rbx)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x137a8
movq 0x10(%rsp), %rax
movq %rax, 0x10(%rbx)
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2c, (%rax)
jne 0x13a8e
incl 0x20(%r15)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x137a8
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq 0x18(%rbx), %rdi
movq %rax, 0x18(%rbx)
testq %rdi, %rdi
je 0x13a7b
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x13a7b
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x13a7b
movq 0x8(%rsp), %rbx
movq %rbx, (%r14)
movq %r14, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xcf5d(%rip), %rsi      # 0x20a16
leaq 0xcf7d(%rip), %rdx      # 0x20a3d
leaq 0x10(%rsp), %rdi
callq 0xb1b4
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x1a152(%rip), %rsi     # 0x2dc38
leaq -0x30ad(%rip), %rdx     # 0x10a40
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x13b0f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x13b1b
jmp 0x13b2c
jmp 0x13b18
movq %rax, %r15
movq %r14, %rdi
callq 0x61c0
jmp 0x13b2c
jmp 0x13b29
jmp 0x13b29
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x13b3c
jmp 0x13b39
movq %rax, %r15
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13b4c
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ObjectLiteral()
AST_PTR Parser::ObjectLiteral()
{
    if(!acceptEat(TOKEN_LEFT_BARCKET))PARSER_ERROR("exception a object literal start with '{'");
    DEF_AST_RET(ObjectLiteral);
    while(!accept(TOKEN_RIGHT_BARCKET))
    {
        ret->nodes.push_back(PropertyNameAndValue());
        if(!acceptEat(TOKEN_COMMA)&&!accept(TOKEN_RIGHT_BARCKET))PARSER_ERROR("excepted a '}' after object element");
    }
    eatToken();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %r15
movq %rsi, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x12, (%rax)
jne 0x13f03
incl 0x20(%r14)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1a283(%rip), %rax     # 0x2e088
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x18(%rbx)
leaq 0x8(%rsp), %r13
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x13, (%rax)
je 0x13eea
movq %r13, %rdi
movq %r14, %rsi
callq 0x13ff6
movq %r12, %rdi
movq %r13, %rsi
callq 0x18748
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13e5d
movq (%rdi), %rax
callq *0x28(%rax)
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2a, (%rax)
jne 0x13e72
incl 0x20(%r14)
jmp 0x13e24
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x13, (%rax)
je 0x13e24
movl $0x70, %edi
callq 0x6140
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r14
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xca71(%rip), %rsi      # 0x2091d
leaq 0xca8d(%rip), %rdx      # 0x20940
leaq 0x8(%rsp), %rdi
callq 0xb1b4
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x19d5f(%rip), %rsi     # 0x2dc38
leaq -0x34a0(%rip), %rdx     # 0x10a40
movq %r15, %rdi
callq 0x6440
jmp 0x13f69
incl 0x20(%r14)
movq %rbx, (%r15)
movq %r15, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xc9c6(%rip), %rsi      # 0x208f3
leaq 0xc9e8(%rip), %rdx      # 0x2091c
leaq 0x8(%rsp), %rdi
callq 0xb1b4
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x19cde(%rip), %rsi     # 0x2dc38
leaq -0x3521(%rip), %rdx     # 0x10a40
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13f83
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x13f8f
jmp 0x13fee
jmp 0x13f8c
movq %rax, %r14
movq %rbx, %rdi
callq 0x61c0
jmp 0x13fee
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x13fb3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x13fbf
jmp 0x13fe5
jmp 0x13fbc
movq %rax, %r14
movq %r15, %rdi
callq 0x61c0
jmp 0x13fe5
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13fe5
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x13fe5
jmp 0x13fe2
jmp 0x13fe2
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::PropertyNameAndValue()
AST_PTR Parser::PropertyNameAndValue()
{
    if(!accept(TOKEN_STRING_LITERAL)&&!accept(TOKEN_IDENTIFIER))PARSER_ERROR("exception a identifier or string literal");
    DEF_AST_RET(PropertyNameAndValue);
    ret->identifier=Literal();
    if(!acceptEat(TOKEN_COLON))PARSER_ERROR("exception a ':'");
    ret->assignExpr=AssignmentExpression();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r12
movq %rdi, %r14
movq %rsi, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2f, (%rax)
je 0x1402a
movq %r12, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2e, (%rax)
jne 0x1412a
movl $0x18, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1a46a(%rip), %rax     # 0x2e4a8
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x136fc
movq %rbx, %rax
addq $0x8, %rax
movq (%rsp), %rcx
movq %rcx, (%rax)
movq %r12, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2c, (%rax)
jne 0x140c5
incl 0x20(%r12)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x137a8
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x140b2
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x140b2
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %r15
movq %r12, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r14
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xc87a(%rip), %rsi      # 0x2096a
leaq 0xc882(%rip), %rdx      # 0x20979
movq %rsp, %rdi
callq 0xb1b4
movb $0x1, %bpl
movq %rsp, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x19b1f(%rip), %rsi     # 0x2dc38
leaq -0x36e0(%rip), %rdx     # 0x10a40
movq %r15, %rdi
callq 0x6440
jmp 0x1418c
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r12, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xc7ed(%rip), %rsi      # 0x20941
leaq 0xc80e(%rip), %rdx      # 0x20969
movq %rsp, %rdi
callq 0xb1b4
movb $0x1, %bpl
movq %rsp, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x19abb(%rip), %rsi     # 0x2dc38
leaq -0x3744(%rip), %rdx     # 0x10a40
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x141a5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x141d3
jmp 0x141fa
jmp 0x141d0
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x141c7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x141e0
jmp 0x141f1
jmp 0x141dd
movq %rax, %r14
movq %rbx, %rdi
callq 0x61c0
jmp 0x141fa
movq %rax, %r14
movq %r15, %rdi
callq 0x61c0
jmp 0x141f1
jmp 0x141ee
jmp 0x141ee
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::Expression()
AST_PTR Parser::Expression()
{
    AST_PTR expr=AssignmentExpression();
    if(acceptEat(TOKEN_COMMA))
    {
        DEF_AST_RET(Expression);
        ret->nodes.push_back(move(expr));
        do ret->nodes.push_back(AssignmentExpression()); while(acceptEat(TOKEN_COMMA));
        RETURN_PTR;
    }
    else return expr;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r15
movq %rdi, %rbx
movq %rsp, %rdi
callq 0x137a8
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2a, (%rax)
jne 0x144e3
incl 0x20(%r15)
movl $0x20, %edi
callq 0x6220
movq %rax, %r14
leaq 0x19c66(%rip), %rax     # 0x2e0e0
addq $0x10, %rax
movq %rax, (%r14)
movq %r14, %r12
addq $0x8, %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r14)
movq $0x0, 0x18(%r14)
movq %rsp, %rsi
movq %r12, %rdi
callq 0x18748
leaq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
callq 0x137a8
movq %r12, %rdi
movq %r13, %rsi
callq 0x18748
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x144ce
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2a, (%rax)
jne 0x144ec
incl 0x20(%r15)
jmp 0x144a8
movq (%rsp), %rax
movq %rax, (%rbx)
jmp 0x144fe
movq %r14, (%rbx)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x144fe
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x1452f
jmp 0x14513
movq %rax, %rbx
jmp 0x1453b
jmp 0x1452f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x14532
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14532
movq %rax, %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1454a
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::MemberPartExpression()
AST_PTR Parser::MemberPartExpression()
{
    if(!acceptEat(TOKEN_LEFT_SQUARE_BARCKET))return nullptr;
    DEF_AST_RET(MemberPartExpression);
    ret->expr=Expression();
    if(!acceptEat(TOKEN_RIGHT_SQUARE_BARCKET))PARSER_ERROR("excepted ']'");
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
xorl %ebx, %ebx
movq %rsi, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x10, (%rax)
jne 0x145d1
incl 0x20(%r15)
movl $0x10, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x19f73(%rip), %rax     # 0x2e500
addq $0x10, %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x14434
movq (%rsp), %rax
movq 0x8(%rbx), %rdi
movq %rax, 0x8(%rbx)
testq %rdi, %rdi
je 0x145be
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x11, (%rax)
jne 0x145e4
incl 0x20(%r15)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xc3b7(%rip), %rsi      # 0x209c6
leaq 0xc3bc(%rip), %rdx      # 0x209d2
movq %rsp, %rdi
callq 0xb1b4
movb $0x1, %bpl
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x19600(%rip), %rsi     # 0x2dc38
leaq -0x3bff(%rip), %rdx     # 0x10a40
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x14660
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x1466c
jmp 0x1467b
jmp 0x14669
movq %rax, %r15
movq %r14, %rdi
callq 0x61c0
jmp 0x1467b
jmp 0x14678
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::MemberPartIdentifer()
AST_PTR Parser::MemberPartIdentifer()
{
    if(!acceptEat(TOKEN_DOT))return nullptr;
    if(!accept(TOKEN_IDENTIFIER))PARSER_ERROR("excepted a identifier after '.'");
    DEF_AST_RET(MemberPartIdentifer);
    ret->identifer=Literal();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
xorl %r15d, %r15d
movq %rsi, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2b, (%rax)
jne 0x14709
incl 0x20(%r14)
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2e, (%rax)
jne 0x1471a
movl $0x10, %edi
callq 0x6220
movq %rax, %r15
leaq 0x19e83(%rip), %rax     # 0x2e558
addq $0x10, %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x136fc
movq 0x8(%rsp), %rax
movq 0x8(%r15), %rdi
movq %rax, 0x8(%r15)
testq %rdi, %rdi
je 0x14709
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, (%rbx)
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xc28f(%rip), %rsi      # 0x209d3
leaq 0xc2a7(%rip), %rdx      # 0x209f2
leaq 0x8(%rsp), %rdi
callq 0xb1b4
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x194c7(%rip), %rsi     # 0x2dc38
leaq -0x3d38(%rip), %rdx     # 0x10a40
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1479a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x147a6
jmp 0x147bc
jmp 0x147a3
movq %rax, %r14
movq %rbx, %rdi
callq 0x61c0
jmp 0x147bc
movq %rax, %r14
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::MemberExpressionPartList()
AST_PTR Parser::MemberExpressionPartList()
{
    DEF_AST_RET(MemberExpressionPartList);
    while(true)
    {
        AST_PTR part=MemberPartIdentifer();
        if(!part)part=MemberPartExpression();
        if(!part)break;
        ret->nodes.push_back(move(part));
    }
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1994c(%rip), %rax     # 0x2e138
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x18(%rbx)
leaq 0x8(%rsp), %r13
leaq 0x10(%rsp), %rbp
movq %r13, %rdi
movq %r15, %rsi
callq 0x1468c
cmpq $0x0, 0x8(%rsp)
jne 0x14852
movq %rbp, %rdi
movq %r15, %rsi
callq 0x14552
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x1484d
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x1486f
movq %r12, %rdi
movq %r13, %rsi
callq 0x18748
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x14810
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14810
movq %rbx, (%r14)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x14886
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1489e
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x1489e
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::MemberExpression()
AST_PTR Parser::MemberExpression()
{
    AST_PTR expr;
    if(accept("function"))expr=FunctionExpression();
    else expr=PrimaryExpression();
    if(accept(TOKEN_DOT)||accept(TOKEN_LEFT_SQUARE_BARCKET))
    {
        DEF_AST_RET(MemberExpression);
        ret->expr=move(expr);
        ret->exprPart=MemberExpressionPartList();
        RETURN_PTR;
    }
    else return expr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xc121(%rip), %rsi      # 0x209f3
leaq 0xc122(%rip), %rdx      # 0x209fb
movq %rsp, %rdi
callq 0xb1b4
movq %rsp, %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14906
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
movq %rsp, %r15
movq %r15, %rdi
movq %r14, %rsi
testb %bpl, %bpl
je 0x1491b
callq 0x149ee
jmp 0x14920
callq 0x14202
movq (%r15), %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2b, (%rax)
je 0x14941
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x10, (%rax)
jne 0x14991
movl $0x18, %edi
callq 0x6220
movq %rax, %r12
leaq 0x19c5b(%rip), %rax     # 0x2e5b0
addq $0x10, %rax
movq %rax, (%r12)
movq $0x0, 0x10(%r12)
movq %r15, 0x8(%r12)
movq %rsp, %rdi
movq %r14, %rsi
callq 0x147c4
movq (%rsp), %rax
movq 0x10(%r12), %rdi
movq %rax, 0x10(%r12)
testq %rdi, %rdi
je 0x14994
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14994
movq %r15, %r12
movq %r12, (%rbx)
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq (%r12), %rax
movq %r12, %rdi
jmp 0x149e3
jmp 0x149d5
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x149e6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x149e6
movq %rax, %rbx
jmp 0x149e6
movq %rax, %rbx
testq %r15, %r15
je 0x149e6
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ArgumentList()
AST_PTR Parser::ArgumentList()
{
    if(!acceptEat(TOKEN_LEFT_PAREN))return nullptr;
    DEF_AST_RET(ArgumentList);
    while(!accept(TOKEN_RIGHT_PAREN))
    {
        ret->nodes.push_back(AssignmentExpression());
        if(!acceptEat(",")&&!accept(TOKEN_RIGHT_PAREN))PARSER_ERROR("excepted ')'");
    }
    eatToken();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %r14
xorl %ebx, %ebx
movq %rsi, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0xe, (%rax)
jne 0x14d89
incl 0x20(%r15)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x194ef(%rip), %rax     # 0x2e190
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x18(%rbx)
leaq 0x8(%rsp), %r13
leaq 0xb743(%rip), %rbp      # 0x2040a
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0xf, (%rax)
je 0x14d85
movq %r13, %rdi
movq %r15, %rsi
callq 0x137a8
movq %r12, %rdi
movq %r13, %rsi
callq 0x18748
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x14d00
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x17ff6
testb %al, %al
jne 0x14cc7
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0xf, (%rax)
je 0x14cc7
movl $0x70, %edi
callq 0x6140
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r15
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xbcb3(%rip), %rsi      # 0x209fc
leaq 0xbcb8(%rip), %rdx      # 0x20a08
leaq 0x8(%rsp), %rdi
callq 0xb1b4
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x18ec2(%rip), %rsi     # 0x2dc38
leaq -0x433d(%rip), %rdx     # 0x10a40
movq %r14, %rdi
callq 0x6440
incl 0x20(%r15)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x14db8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x14dc4
jmp 0x14de8
jmp 0x14dc1
movq %rax, %r15
movq %r14, %rdi
callq 0x61c0
jmp 0x14de8
movq %rax, %r15
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x14de8
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14de8
jmp 0x14de5
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::CallExpressionPartList()
AST_PTR Parser::CallExpressionPartList()
{
    DEF_AST_RET(CallExpressionPartList);
    while(true)
    {
        AST_PTR part=MemberPartIdentifer();
        if(!part)part=MemberPartExpression();
        if(!part)part=ArgumentList();
        if(!part)break;
        ret->nodes.push_back(move(part));
    }
    if(ret->nodes.size()==0)return nullptr;
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x193c6(%rip), %rax     # 0x2e1e8
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x18(%rbx)
leaq 0x8(%rsp), %r13
leaq 0x10(%rsp), %rbp
movq %r13, %rdi
movq %r15, %rsi
callq 0x1468c
cmpq $0x0, 0x8(%rsp)
jne 0x14eb7
movq %rbp, %rdi
movq %r15, %rsi
callq 0x14552
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x14e83
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rax
testq %rax, %rax
jne 0x14eb7
movq %rbp, %rdi
movq %r15, %rsi
callq 0x14c60
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x14eb2
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x14edb
movq %r12, %rdi
movq %r13, %rsi
callq 0x18748
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x14e46
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14e46
movq 0x10(%rbx), %rax
cmpq 0x8(%rbx), %rax
jne 0x14ef0
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
xorl %ebx, %ebx
movq %rbx, (%r14)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x14f09
jmp 0x14f09
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x14f21
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14f21
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::CallExpression(std::unique_ptr<AST, std::default_delete<AST>>&&)
AST_PTR Parser::CallExpression(AST_PTR &&m)
{
    DEF_AST_RET(CallExpression);
    ret->expr=move(m);
    if(!accept(TOKEN_LEFT_PAREN))PARSER_ERROR("excepted '('");
    ret->arguments=ArgumentList();
    ret->exprPart=CallExpressionPartList();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x196ad(%rip), %rax     # 0x2e608
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rbx)
movq (%r12), %rax
movq $0x0, (%r12)
movq %rax, 0x8(%rbx)
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0xe, (%rax)
jne 0x14fdf
movq %rsp, %rdi
movq %r15, %rsi
callq 0x14c60
movq (%rsp), %rax
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x14faa
movq (%rdi), %rax
callq *0x28(%rax)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x14dfa
movq (%rsp), %rax
movq 0x18(%rbx), %rdi
movq %rax, 0x18(%rbx)
testq %rdi, %rdi
je 0x14fcc
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x12884
movq %rax, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xb9ff(%rip), %rsi      # 0x20a09
leaq 0xba04(%rip), %rdx      # 0x20a15
movq %rsp, %rdi
callq 0xb1b4
movb $0x1, %bpl
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7bdc
xorl %ebp, %ebp
leaq 0x18c05(%rip), %rsi     # 0x2dc38
leaq -0x45fa(%rip), %rdx     # 0x10a40
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1505b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
jne 0x15067
jmp 0x15078
jmp 0x15064
movq %rax, %r15
movq %r14, %rdi
callq 0x61c0
jmp 0x15078
jmp 0x15075
jmp 0x15075
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::PostfixExpression()
AST_PTR Parser::PostfixExpression()
{
    AST_PTR expr=LeftHandSideExpression();
    if(accept(TOKEN_INCREMENT)||accept(TOKEN_DECREMENT))
    {
        DEF_AST_RET(PostfixExpression);
        ret->expr=move(expr);
        ret->optr=Literal();
        RETURN_PTR;
    }
    else return expr;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x8(%rsp), %rdi
callq 0x1393a
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x2, (%rax)
je 0x15125
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x5, (%rax)
jne 0x15180
movl $0x18, %edi
callq 0x6220
movq %rax, %r15
leaq 0x19527(%rip), %r12     # 0x2e660
leaq 0x10(%r12), %rax
movq %rax, (%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movq 0x8(%rsp), %rcx
movq %rax, 0x8(%rsp)
movq %rcx, 0x8(%r15)
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x136fc
movq 0x10(%rsp), %rax
movq %rax, 0x10(%r15)
movq 0x8(%rsp), %rdi
movq %r15, (%rbx)
testq %rdi, %rdi
je 0x15188
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x15188
movq 0x8(%rsp), %rax
movq %rax, (%rbx)
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq %r15, %rdi
callq *0x38(%r12)
jmp 0x151a9
jmp 0x151a6
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x151b9
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
nop