LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/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 $0x78, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x20(%rsi), %r13d
leaq 0x8(%rsp), %rdi
callq 0x13b2e
movq %r14, %rdi
callq 0x12c7a
movl %eax, %ebp
testb %al, %al
je 0x13a7a
movl $0x20, %edi
callq 0x6220
movq %rax, %r15
leaq 0x1ae3e(%rip), %rax     # 0x2e818
addq $0x10, %rax
movq %rax, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x18(%r15)
movq 0x8(%rsp), %rcx
movq %rax, 0x8(%rsp)
movq %rcx, 0x8(%r15)
movq %rsp, %rdi
movq %r14, %rsi
callq 0x138e6
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x10(%r15), %rdi
movq %rax, 0x10(%r15)
testq %rdi, %rdi
je 0x13a27
movq (%rdi), %rax
callq *0x28(%rax)
movq %rsp, %rdi
movq %r14, %rsi
callq 0x13992
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x18(%r15), %rdi
movq %rax, 0x18(%r15)
testq %rdi, %rdi
je 0x13a51
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x13a60
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, (%rbx)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13a73
movq (%rdi), %rax
callq *0x28(%rax)
testb %bpl, %bpl
je 0x13a8a
jmp 0x13a99
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13a8a
movq (%rdi), %rax
callq *0x28(%rax)
movl %r13d, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13ba2
movq %rbx, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x13aad
movq %rdx, %rbp
movq %rax, %r12
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
jmp 0x13ac6
jmp 0x13ac0
movq %rdx, %rbp
movq %rax, %r12
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13ad6
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, 0x8(%rsp)
jmp 0x13ae7
movq %rdx, %rbp
movq %rax, %r12
cmpl $0x1, %ebp
jne 0x13b1d
movq %r12, %rdi
callq 0x6300
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x1852a
movq %r12, %rdi
callq 0x6120
leaq 0x8(%rsp), %rdi
callq 0x10a5c
callq 0x6420
jmp 0x13a8a
movq %r12, %rdi
callq 0x6450
movq %rax, %rdi
callq 0x79c5
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x137f2
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2d, (%rax)
jne 0x13c9f
incl 0x20(%r15)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1abd7(%rip), %rax     # 0x2e7c0
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
xorl %eax, %eax
movq %rax, 0x18(%rbx)
movq 0x8(%rsp), %rcx
movq %rax, 0x8(%rsp)
movq %rcx, 0x8(%rbx)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x13992
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x13c39
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x13c49
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2c, (%rax)
jne 0x13cd0
incl 0x20(%r15)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x13992
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq 0x18(%rbx), %rdi
movq %rax, 0x18(%rbx)
testq %rdi, %rdi
je 0x13c8a
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x13c9a
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
jmp 0x13cb0
movq 0x8(%rsp), %rax
movq %rax, (%r14)
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13cc0
movq (%rdi), %rax
callq *0x28(%rax)
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 0x1288c
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xcd1b(%rip), %rsi      # 0x20a16
leaq 0xcd3b(%rip), %rdx      # 0x20a3d
leaq 0x10(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x19f10(%rip), %rsi     # 0x2dc38
leaq -0x32d3(%rip), %rdx     # 0x10a5c
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x13d5b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x13d5b
jmp 0x13d55
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x13d71
movq %r14, %rdi
callq 0x61c0
jmp 0x13d71
jmp 0x13d6e
jmp 0x13d6e
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x13d81
jmp 0x13d7e
movq %rax, %r15
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x13d91
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0x1288c
cmpl $0x2f, (%rax)
je 0x14290
movq %r12, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2e, (%rax)
jne 0x143a6
movl $0x18, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1a204(%rip), %rax     # 0x2e4a8
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x138e6
movq %rbx, %rax
addq $0x8, %rax
movq (%rsp), %rcx
movq $0x0, (%rsp)
movq (%rax), %rdi
movq %rcx, (%rax)
testq %rdi, %rdi
je 0x142e1
movq (%rdi), %rax
callq *0x28(%rax)
movq %r12, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2c, (%rax)
jne 0x14341
incl 0x20(%r12)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x13992
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x1431f
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1432e
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 0x1288c
movq %rax, %r14
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xc5fe(%rip), %rsi      # 0x2096a
leaq 0xc606(%rip), %rdx      # 0x20979
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x198a3(%rip), %rsi     # 0x2dc38
leaq -0x3940(%rip), %rdx     # 0x10a5c
movq %r15, %rdi
callq 0x6440
jmp 0x14408
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r12, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xc571(%rip), %rsi      # 0x20941
leaq 0xc592(%rip), %rdx      # 0x20969
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x1983f(%rip), %rsi     # 0x2dc38
leaq -0x39a4(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14448
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x14448
jmp 0x14442
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1445d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x1445d
jmp 0x14457
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1447c
movq %rbx, %rdi
callq 0x61c0
jmp 0x1447c
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x14473
movq %r15, %rdi
callq 0x61c0
jmp 0x14473
jmp 0x14470
jmp 0x14470
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 0x13992
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2a, (%rax)
jne 0x1478f
incl 0x20(%r15)
movl $0x20, %edi
callq 0x6220
movq %rax, %r14
leaq 0x199ba(%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 0x18d1e
leaq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
callq 0x13992
movq %r12, %rdi
movq %r13, %rsi
callq 0x18d1e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1477a
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2a, (%rax)
jne 0x147a0
incl 0x20(%r15)
jmp 0x14754
movq (%rsp), %rax
movq %rax, (%rbx)
movq $0x0, (%rsp)
jmp 0x147a3
movq %r14, (%rbx)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x147b2
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x147ec
jmp 0x147c7
movq %rax, %rbx
jmp 0x147f8
jmp 0x147ec
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x147e1
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, 0x8(%rsp)
jmp 0x147ef
movq %rax, %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x28(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14807
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rsi, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x10, (%rax)
jne 0x14897
incl 0x20(%r15)
movl $0x10, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x19cb7(%rip), %rax     # 0x2e500
addq $0x10, %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x146e0
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x8(%rbx), %rdi
movq %rax, 0x8(%rbx)
testq %rdi, %rdi
je 0x14882
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x11, (%rax)
jne 0x148b3
incl 0x20(%r15)
jmp 0x148a0
movq $0x0, (%r14)
xorl %ebx, %ebx
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 0x1288c
movq %rax, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xc0e8(%rip), %rsi      # 0x209c6
leaq 0xc0ed(%rip), %rdx      # 0x209d2
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x19331(%rip), %rsi     # 0x2dc38
leaq -0x3eb2(%rip), %rdx     # 0x10a5c
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x14939
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x14939
jmp 0x14933
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1494d
movq %r14, %rdi
callq 0x61c0
jmp 0x1494d
jmp 0x1494a
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rsi, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2b, (%rax)
jne 0x149e3
incl 0x20(%r14)
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2e, (%rax)
jne 0x149fe
movl $0x10, %edi
callq 0x6220
movq %rax, %r15
leaq 0x19bb4(%rip), %rax     # 0x2e558
addq $0x10, %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x138e6
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq 0x8(%r15), %rdi
movq %rax, 0x8(%r15)
testq %rdi, %rdi
je 0x149ed
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x149ed
movq $0x0, (%rbx)
xorl %r15d, %r15d
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 0x1288c
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xbfab(%rip), %rsi      # 0x209d3
leaq 0xbfc3(%rip), %rdx      # 0x209f2
leaq 0x8(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x191e3(%rip), %rsi     # 0x2dc38
leaq -0x4000(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x14a88
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x14a88
jmp 0x14a82
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x14aa3
movq %rbx, %rdi
callq 0x61c0
jmp 0x14aa3
movq %rax, %r14
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O1/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, 0x10(%rsp)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x19662(%rip), %rax     # 0x2e138
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x18(%rbx)
movq %rsp, %r13
leaq 0x8(%rsp), %rbp
movq %r13, %rdi
movq %r15, %rsi
callq 0x1495e
cmpq $0x0, (%rsp)
jne 0x14b36
movq %rbp, %rdi
movq %r15, %rsi
callq 0x14810
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq (%rsp), %rdi
movq %rax, (%rsp)
testq %rdi, %rdi
je 0x14b36
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %r14
testq %r14, %r14
je 0x14b4a
movq %r12, %rdi
movq %r13, %rsi
callq 0x18d1e
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14b59
movq (%rdi), %rax
callq *0x28(%rax)
testq %r14, %r14
jne 0x14af8
movq 0x10(%rsp), %rax
movq %rbx, (%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x14b77
movq %rax, %r14
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14b89
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, (%rsp)
jmp 0x14b96
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0xbe29(%rip), %rsi      # 0x209f3
leaq 0xbe2a(%rip), %rdx      # 0x209fb
movq %rsp, %rdi
callq 0xb1a2
movq %rsp, %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14bfe
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x14c10
movq %rsp, %rdi
movq %r14, %rsi
callq 0x14cfc
jmp 0x14c1b
movq %rsp, %rdi
movq %r14, %rsi
callq 0x14484
movq (%rsp), %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2b, (%rax)
je 0x14c3d
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x10, (%rax)
jne 0x14c95
movl $0x18, %edi
callq 0x6220
movq %rax, %r12
leaq 0x1995f(%rip), %rax     # 0x2e5b0
addq $0x10, %rax
movq %rax, (%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r12)
movq %r15, 0x8(%r12)
movq %rsp, %rdi
movq %r14, %rsi
callq 0x14aac
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x10(%r12), %rdi
movq %rax, 0x10(%r12)
testq %rdi, %rdi
je 0x14c98
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x14c98
movq %r15, %r12
movq %r12, (%rbx)
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x14cdb
jmp 0x14cdb
movq %rax, %rbx
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
jmp 0x14cde
jmp 0x14ce3
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14cde
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x14cde
movq %rax, %rbx
xorl %r15d, %r15d
jmp 0x14ce6
movq %rax, %rbx
testq %r15, %r15
je 0x14cf4
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rsi, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0xe, (%rax)
jne 0x150b5
incl 0x20(%r15)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x191bf(%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 0xb413(%rip), %rbp      # 0x2040a
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0xf, (%rax)
je 0x150c0
movq %r13, %rdi
movq %r15, %rsi
callq 0x13992
movq %r12, %rdi
movq %r13, %rsi
callq 0x18d1e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x15030
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x185d4
testb %al, %al
jne 0x14ff7
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0xf, (%rax)
je 0x14ff7
movl $0x70, %edi
callq 0x6140
movq %rax, %r14
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r15
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xb983(%rip), %rsi      # 0x209fc
leaq 0xb988(%rip), %rdx      # 0x20a08
leaq 0x8(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x18b92(%rip), %rsi     # 0x2dc38
leaq -0x4651(%rip), %rdx     # 0x10a5c
movq %r14, %rdi
callq 0x6440
movq $0x0, (%r14)
xorl %ebx, %ebx
jmp 0x150c4
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 0x150fd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x150fd
jmp 0x150f7
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1512f
movq %r14, %rdi
callq 0x61c0
jmp 0x1512f
movq %rax, %r15
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1511f
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, 0x8(%rsp)
jmp 0x1512f
jmp 0x1512c
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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, 0x10(%rsp)
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x1907e(%rip), %rax     # 0x2e1e8
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x18(%rbx)
movq %rsp, %r13
leaq 0x8(%rsp), %rbp
movq %r13, %rdi
movq %r15, %rsi
callq 0x1495e
cmpq $0x0, (%rsp)
jne 0x151ca
movq %rbp, %rdi
movq %r15, %rsi
callq 0x14810
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq (%rsp), %rdi
movq %rax, (%rsp)
testq %rdi, %rdi
je 0x151ca
movq (%rdi), %rax
callq *0x28(%rax)
cmpq $0x0, (%rsp)
jne 0x151fd
movq %rbp, %rdi
movq %r15, %rsi
callq 0x14f92
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq (%rsp), %rdi
movq %rax, (%rsp)
testq %rdi, %rdi
je 0x151fd
movq (%rdi), %rax
callq *0x28(%rax)
movq (%rsp), %r14
testq %r14, %r14
je 0x15211
movq %r12, %rdi
movq %r13, %rsi
callq 0x18d1e
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x15220
movq (%rdi), %rax
callq *0x28(%rax)
testq %r14, %r14
jne 0x1518c
movq 0x10(%rbx), %rax
cmpq 0x8(%rbx), %rax
je 0x1523f
movq %rbx, %rax
xorl %ebx, %ebx
movq 0x10(%rsp), %r14
jmp 0x1524d
movq 0x10(%rsp), %r14
movq $0x0, (%r14)
xorl %eax, %eax
movq %rax, (%r14)
testq %rbx, %rbx
je 0x1525e
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x15274
jmp 0x15274
movq %rax, %r14
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x15286
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, (%rsp)
jmp 0x15293
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 0x1933b(%rip), %rax     # 0x2e608
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
xorl %eax, %eax
movq %rax, 0x18(%rbx)
movq (%r12), %rcx
movq %rax, (%r12)
movq %rcx, 0x8(%rbx)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0xe, (%rax)
jne 0x15363
movq %rsp, %rdi
movq %r15, %rsi
callq 0x14f92
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x15326
movq (%rdi), %rax
callq *0x28(%rax)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x15140
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x18(%rbx), %rdi
movq %rax, 0x18(%rbx)
testq %rdi, %rdi
je 0x15350
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 0x1288c
movq %rax, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xb67b(%rip), %rsi      # 0x20a09
leaq 0xb680(%rip), %rdx      # 0x20a15
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x18881(%rip), %rsi     # 0x2dc38
leaq -0x4962(%rip), %rdx     # 0x10a5c
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x153e9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x153e9
jmp 0x153e3
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x153ff
movq %r14, %rdi
callq 0x61c0
jmp 0x153ff
jmp 0x153fc
jmp 0x153fc
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 %rbx
subq $0x10, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq %rsp, %rdi
callq 0x13b2e
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2, (%rax)
je 0x154a7
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x5, (%rax)
jne 0x1550d
movl $0x18, %edi
callq 0x6220
movq %rax, %r15
leaq 0x191a5(%rip), %rax     # 0x2e660
addq $0x10, %rax
movq %rax, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r15)
movq (%rsp), %rax
movq $0x0, (%rsp)
movq %rax, 0x8(%r15)
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x138e6
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq 0x10(%r15), %rdi
movq %rax, 0x10(%r15)
testq %rdi, %rdi
je 0x15508
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, (%rbx)
jmp 0x1551c
movq (%rsp), %rax
movq %rax, (%rbx)
movq $0x0, (%rsp)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1552b
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
jmp 0x1554b
jmp 0x15548
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1555a
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rcx, %r13
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
movl $0x18, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x19181(%rip), %rax     # 0x2e710
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x138e6
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x155cb
movq (%rdi), %rax
callq *0x28(%rax)
addq %r13, %r12
testb $0x1, %r15b
je 0x155dd
movq (%r12), %rax
movq -0x1(%rax,%r15), %r15
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq *%r15
movq %rbx, %rax
addq $0x8, %rax
movq 0x8(%rsp), %rcx
movq $0x0, 0x8(%rsp)
movq (%rax), %rdi
movq %rcx, (%rax)
testq %rdi, %rdi
je 0x1560e
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1561e
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x15634
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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, %r14
movq %rdi, %rbx
movq %rsi, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x12, (%rax)
jne 0x15734
incl 0x20(%r14)
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x157f8
movl $0x20, %edi
callq 0x6220
movq %rax, %r15
leaq 0x18d66(%rip), %rax     # 0x2e3f8
addq $0x10, %rax
movq %rax, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x18(%r15)
movq 0x10(%rsp), %r12
movups 0x10(%r15), %xmm0
movq 0x8(%r12), %rcx
movq %rcx, 0x8(%r15)
movq 0x10(%r12), %rcx
movq %rcx, 0x10(%r15)
movq 0x18(%r12), %rcx
movq %rcx, 0x18(%r15)
movq %rax, 0x8(%r12)
movups %xmm0, 0x10(%r12)
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x13, (%rax)
jne 0x156ec
incl 0x20(%r14)
jmp 0x15712
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x1590e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x15709
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, 0x8(%rsp)
movq %r15, (%rbx)
testq %r12, %r12
je 0x15724
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xb2e0(%rip), %rsi      # 0x20a3e
leaq 0xb2e7(%rip), %rdx      # 0x20a4c
leaq 0x10(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x184ad(%rip), %rsi     # 0x2dc38
leaq -0x4d36(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x157c0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x157c0
jmp 0x157ba
jmp 0x157cf
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x157f0
movq %rbx, %rdi
callq 0x61c0
jmp 0x157f0
movq %rax, %r14
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
jmp 0x157e0
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x157f0
movq (%rdi), %rax
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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, %r14
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x18b28(%rip), %rax     # 0x2e348
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 %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x1, (%rax)
je 0x158db
movl 0x20(%r15), %ebp
movq %r13, %rdi
movq %r15, %rsi
callq 0x1590e
movq %r12, %rdi
movq %r13, %rsi
callq 0x18d1e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1583f
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x1583f
movq %rdx, %r13
movq %rax, %r12
jmp 0x158a5
movq %rdx, %r13
movq %rax, %r12
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1589c
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, 0x8(%rsp)
cmpl $0x1, %r13d
jne 0x158fd
movq %r12, %rdi
callq 0x6300
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x1852a
movq %r12, %rdi
callq 0x6120
movl %ebp, 0x20(%r15)
leaq 0x8(%rsp), %rdi
callq 0x10a5c
callq 0x6420
movq %rbx, (%r14)
movq %r14, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x158fa
movq %rax, %rdi
callq 0x79c5
movq %rax, %r12
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r12, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rsi, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2e, (%rax)
jne 0x15dbc
movl $0x18, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x18c07(%rip), %rax     # 0x2e920
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x138e6
movq %rbx, %rax
addq $0x8, %rax
movq 0x8(%rsp), %rcx
movq $0x0, 0x8(%rsp)
movq (%rax), %rdi
movq %rcx, (%rax)
testq %rdi, %rdi
je 0x15d5a
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x20, (%rax)
jne 0x15dab
incl 0x20(%r15)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x13992
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x15d9b
movq (%rdi), %rax
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x15dab
movq (%rdi), %rax
callq *0x28(%rax)
movq %rbx, (%r14)
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xac67(%rip), %rsi      # 0x20a4d
leaq 0xac75(%rip), %rdx      # 0x20a62
leaq 0x8(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x17e25(%rip), %rsi     # 0x2dc38
leaq -0x53be(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15e48
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x15e48
jmp 0x15e42
jmp 0x15e59
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x15e65
movq %rbx, %rdi
callq 0x61c0
jmp 0x15e65
jmp 0x15e59
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
nop
// File: /workspace/github_cpp_makefile_star2_O1/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 0xabda(%rip), %rsi      # 0x20a63
movq %r14, %rdi
callq 0x18668
testb %al, %al
je 0x15f33
movl $0x20, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x184f3(%rip), %rax     # 0x2e3a0
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 %r13, %rdi
movq %r14, %rsi
callq 0x15ce2
movq %r12, %rdi
movq %r13, %rsi
callq 0x18d1e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x15ef2
movq (%rdi), %rax
callq *0x28(%rax)
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2a, (%rax)
jne 0x15f07
incl 0x20(%r14)
jmp 0x15ecc
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x29, (%rax)
jne 0x15f9b
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 0x1288c
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xab0a(%rip), %rsi      # 0x20a67
leaq 0xab13(%rip), %rdx      # 0x20a77
leaq 0x8(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x17cae(%rip), %rsi     # 0x2dc38
leaq -0x5535(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
jmp 0x16002
movl $0x70, %edi
callq 0x6140
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xaab2(%rip), %rsi      # 0x20a78
leaq 0xaab9(%rip), %rdx      # 0x20a86
leaq 0x8(%rsp), %rdi
callq 0xb1a2
movb $0x1, %bpl
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x17c45(%rip), %rsi     # 0x2dc38
leaq -0x559e(%rip), %rdx     # 0x10a5c
movq %r15, %rdi
callq 0x6440
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x16044
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x16044
jmp 0x1603e
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x16059
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x16059
jmp 0x16053
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1608d
movq %r15, %rdi
callq 0x61c0
jmp 0x1608d
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x16096
movq %rbx, %rdi
callq 0x61c0
jmp 0x16096
jmp 0x1608a
jmp 0x1608a
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1607f
movq (%rdi), %rax
callq *0x28(%rax)
movq $0x0, 0x8(%rsp)
jmp 0x1608d
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %r14
movl $0x10, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x187ac(%rip), %rax     # 0x2e870
addq $0x10, %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rsp, %rdi
movq %r15, %rsi
callq 0x146e0
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x8(%rbx), %rdi
movq %rax, 0x8(%rbx)
testq %rdi, %rdi
je 0x160fd
movq (%rdi), %rax
callq *0x28(%rax)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x29, (%rax)
jne 0x16123
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 0x1288c
movq %rax, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xa939(%rip), %rsi      # 0x20a87
leaq 0xa940(%rip), %rdx      # 0x20a95
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x17ac1(%rip), %rsi     # 0x2dc38
leaq -0x5722(%rip), %rdx     # 0x10a5c
movq %r14, %rdi
callq 0x6440
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x161a9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x161a9
jmp 0x161a3
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x161bd
movq %r14, %rdi
callq 0x61c0
jmp 0x161bd
jmp 0x161ba
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r15, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x961c(%rip), %rsi      # 0x2085b
leaq 0x961d(%rip), %rdx      # 0x20863
movq %rsp, %rdi
callq 0xb1a2
movq %rsp, %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x17273
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bl, %bl
je 0x172ea
movl $0x10, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x179ad(%rip), %rax     # 0x2ec38
addq $0x10, %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rsp, %rdi
movq %r14, %rsi
callq 0x138e6
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x8(%rbx), %rdi
movq %rax, 0x8(%rbx)
testq %rdi, %rdi
je 0x172c4
movq (%rdi), %rax
callq *0x28(%rax)
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x29, (%rax)
jne 0x17348
incl 0x20(%r14)
movq %rbx, (%r15)
movq %r15, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x981b(%rip), %rsi      # 0x20b2c
leaq 0x9829(%rip), %rdx      # 0x20b41
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x16901(%rip), %rsi     # 0x2dc38
leaq -0x68e2(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
jmp 0x173a4
movl $0x70, %edi
callq 0x6140
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x9718(%rip), %rsi      # 0x20a87
leaq 0x971f(%rip), %rdx      # 0x20a95
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x168a3(%rip), %rsi     # 0x2dc38
leaq -0x6940(%rip), %rdx     # 0x10a5c
movq %r15, %rdi
callq 0x6440
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x173e4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x173e4
jmp 0x173de
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x173f9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x173f9
jmp 0x173f3
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1740d
movq %r15, %rdi
callq 0x61c0
jmp 0x1740d
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x17436
movq %rbx, %rdi
callq 0x61c0
jmp 0x17436
jmp 0x1740a
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x17436
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x17436
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x17436
movq %rax, %r14
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r14
movq %rdi, %r15
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x940f(%rip), %rsi      # 0x20870
leaq 0x940d(%rip), %rdx      # 0x20875
movq %rsp, %rdi
callq 0xb1a2
movq %rsp, %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x17495
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bl, %bl
je 0x1750c
movl $0x10, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x177e3(%rip), %rax     # 0x2ec90
addq $0x10, %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rsp, %rdi
movq %r14, %rsi
callq 0x138e6
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x8(%rbx), %rdi
movq %rax, 0x8(%rbx)
testq %rdi, %rdi
je 0x174e6
movq (%rdi), %rax
callq *0x28(%rax)
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x29, (%rax)
jne 0x1756a
incl 0x20(%r14)
movq %rbx, (%r15)
movq %r15, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x70, %edi
callq 0x6140
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x960f(%rip), %rsi      # 0x20b42
leaq 0x961a(%rip), %rdx      # 0x20b54
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x166df(%rip), %rsi     # 0x2dc38
leaq -0x6b04(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
jmp 0x175c6
movl $0x70, %edi
callq 0x6140
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x94f6(%rip), %rsi      # 0x20a87
leaq 0x94fd(%rip), %rdx      # 0x20a95
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x16681(%rip), %rsi     # 0x2dc38
leaq -0x6b62(%rip), %rdx     # 0x10a5c
movq %r15, %rdi
callq 0x6440
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x17606
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x17606
jmp 0x17600
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1761b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x1761b
jmp 0x17615
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1762f
movq %r15, %rdi
callq 0x61c0
jmp 0x1762f
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x17658
movq %rbx, %rdi
callq 0x61c0
jmp 0x17658
jmp 0x1762c
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x17658
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x17658
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x17658
movq %rax, %r14
movq %r14, %rdi
callq 0x6450
// File: /workspace/github_cpp_makefile_star2_O1/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::CaseClause()
AST_PTR Parser::CaseClause()
{
    if(!acceptEat("case"))PARSER_ERROR("expected a 'case'");
    DEF_AST_RET(CaseClause);
    ret->expr=Expression();
    if(!acceptEat(TOKEN_COLON))PARSER_ERROR("expected a ':'");
    ret->stmtList=StatementList();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r12
movq %rdi, %r14
leaq 0x94dc(%rip), %rsi      # 0x20b55
movq %r12, %rdi
callq 0x18790
testb %al, %al
je 0x1772f
movl $0x18, %edi
callq 0x6220
movq %rax, %rbx
leaq 0x173e3(%rip), %rax     # 0x2ea80
addq $0x10, %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x146e0
movq %rbx, %rax
addq $0x8, %rax
movq (%rsp), %rcx
movq $0x0, (%rsp)
movq (%rax), %rdi
movq %rcx, (%rax)
testq %rdi, %rdi
je 0x176da
movq (%rdi), %rax
callq *0x28(%rax)
movq %r12, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x2c, (%rax)
jne 0x17793
incl 0x20(%r12)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x157f8
movq (%rsp), %rax
movq $0x0, (%rsp)
movq 0x10(%rbx), %rdi
movq %rax, 0x10(%rbx)
testq %rdi, %rdi
je 0x1771c
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, %rbx
movq %r12, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x9401(%rip), %rsi      # 0x20b5a
leaq 0x940b(%rip), %rdx      # 0x20b6b
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x164b6(%rip), %rsi     # 0x2dc38
leaq -0x6d2d(%rip), %rdx     # 0x10a5c
movq %rbx, %rdi
callq 0x6440
jmp 0x177f6
movl $0x70, %edi
callq 0x6140
movq %rax, %r15
movq %r12, %rdi
xorl %esi, %esi
callq 0x1288c
movq %rax, %r14
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x93ae(%rip), %rsi      # 0x20b6c
leaq 0x93b5(%rip), %rdx      # 0x20b7a
movq %rsp, %rdi
callq 0xb1a2
movb $0x1, %bpl
movq %rsp, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x7be0
xorl %ebp, %ebp
leaq 0x16451(%rip), %rsi     # 0x2dc38
leaq -0x6d92(%rip), %rdx     # 0x10a5c
movq %r15, %rdi
callq 0x6440
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x17836
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x17836
jmp 0x17830
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1784b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x1784b
jmp 0x17845
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x17861
movq %r15, %rdi
callq 0x61c0
jmp 0x17861
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1786a
movq %rbx, %rdi
callq 0x61c0
jmp 0x1786a
jmp 0x1785e
jmp 0x1785e
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6450