LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x38, %rsp
movq %rsi, %r15
movq %rdi, %r14
leaq 0x10(%rsp), %rdi
callq 0x1169e
leaq 0x18(%rsp), %rsi
movl $0x2d, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x11ac8
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1cd85(%rip), %rax     # 0x2e7c8
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rbx)
movq 0x10(%rsp), %rax
andq $0x0, 0x10(%rsp)
movq %rax, 0x8(%rbx)
leaq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x11804
leaq 0x18(%rsp), %rsi
movq (%rsi), %rax
movq %rax, 0x10(%rbx)
movl $0x2c, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x11ade
leaq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x11804
movq 0x18(%rsp), %rax
andq $0x0, 0x18(%rsp)
movq 0x18(%rbx), %rdi
movq %rax, 0x18(%rbx)
testq %rdi, %rdi
je 0x11acd
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x11acd
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x11acd
movq 0x10(%rsp), %rbx
movq %rbx, (%r14)
movq %r14, %rax
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r15
leaq 0xbee9(%rip), %rsi      # 0x1d9e6
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x18(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1c118(%rip), %rsi     # 0x2dc40
leaq -0x2e27(%rip), %rdx     # 0xed08
movq %r14, %rdi
callq 0x6450
movq %rax, %r15
leaq 0x18(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x11b50
jmp 0x11b61
jmp 0x11b4d
movq %rax, %r15
movq %r14, %rdi
callq 0x61d0
jmp 0x11b61
jmp 0x11b5e
jmp 0x11b5e
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x11b71
jmp 0x11b6e
movq %rax, %r15
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x11b81
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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
leaq 0x8(%rsp), %rsi
movl $0x12, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x11f11
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1c273(%rip), %rax     # 0x2e090
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
andq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
pushq $0x13
popq %rbp
leaq 0x8(%rsp), %r13
movq %r14, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x11ef8
movq %r13, %rdi
movq %r14, %rsi
callq 0x11fde
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x11e76
movq (%rdi), %rax
callq *0x28(%rax)
movl $0x2a, 0x8(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x15a2a
testb %al, %al
jne 0x11e3c
movq %r14, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x11e3c
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xba31(%rip), %rsi      # 0x1d8ed
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1bd59(%rip), %rsi     # 0x2dc40
leaq -0x31e6(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
jmp 0x11f6a
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
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xb993(%rip), %rsi      # 0x1d8c3
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1bce5(%rip), %rsi     # 0x2dc40
leaq -0x325a(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x11f83
jmp 0x11fd5
jmp 0x11f80
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x11fd5
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x11fa6
jmp 0x11fcc
jmp 0x11fa3
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x11fcc
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x11fcc
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x11fcc
jmp 0x11fc9
jmp 0x11fc9
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %r14
pushq $0x2f
popq %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x12014
pushq $0x2e
popq %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x1210c
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1c48a(%rip), %rax     # 0x2e4b0
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x11760
movq %rbx, %rax
addq $0x8, %rax
leaq 0x8(%rsp), %rsi
movq (%rsi), %rcx
movq %rcx, (%rax)
movl $0x2c, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x120b1
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x11804
movq 0x8(%rsp), %rax
andq $0x0, 0x8(%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x120a0
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x120a0
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r15
leaq 0xb86a(%rip), %rsi      # 0x1d93a
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1bb45(%rip), %rsi     # 0x2dc40
leaq -0x33fa(%rip), %rdx     # 0xed08
movq %r14, %rdi
callq 0x6450
jmp 0x12165
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xb7e6(%rip), %rsi      # 0x1d911
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1baea(%rip), %rsi     # 0x2dc40
leaq -0x3455(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12194
jmp 0x121bb
jmp 0x12191
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x121a1
jmp 0x121b2
jmp 0x1219e
movq %rax, %r15
movq %rbx, %rdi
callq 0x61d0
jmp 0x121bb
movq %rax, %r15
movq %r14, %rdi
callq 0x61d0
jmp 0x121b2
jmp 0x121af
jmp 0x121af
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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
leaq 0x8(%rsp), %rdi
callq 0x11804
movq %rsp, %rsi
movl $0x2a, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x1249f
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %r14
leaq 0x1bcc4(%rip), %rax     # 0x2e0e8
addq $0x10, %rax
movq %rax, (%r14)
movq %r14, %r12
addq $0x8, %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r14)
andq $0x0, 0x18(%r14)
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x15f76
movq %rsp, %r13
movq %r13, %rdi
movq %r15, %rsi
callq 0x11804
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x12474
movq (%rdi), %rax
callq *0x28(%rax)
movl $0x2a, (%rsp)
movq %r15, %rdi
movq %r13, %rsi
callq 0x15a2a
testb %al, %al
jne 0x1244f
movq %r14, (%rbx)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x124a7
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x124a7
movq 0x8(%rsp), %rax
movq %rax, (%rbx)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x124d7
jmp 0x124bc
movq %rax, %rbx
jmp 0x124e3
jmp 0x124d7
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x124da
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x124da
movq %rax, %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x124f3
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %r14
leaq 0x8(%rsp), %rsi
movl $0x10, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x125da
pushq $0x10
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1bfcf(%rip), %rax     # 0x2e508
addq $0x10, %rax
movq %rax, (%rbx)
andq $0x0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x123dc
movq 0x8(%rsp), %rax
movq 0x8(%rbx), %rdi
movq %rax, 0x8(%rbx)
testq %rdi, %rdi
je 0x1256a
movq (%rdi), %rax
callq *0x28(%rax)
leaq 0x8(%rsp), %rsi
movl $0x11, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
jne 0x125dc
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r15
leaq 0xb3f6(%rip), %rsi      # 0x1d996
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1b675(%rip), %rsi     # 0x2dc40
leaq -0x38ca(%rip), %rdx     # 0xed08
movq %r14, %rdi
callq 0x6450
xorl %ebx, %ebx
movq %rbx, (%r14)
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12606
jmp 0x12615
jmp 0x12603
movq %rax, %r15
movq %r14, %rdi
callq 0x61d0
jmp 0x12615
jmp 0x12612
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/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
leaq 0x8(%rsp), %rsi
movl $0x2b, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x126a3
pushq $0x2e
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x126b7
pushq $0x10
popq %rdi
callq 0x6230
movq %rax, %r15
leaq 0x1bef0(%rip), %rax     # 0x2e560
addq $0x10, %rax
movq %rax, (%r15)
andq $0x0, 0x8(%r15)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x11760
movq 0x8(%rsp), %rax
movq 0x8(%r15), %rdi
movq %rax, 0x8(%r15)
testq %rdi, %rdi
je 0x126a6
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x126a6
xorl %r15d, %r15d
movq %r15, (%rbx)
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xb2cd(%rip), %rsi      # 0x1d9a3
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1b53f(%rip), %rsi     # 0x2dc40
leaq -0x3a00(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12729
jmp 0x1273f
jmp 0x12726
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x1273f
movq %rax, %r14
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1b9d2(%rip), %rax     # 0x2e140
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
andq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %r13
leaq 0x10(%rsp), %rbp
movq %r13, %rdi
movq %r15, %rsi
callq 0x12626
cmpq $0x0, 0x8(%rsp)
jne 0x127d1
movq %rbp, %rdi
movq %r15, %rsi
callq 0x124fc
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x127cc
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x127ee
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1278f
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x1278f
movq %rbx, (%r14)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x12805
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1281d
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x1281d
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/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 $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0xb17c(%rip), %rsi      # 0x1d9c3
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
testb %bpl, %bpl
je 0x12888
callq 0x12952
jmp 0x1288d
callq 0x121c4
movq (%r15), %r15
pushq $0x2b
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x128b2
pushq $0x10
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x12900
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %r12
leaq 0x1bcf4(%rip), %rax     # 0x2e5b8
addq $0x10, %rax
movq %rax, (%r12)
andq $0x0, 0x10(%r12)
movq %r15, 0x8(%r12)
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x12748
movq 0x10(%rsp), %rax
movq 0x10(%r12), %rdi
movq %rax, 0x10(%r12)
testq %rdi, %rdi
je 0x12903
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x12903
movq %r15, %r12
movq %r12, (%rbx)
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq (%r12), %rax
movq %r12, %rdi
jmp 0x12946
jmp 0x12938
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x6130
jmp 0x12949
movq %rax, %rbx
jmp 0x12949
movq %rax, %rbx
testq %r15, %r15
je 0x12949
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::FunctionExpression()
AST_PTR Parser::FunctionExpression()
{
    if(!acceptEat("function"))PARSER_ERROR("excepted a 'function'");
    if(!acceptEat(TOKEN_LEFT_PAREN))PARSER_ERROR("excepted a '('");
    DEF_AST_RET(FunctionExpression);
    ret->formalParameterList=FormalParameterList();
    if(!acceptEat(TOKEN_RIGHT_PAREN))PARSER_ERROR("excepted a ')'");
    ret->block=Block();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0xb05a(%rip), %rsi      # 0x1d9c3
movq %r14, %rdi
callq 0x15cd2
testb %al, %al
je 0x12a1f
leaq 0x8(%rsp), %rsi
movl $0xe, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x12a7d
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1c1ea(%rip), %rax     # 0x2eb90
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x1567e
movq %rbx, %rax
addq $0x8, %rax
leaq 0x8(%rsp), %rsi
movq (%rsi), %rcx
movq %rcx, (%rax)
movl $0xf, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x12ad8
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x1319e
movq 0x8(%rsp), %rax
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x12a0e
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r15)
movq %r15, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xb180(%rip), %rsi      # 0x1dbbe
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1b1d7(%rip), %rsi     # 0x2dc40
leaq -0x3d68(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
jmp 0x12b31
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xb03d(%rip), %rsi      # 0x1dad9
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1b179(%rip), %rsi     # 0x2dc40
leaq -0x3dc6(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
jmp 0x12b31
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xae53(%rip), %rsi      # 0x1d94a
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1b11e(%rip), %rsi     # 0x2dc40
leaq -0x3e21(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12b64
jmp 0x12b84
jmp 0x12b61
jmp 0x12b4b
jmp 0x12b70
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12b73
jmp 0x12b8d
jmp 0x12b70
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x12b84
jmp 0x12b70
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x12b8d
jmp 0x12b81
jmp 0x12b81
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 $0x38, %rsp
movq %rsi, %r15
movq %rdi, %r14
leaq 0x18(%rsp), %rsi
movl $0xe, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x12cb1
pushq $0x20
popq %rdi
callq 0x6230
leaq 0x1b5c4(%rip), %rcx     # 0x2e198
addq $0x10, %rcx
movq %rcx, (%rax)
leaq 0x8(%rax), %r12
xorps %xmm0, %xmm0
andq $0x0, 0x18(%rax)
movq %rax, 0x10(%rsp)
movups %xmm0, 0x8(%rax)
pushq $0xf
popq %rbp
leaq 0x18(%rsp), %r13
leaq 0xa7db(%rip), %rbx      # 0x1d3da
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x12cb5
movq %r13, %rdi
movq %r15, %rsi
callq 0x11804
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x12c39
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x15a40
testb %al, %al
jne 0x12bff
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x12bff
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %rbx
leaq 0xad55(%rip), %rsi      # 0x1d9cc
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x18(%rsp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1af9e(%rip), %rsi     # 0x2dc40
leaq -0x3fa1(%rip), %rdx     # 0xed08
movq %r14, %rdi
callq 0x6450
xorl %eax, %eax
jmp 0x12cbe
incl 0x20(%r15)
movq 0x10(%rsp), %rax
movq %rax, (%r14)
movq %r14, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12cec
jmp 0x12d10
jmp 0x12ce9
movq %rax, %rbx
movq %r14, %rdi
callq 0x61d0
jmp 0x12d10
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x12d10
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x12d10
jmp 0x12d0d
movq %rax, %rbx
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1b4a6(%rip), %rax     # 0x2e1f0
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
andq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %r13
leaq 0x10(%rsp), %rbp
movq %r13, %rdi
movq %r15, %rsi
callq 0x12626
cmpq $0x0, 0x8(%rsp)
jne 0x12ddc
movq %rbp, %rdi
movq %r15, %rsi
callq 0x124fc
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x12da8
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rax
testq %rax, %rax
jne 0x12ddc
movq %rbp, %rdi
movq %r15, %rsi
callq 0x12b96
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x12dd7
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x12e00
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x12d6b
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x12d6b
movq 0x10(%rbx), %rax
cmpq 0x8(%rbx), %rax
jne 0x12e15
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 0x12e2e
jmp 0x12e2e
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x12e46
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x12e46
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/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 $0x30, %rsp
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1b791(%rip), %rax     # 0x2e610
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
andq $0x0, 0x18(%rbx)
movq %r12, %rsi
callq 0x15d30
pushq $0xe
popq %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x12f0c
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x12b96
movq 0x10(%rsp), %rax
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x12ed4
movq (%rdi), %rax
callq *0x28(%rax)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x12d24
movq 0x10(%rsp), %rax
movq 0x18(%rbx), %rdi
movq %rax, 0x18(%rbx)
testq %rdi, %rdi
je 0x12ef9
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r15
leaq 0xaaae(%rip), %rsi      # 0x1d9d9
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1acea(%rip), %rsi     # 0x2dc40
leaq -0x4255(%rip), %rdx     # 0xed08
movq %r14, %rdi
callq 0x6450
movq %rax, %r15
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x12f7e
jmp 0x12f8f
jmp 0x12f7b
movq %rax, %r15
movq %r14, %rdi
callq 0x61d0
jmp 0x12f8f
jmp 0x12f8c
jmp 0x12f8c
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/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 0x1198e
pushq $0x2
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x1303f
pushq $0x5
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x13098
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %r15
leaq 0x1b617(%rip), %r12     # 0x2e668
leaq 0x10(%r12), %rax
movq %rax, (%r15)
andq $0x0, 0x10(%r15)
movq 0x8(%rsp), %rax
andq $0x0, 0x8(%rsp)
movq %rax, 0x8(%r15)
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x11760
movq 0x10(%rsp), %rax
movq %rax, 0x10(%r15)
movq 0x8(%rsp), %rdi
movq %r15, (%rbx)
testq %rdi, %rdi
je 0x130a0
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x130a0
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 0x130c1
jmp 0x130be
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x130d1
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::Operation(std::unique_ptr<AST, std::default_delete<AST>> (Parser::*)())
AST_PTR Parser::Operation(PARSER_AST_FUNC ast_func)
{
    DEF_AST_RET(BinaryOperationExpression);
    ret->optr=Literal();
    ret->expr=(this->*ast_func)();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r13
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1b615(%rip), %rbp     # 0x2e718
addq $0x10, %rbp
movq %rbp, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rax)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x11760
movq (%rsp), %rax
movq %rax, 0x10(%rbx)
addq %r13, %r12
testb $0x1, %r15b
je 0x13136
movq (%r12), %rax
movq -0x1(%rax,%r15), %r15
movq %rsp, %rdi
movq %r12, %rsi
callq *%r15
movq %rbx, %rax
movq (%rsp), %rcx
andq $0x0, (%rsp)
addq $0x8, %rax
movq (%rax), %rdi
movq %rcx, (%rax)
testq %rdi, %rdi
je 0x1316f
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1316f
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq (%rbx), %rbp
jmp 0x1318f
movq %rax, %r14
movq %rbx, %rdi
callq *0x28(%rbp)
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::Block()
AST_PTR Parser::Block()
{
    if(!acceptEat(TOKEN_LEFT_BARCKET))PARSER_ERROR("expected a '{'");
    auto stmtlist=StatementList();
    DEF_AST_RET(Block);
    ret->nodes.swap(((AST_NAME(StatementList)*)stmtlist.get())->nodes);
    if(!acceptEat(TOKEN_RIGHT_BARCKET))Statement();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x10(%rsp), %rsi
movl $0x12, (%rsi)
movq %r12, %rdi
callq 0x15a2a
testb %al, %al
je 0x1326e
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
callq 0x13318
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %r15
leaq 0x1b216(%rip), %rax     # 0x2e400
addq $0x10, %rax
movq %rax, (%r15)
movq %r15, %rdi
addq $0x8, %rdi
andq $0x0, 0x18(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r15)
movq 0x10(%rsp), %r14
leaq 0x8(%r14), %rsi
callq 0x16146
leaq 0x4(%rsp), %rsi
movl $0x13, (%rsi)
movq %r12, %rdi
callq 0x15a2a
testb %al, %al
jne 0x1324d
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x13426
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13247
movq (%rdi), %rax
callq *0x28(%rax)
andq $0x0, 0x8(%rsp)
movq %r15, (%rbx)
testq %r14, %r14
je 0x1325e
movq (%r14), %rax
movq %r14, %rdi
callq *0x28(%rax)
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r12, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xa781(%rip), %rsi      # 0x1da0e
leaq 0x10(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1a988(%rip), %rsi     # 0x2dc40
leaq -0x45b7(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
movq %rax, %r12
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x132e2
jmp 0x13310
jmp 0x132df
jmp 0x132ec
movq %rax, %r12
movq %rbx, %rdi
callq 0x61d0
jmp 0x13310
movq %rax, %r12
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
jmp 0x13302
movq %rax, %r12
movq 0x10(%rsp), %r14
testq %r14, %r14
je 0x13310
movq (%r14), %rax
movq %r14, %rdi
callq *0x28(%rax)
movq %r12, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::StatementList()
AST_PTR Parser::StatementList()
{
    DEF_AST_RET(StatementList);
    int status;
    while(!accept(TOKEN_EOF))
    {
        status=tokenStatus();
        try
        {
            ret->nodes.push_back(Statement());
        }
        catch(Exception)
        {
            tokenStatus(status);
            break;
        }
    }
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rsi, %r15
movq %rdi, (%rsp)
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1b011(%rip), %rax     # 0x2e350
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
andq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
pushq $0x1
popq %rbp
leaq 0x8(%rsp), %r13
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x133f2
movl 0x20(%r15), %r14d
movq %r13, %rdi
movq %r15, %rsi
callq 0x13426
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1335e
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x1335e
movq %rdx, %r13
movq %rax, %r12
jmp 0x133bc
movq %rdx, %r13
movq %rax, %r12
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x133bc
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x1, %r13d
jne 0x13415
movq %r12, %rdi
callq 0x62f0
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x159f0
movq %r12, %rdi
callq 0x6100
movl %r14d, 0x20(%r15)
leaq 0x8(%rsp), %rdi
callq 0xed08
callq 0x6420
movq (%rsp), %rax
movq %rbx, (%rax)
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x13412
movq %rax, %rdi
callq 0x7726
movq %rax, %r12
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r12, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::VariableDeclaration()
AST_PTR Parser::VariableDeclaration()
{
    
    if(!accept(TOKEN_IDENTIFIER))PARSER_ERROR("expected a identifier");
    DEF_AST_RET(VariableDeclaration);
    ret->identifier=Literal();
    if(acceptEat(TOKEN_ASSIGN))ret->assignExpr=AssignmentExpression();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %r14
pushq $0x2e
popq %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x13808
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1b1ab(%rip), %rax     # 0x2e928
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x11760
movq %rbx, %rax
addq $0x8, %rax
leaq 0x8(%rsp), %rsi
movq (%rsi), %rcx
movq %rcx, (%rax)
movl $0x20, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x137f7
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x11804
movq 0x8(%rsp), %rax
andq $0x0, 0x8(%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x137f7
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x137f7
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xa1f6(%rip), %rsi      # 0x1da1d
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1a3ee(%rip), %rsi     # 0x2dc40
leaq -0x4b51(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x1387c
jmp 0x13894
jmp 0x13879
jmp 0x13888
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x13894
jmp 0x13888
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::VariableStatement()
AST_PTR Parser::VariableStatement()
{
    if(!acceptEat("var"))PARSER_ERROR("expected a 'var'");
    DEF_AST_RET(VariableDeclarationList);
    do ret->nodes.push_back(VariableDeclaration());while(acceptEat(TOKEN_COMMA));
    if(!acceptEat(TOKEN_SEMICOLON))PARSER_ERROR("expected a ';'");
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0xa17c(%rip), %rsi      # 0x1da33
movq %r14, %rdi
callq 0x15a9e
testb %al, %al
je 0x1395e
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1aacf(%rip), %rax     # 0x2e3a8
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
andq $0x0, 0x18(%rbx)
leaq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x13746
movq %r12, %rdi
movq %r13, %rsi
callq 0x15f76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1391b
movq (%rdi), %rax
callq *0x28(%rax)
movl $0x2a, 0x8(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x15a2a
testb %al, %al
jne 0x138f5
leaq 0x8(%rsp), %rsi
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x139b9
movq %rbx, (%r15)
movq %r15, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xa0ba(%rip), %rsi      # 0x1da37
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1a298(%rip), %rsi     # 0x2dc40
leaq -0x4ca7(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
jmp 0x13a12
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xa070(%rip), %rsi      # 0x1da48
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1a23d(%rip), %rsi     # 0x2dc40
leaq -0x4d02(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x13a41
jmp 0x13a74
jmp 0x13a3e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x13a4e
jmp 0x13a7d
jmp 0x13a4b
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x13a74
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x13a7d
jmp 0x13a71
jmp 0x13a71
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13a74
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x13a74
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ExpressionStatement()
AST_PTR Parser::ExpressionStatement()
{
    DEF_AST_RET(ExpressionStatement);
    ret->expr=Expression();
    if(!acceptEat(TOKEN_SEMICOLON))PARSER_ERROR("excepted a ';'");
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %r14
pushq $0x10
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1add0(%rip), %rax     # 0x2e878
addq $0x10, %rax
movq %rax, (%rbx)
andq $0x0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x123dc
leaq 0x8(%rsp), %rsi
movq (%rsi), %rax
movq %rax, 0x8(%rbx)
movl $0x29, (%rsi)
movq %r15, %rdi
callq 0x15a2a
testb %al, %al
je 0x13af0
movq %rbx, (%r14)
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r15
leaq 0x9f48(%rip), %rsi      # 0x1da57
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1a106(%rip), %rsi     # 0x2dc40
leaq -0x4e39(%rip), %rdx     # 0xed08
movq %r14, %rdi
callq 0x6450
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x13b62
jmp 0x13b71
jmp 0x13b5f
movq %rax, %r15
movq %r14, %rdi
callq 0x61d0
jmp 0x13b71
jmp 0x13b6e
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6460
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ReturnStatement()
AST_PTR Parser::ReturnStatement()
{
    if(!accept("return"))PARSER_ERROR("excepted a 'return'");
    DEF_AST_RET(ReturnStatement);
    ret->literal=Literal();
    if(!acceptEat(TOKEN_SEMICOLON))
    {
        ret->expr=Expression();
        if(!acceptEat(TOKEN_SEMICOLON))PARSER_ERROR("excepted a ';'");
    }
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0x8fbb(%rip), %rsi      # 0x1d818
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebx
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bl, %bl
je 0x1492d
pushq $0x18
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1a347(%rip), %rax     # 0x2ebe8
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x11760
movq %rbx, %rax
addq $0x8, %rax
leaq 0x8(%rsp), %rsi
movq (%rsi), %rcx
movq %rcx, (%rax)
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
jne 0x1491c
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x123dc
movq 0x8(%rsp), %rax
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x14905
movq (%rdi), %rax
callq *0x28(%rax)
leaq 0x8(%rsp), %rsi
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x14988
movq %rbx, (%r15)
movq %r15, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0x919c(%rip), %rsi      # 0x1dae8
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x192c9(%rip), %rsi     # 0x2dc40
leaq -0x5c76(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
jmp 0x149e1
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0x90b0(%rip), %rsi      # 0x1da57
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1926e(%rip), %rsi     # 0x2dc40
leaq -0x5cd1(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x149fa
jmp 0x14a30
jmp 0x149f7
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x14a30
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x14a21
jmp 0x14a4d
jmp 0x14a1e
jmp 0x14a2d
jmp 0x14a2d
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x14a4d
jmp 0x14a2d
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x14a4d
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
jmp 0x14a4d
movq %rax, %r14
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ContinueStatement()
AST_PTR Parser::ContinueStatement()
{
    if(!accept("continue"))PARSER_ERROR("excepted a 'continue'");
    DEF_AST_RET(ContinueStatement);
    ret->literal=Literal();
    if(!acceptEat(TOKEN_SEMICOLON))PARSER_ERROR("excepted a ';'");
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0x8dbe(%rip), %rsi      # 0x1d82b
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebx
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bl, %bl
je 0x14af5
pushq $0x10
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1a193(%rip), %rax     # 0x2ec40
addq $0x10, %rax
movq %rax, (%rbx)
andq $0x0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x11760
leaq 0x8(%rsp), %rsi
movq (%rsi), %rax
movq %rax, 0x8(%rbx)
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x14b50
movq %rbx, (%r15)
movq %r15, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0x8fe8(%rip), %rsi      # 0x1dafc
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x19101(%rip), %rsi     # 0x2dc40
leaq -0x5e3e(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
jmp 0x14ba9
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0x8ee8(%rip), %rsi      # 0x1da57
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x190a6(%rip), %rsi     # 0x2dc40
leaq -0x5e99(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x14bd8
jmp 0x14bf4
jmp 0x14bd5
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x14be5
jmp 0x14c11
jmp 0x14be2
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x14bf4
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x14c11
jmp 0x14bf1
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x14c11
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
jmp 0x14c11
movq %rax, %r14
movq %r14, %rdi
callq 0x6460
nop
// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::BreakStatement()
AST_PTR Parser::BreakStatement()
{
    if(!accept("break"))PARSER_ERROR("excepted a 'break'");
    DEF_AST_RET(BreakStatement);
    ret->literal=Literal();
    if(!acceptEat(TOKEN_SEMICOLON))PARSER_ERROR("excepted a ';'");
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0x8c0f(%rip), %rsi      # 0x1d840
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebx
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bl, %bl
je 0x14cb9
pushq $0x10
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1a027(%rip), %rax     # 0x2ec98
addq $0x10, %rax
movq %rax, (%rbx)
andq $0x0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x11760
leaq 0x8(%rsp), %rsi
movq (%rsi), %rax
movq %rax, 0x8(%rbx)
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x14d14
movq %rbx, (%r15)
movq %r15, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0x8e3a(%rip), %rsi      # 0x1db12
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x18f3d(%rip), %rsi     # 0x2dc40
leaq -0x6002(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
jmp 0x14d6d
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0x8d24(%rip), %rsi      # 0x1da57
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x18ee2(%rip), %rsi     # 0x2dc40
leaq -0x605d(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x14d9c
jmp 0x14db8
jmp 0x14d99
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x14da9
jmp 0x14dd5
jmp 0x14da6
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x14db8
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x14dd5
jmp 0x14db5
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x14dd5
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6130
jmp 0x14dd5
movq %rax, %r14
movq %r14, %rdi
callq 0x6460
nop